import type { Signal } from "@angular/core"; import type { ActivityEvent } from "../models/activity-event"; import type { SessionEvent } from "../models/session-event"; import type { SessionSnapshot, SessionState } from "../models/session-state"; import type { CrossTabMessage } from "../models/cross-tab-message"; import { type LeaderInfo } from "../models/session-shared-state"; import type { SessionTimeoutConfig, SessionTimeoutPartialConfig } from "../models/session-timeout-config"; import type { SessionLeaderState, SessionLeaderRole } from "../models/session-leader"; import * as i0 from "@angular/core"; export declare class SessionTimeoutService { private readonly destroyRef; private readonly zone; private readonly timeSource; private readonly providedConfig; private readonly hooks; private readonly domActivity; private readonly routerActivity; private readonly serverTime; private serverTimeListenerRegistered; private readonly leaderElection; private readonly sharedStateCoordinator; private readonly documentRef; private readonly windowRef; private leaderState; private leaderEpoch; private lastKnownLeaderId; private readonly leaderIdInternal; private readonly leaderInfoInternal; private latestSharedState; private sharedStateRevision; private sharedConfigRevision; private lamportClock; private configLamportClock; private readonly writerId; private configWriterId; private lastHiddenAt; private lastSyncRequestAt; private readonly leaderWatcher; private readonly handleVisibilityChange; private readonly handlePageHide; private readonly handlePageShow; private readonly storage; private isRestoring; private isApplyingSharedState; private lastConfigWatcherSnapshot; private configSignal; private logger; private readonly snapshotSignal; private readonly destroy$; private tickerSub; private readonly eventsSubject; private readonly activitySubject; private readonly crossTabSubject; private crossTabChannel; private crossTabChannelName; private readonly tabId; private isHandlingCrossTabMessage; private readonly actionDelayTimers; private lastAutoActivityResetAt; private pendingResetPriority; private readonly handleServerSync; private readonly onExpireCallbacks; private readonly idleRemainingMsInternal; private readonly countdownRemainingMsInternal; private readonly totalRemainingMsInternal; private readonly activityCooldownRemainingMsInternal; private readonly leaderRoleInternal; private readonly leaderStateSignalInternal; readonly idleRemainingMsSignal: Signal; readonly activityCooldownRemainingMsSignal: Signal; readonly countdownRemainingMsSignal: Signal; readonly totalRemainingMsSignal: Signal; readonly stateSignal: Signal; readonly remainingMsSignal: Signal; readonly isWarnSignal: Signal; readonly isExpiredSignal: Signal; private readonly lastActivitySignal; private readonly countdownEndAtSignal; readonly idleRemainingMs$: import("rxjs").Observable; readonly activityCooldownRemainingMs$: import("rxjs").Observable; readonly countdownRemainingMs$: import("rxjs").Observable; readonly totalRemainingMs$: import("rxjs").Observable; readonly state$: import("rxjs").Observable; readonly remainingMs$: import("rxjs").Observable; readonly isWarn$: import("rxjs").Observable; readonly isExpired$: import("rxjs").Observable; readonly lastActivityAt$: import("rxjs").Observable; readonly countdownEndAt$: import("rxjs").Observable; readonly leaderIdSignal: Signal; readonly leaderInfoSignal: Signal; readonly leaderRoleSignal: Signal; readonly leaderStateSignal: Signal; readonly events$: import("rxjs").Observable; readonly activity$: import("rxjs").Observable; readonly crossTab$: import("rxjs").Observable; readonly leaderId$: import("rxjs").Observable; readonly leaderInfo$: import("rxjs").Observable; readonly leaderRole$: import("rxjs").Observable; readonly leaderState$: import("rxjs").Observable; readonly isLeaderSignal: Signal; readonly isLeader$: import("rxjs").Observable; private readonly configWatcher; constructor(); private registerServerTimeListener; private unregisterServerTimeListener; start(): void; stop(): void; resetIdle(meta?: Record, options?: { source?: ActivityEvent["source"]; }): void; extend(meta?: Record): void; private resetIdleInternal; expireNow(reason?: Record): void; pause(): void; resume(): void; setConfig(partial: SessionTimeoutPartialConfig): void; registerOnExpireCallback(callback: (snapshot: SessionSnapshot) => void | Promise): void; getSnapshot(): SessionSnapshot; getConfig(): SessionTimeoutConfig; getLeaderId(): string | null; getLeaderInfo(): LeaderInfo | null; getLeaderRole(): SessionLeaderRole; getLeaderState(): SessionLeaderState; isLeader(): boolean; private restartTicker; private stopTicker; private handleTick; private handleExternalActivity; private setupCrossTabChannel; private teardownCrossTabChannel; private broadcastCrossTab; private executeWithDelay; private clearActionTimer; private clearAllActionTimers; private handleCrossTabMessage; private applyCrossTabExtend; private applyCrossTabExpire; private applyCrossTabReset; private applyCrossTabSync; private applySharedSessionState; private prepareSharedStateMetadata; private buildSharedSessionState; private broadcastSharedState; private captureConfigSnapshot; private configsDiffer; private computeConfigDiffKeys; private areConfigValuesEqual; private areDomEventArraysEqual; private areHttpActivityEqual; private areRegExpArraysEqual; private areActionDelaysEqual; private updateTrackingFromState; private handleSyncRequest; private restoreFromStorage; private mergePersistedConfigWithProvided; private applyPersistedSnapshot; private refreshDerivedDurations; private refreshActivityCooldownRemaining; private syncLeaderState; private bumpLeaderEpoch; private requestLeaderSync; private handleVisibilityResume; private updateSnapshot; private areSnapshotsEqual; private shouldPersistSnapshotChange; private shouldBroadcastSnapshotChange; private hasSharedConfigDiff; private resolveConfigOperationForChange; private shouldResetForSource; private getResetPriority; private scheduleResetIdle; private emitEvent; private emitActivity; private runExpireHooks; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }