export interface ReplayRecorderConfig { apiKey: string; apiUrl: string; brandId: number; debug: boolean; deviceId: string | null; maskAllInputs: boolean; maxSegmentBytes: number; maxSegmentEvents: number; flushIntervalMs: number; sessionId: string; } export interface ReplayFlushResult { content_type: string; object_key: string; replay_session_id: string | null; segment_id: string; sequence_number: number; session_id: string; size_bytes: number; storage_driver: string; } export interface ReplayFinalizeResult { finalized_at: string; id: string; segment_count: number; session_id: string; status: string; total_size_bytes: number; } export declare class ReplayRecorder { private config; private currentBytes; private currentEvents; private detachListeners; private finalized; private checkpointTimer; private recordingStartedAtMs; private flushInFlight; private flushTimer; private replaySessionId; private segmentSequence; private stopRecording; private consecutiveFailures; private paused; private thresholdCheckInFlight; private thresholdCheckQueued; private totalCapturedEvents; private lastCapturedEventLabel; private lastCapturedEventAt; private captureGeneration; start(config: ReplayRecorderConfig): Promise; flush(reason?: string, options?: { keepalive?: boolean; }): Promise; finalize(reason?: string, options?: { keepalive?: boolean; }): Promise; dispose(options?: { finalize?: boolean; keepalive?: boolean; reason?: string; }): Promise; pause(reason?: string): Promise; resume(reason?: string): void; addCustomEvent(tag: string, payload: T): void; private bindLifecycleListeners; private debug; private pushEvent; private estimateEventSize; private nextSegmentId; private restorePendingSegment; private stopCapture; private startCapture; private getNextCheckpointIntervalMs; private scheduleNextCheckpoint; private captureCheckpoint; private scheduleThresholdCheck; private evaluateThreshold; private estimateEventsSize; private prepareSegment; private maybeDrainRemainingBuffer; private takePendingSegment; private getBufferSnapshot; private describeEvent; private uploadSegment; }