import type { Observable, RawError, DeflateEncoderStreamId, Encoder, CustomerDataTrackerManager, TrackingConsentState } from '@datadog/browser-core';
import { LifeCycle } from '../domain/lifeCycle';
import type { RumSessionManager } from '../domain/rumSessionManager';
import type { LocationChange } from '../browser/locationChangeObservable';
import type { RumConfiguration } from '../domain/configuration';
import type { ViewOptions } from '../domain/view/trackViews';
import type { PageStateHistory } from '../domain/contexts/pageStateHistory';
import type { CommonContext } from '../domain/contexts/commonContext';
import type { CustomVitalsState } from '../domain/vital/vitalCollection';
import type { RecorderApi } from './rumPublicApi';
export type StartRum = typeof startRum;
export type StartRumResult = ReturnType<StartRum>;
export declare function startRum(configuration: RumConfiguration, recorderApi: RecorderApi, customerDataTrackerManager: CustomerDataTrackerManager, getCommonContext: () => CommonContext, initialViewOptions: ViewOptions | undefined, createEncoder: (streamId: DeflateEncoderStreamId) => Encoder, trackingConsentState: TrackingConsentState, customVitalsState: CustomVitalsState): {
    addAction: (action: import("../domain/action/actionCollection").CustomAction, savedCommonContext?: CommonContext) => void;
    addError: ({ error, handlingStack, startClocks, context: customerContext }: import("../domain/error/errorCollection").ProvidedError, savedCommonContext?: CommonContext) => void;
    addTiming: (name: string, time?: import("@datadog/browser-core").RelativeTime | import("@datadog/browser-core").TimeStamp) => void;
    addFeatureFlagEvaluation: (key: string, value: import("@datadog/browser-core").ContextValue) => void;
    startView: (options?: ViewOptions, startClocks?: import("@datadog/browser-core").ClocksState) => void;
    setViewContext: (context: import("@datadog/browser-core").Context) => void;
    setViewContextProperty: (key: string, value: import("@datadog/browser-core").ContextValue) => void;
    setViewName: (name: string) => void;
    lifeCycle: import("@datadog/browser-core").AbstractLifeCycle<import("../domain/lifeCycle").LifeCycleEventMap>;
    viewHistory: import("../domain/contexts/viewHistory").ViewHistory;
    session: RumSessionManager;
    stopSession: () => void;
    getInternalContext: (startTime?: number) => import("../domain/contexts/internalContext").InternalContext | undefined;
    startDurationVital: (name: string, options?: import("../domain/vital/vitalCollection").DurationVitalOptions) => import("../domain/vital/vitalCollection").DurationVitalReference;
    stopDurationVital: (nameOrRef: string | import("../domain/vital/vitalCollection").DurationVitalReference, options?: import("../domain/vital/vitalCollection").DurationVitalOptions) => void;
    addDurationVital: (vital: import("../domain/vital/vitalCollection").DurationVital) => void;
    stop: () => void;
};
export declare function startRumEventCollection(lifeCycle: LifeCycle, configuration: RumConfiguration, location: Location, sessionManager: RumSessionManager, pageStateHistory: PageStateHistory, locationChangeObservable: Observable<LocationChange>, domMutationObservable: Observable<void>, windowOpenObservable: Observable<void>, getCommonContext: () => CommonContext, reportError: (error: RawError) => void): {
    viewHistory: import("../domain/contexts/viewHistory").ViewHistory;
    pageStateHistory: PageStateHistory;
    urlContexts: {
        findUrl: (startTime?: import("@datadog/browser-core").RelativeTime) => import("../domain/contexts/urlContexts").UrlContext | undefined;
        stop: () => void;
    };
    addAction: (action: import("../domain/action/actionCollection").CustomAction, savedCommonContext?: CommonContext) => void;
    actionContexts: import("../domain/action/trackClickActions").ActionContexts;
    stop: () => void;
};
