import { SessionType } from '@multiplayer-app/session-recorder-common';
import { SessionRecorderConfigs } from '../types';
import { SocketService } from '../services/socket.service';
import type { CrashBuffer } from '@multiplayer-app/session-recorder-common';
export declare class RecorderBrowserSDK {
    private stopFn?;
    private generation;
    private config?;
    private socketService?;
    private crashBuffer?;
    private intervals;
    startedAt: string;
    stoppedAt: string;
    constructor();
    /**
     * Full snapshot.
     */
    takeFullSnapshot(): void;
    /**
     * Initializes the recorder SDK.
     * @param config - Configuration settings.
     * @param socketService - Optional socket service.
     */
    init(config: SessionRecorderConfigs, socketService?: SocketService): void;
    /**
     * Starts recording.
     * @param sessionId - Session ID or null for buffer-only mode.
     * @param sessionType - Session type.
     */
    start(sessionId: string | null, sessionType: SessionType): void;
    /**
     * Restarts recording. Never throws - library mode constraint.
     */
    restart(sessionId: string | null, sessionType: SessionType): Promise<void>;
    /**
     * Stops recording and cleans up resources.
     */
    stop(): void;
    private _clearAllIntervals;
    /**
     * Sets the crash buffer.
     * @param crashBuffer - Crash buffer service.
     */
    setCrashBuffer(crashBuffer: CrashBuffer): void;
    /**
     * Mutates event in-place for performance.
     */
    private _applyConsoleMasking;
    /**
     * Handles buffer-only event.
     * @param event - Event.
     * @param ts - Timestamp.
     */
    private _handleBufferOnlyEvent;
    /**
     * Handles live session event.
     * @param event - Event.
     * @param ts - Timestamp.
     * @param sessionId - Session ID.
     * @param sessionType - Session type.
     */
    private _handleLiveSessionEvent;
    /**
     * Builds record options.
     */
    private _buildRecordOptions;
    /**
     * Sets up periodic snapshots.
     * @param sessionId - Session ID.
     * @param sessionType - Session type.
     */
    private _setupPeriodicSnapshots;
}
//# sourceMappingURL=index.d.ts.map