import type { DiagnosticEmitInput, DiagnosticEvent, DiagnosticExportPackage, DiagnosticLiveSnapshot, DiagnosticsConfig, DiagnosticsListener, DiagnosticsLiveListener, DiagnosticRuntimeState, DiagnosticSessionMetadata, DiagnosticSessionSnapshot } from './types';
export declare class DiagnosticsCenter {
    private readonly config;
    private readonly listeners;
    private readonly liveListeners;
    private state;
    private currentSessionId;
    private latestFailureWindow;
    private activeFailureCapture;
    private notifyTimeoutId;
    private persistTimeoutId;
    constructor(config?: DiagnosticsConfig);
    startSession(metadata?: DiagnosticSessionMetadata | null): DiagnosticSessionSnapshot;
    getCurrentSessionId(): string | null;
    emit(input: DiagnosticEmitInput): DiagnosticEvent | null;
    subscribe(listener: DiagnosticsListener): () => void;
    subscribeLive(listener: DiagnosticsLiveListener, recentEventLimit?: number): () => void;
    getSnapshot(sessionId?: string | null): DiagnosticSessionSnapshot;
    getLiveSnapshot(sessionId?: string | null, recentEventLimit?: number): DiagnosticLiveSnapshot;
    exportPackage(options?: {
        sessionId?: string | null;
        recentFailureContext?: number;
        recentEventsFallback?: number;
    }): DiagnosticExportPackage;
    clear(sessionOnly?: boolean): void;
    private ensureCurrentSession;
    private resolveSession;
    private createEvent;
    private trimSessionEvents;
    private findCoalescedEvent;
    private buildEventIdentity;
    private areEventIdentitiesEqual;
    private updateCoalescedEvent;
    private normalizeUrl;
    private emitToConsole;
    private scheduleNotify;
    private notifyNow;
    private schedulePersist;
    private persistNow;
    private clearScheduledTasks;
    private restoreIndexedDbState;
    private captureFailureWindow;
    private buildFailureWindow;
    private resolveExportFailureWindow;
    private persistToLocalStorage;
}
export declare function mergeDiagnosticRuntimeState(base: DiagnosticRuntimeState | null | undefined, next: DiagnosticRuntimeState | null | undefined): DiagnosticRuntimeState | null;
