import type { LifeCycle, RumConfiguration, RumSessionManager, StartRecordingOptions, ViewHistory } from '@datadog/browser-rum-core';
import { type DeflateEncoder } from '@datadog/browser-core';
import type { startRecording } from './startRecording';
export type StartRecording = typeof startRecording;
export declare const enum RecorderStatus {
    Stopped = 0,
    IntentToStart = 1,
    Starting = 2,
    Started = 3
}
export interface Strategy {
    start: (options?: StartRecordingOptions) => void;
    stop: () => void;
    isRecording: () => boolean;
    getSessionReplayLink: () => string | undefined;
}
export declare function createPostStartStrategy(configuration: RumConfiguration, lifeCycle: LifeCycle, sessionManager: RumSessionManager, viewHistory: ViewHistory, startRecordingImpl: StartRecording, getOrCreateDeflateEncoder: () => DeflateEncoder | undefined): Strategy;
