import { CoralogixEventType, PrevSession, Session } from '../types';
import { SessionConfig, SessionRecordingConfig } from './session.model';
import { SessionIdle } from './session-idle';
export declare class SessionManager extends SessionIdle {
    private _sessionConfig;
    private sessionRecorder;
    private activeSession;
    private sessionRecorderConfig;
    private _sessionHasError;
    private _cachedLogsSent;
    private _currentPageFragment;
    private _currentPageTimestamp;
    private _fingerPrint;
    private _viewNumber;
    private debugMode;
    constructor(recordConfig?: SessionRecordingConfig);
    get currentPageTimestamp(): number;
    get currentPageFragment(): string | undefined;
    get sessionConfig(): SessionConfig;
    get onlySessionWithErrorMode(): boolean;
    get maxRumEventsForSessionWithError(): number;
    get maxRecordTimeForSessionWithError(): number;
    get instrumentationsToSend(): Partial<Record<CoralogixEventType, boolean>> | undefined;
    get cachedLogsSent(): boolean;
    get sessionHasError(): boolean;
    get fingerPrint(): string | undefined;
    get viewNumber(): number;
    set sessionHasError(value: boolean);
    set cachedLogsSent(val: boolean);
    updateCurrentPage(fragment: string): void;
    incrementViewNumber(): void;
    private persistViewNumber;
    private loadViewNumber;
    private resetViewNumber;
    getSessionKey(): string;
    getActiveSession(): Session;
    start(): void;
    stop(): void;
    recreateSession: () => Session;
    getPrevSession: () => PrevSession;
    getSession: () => Session;
    private initializeSession;
    private clearSessionWhenIdle;
    private clearPrevSession;
    private clearSession;
    private clearGlobalSpans;
    private clearSessionWithErrorMode;
    private handleRefreshedSessions;
    private createNewSession;
    private setFingerPrint;
    setSession: (afterIdle?: boolean) => Session;
}
