import type { SessionTimeoutConfig } from '../models/session-timeout-config'; import * as i0 from "@angular/core"; export declare const HEARTBEAT_INTERVAL_MS = 1500; export declare const LEADER_TTL_MS: number; export declare class LeaderElectionService { private readonly destroyRef; private readonly zone; private readonly providedConfig; private readonly leaderSignal; private readonly tabId; private storageKey; private heartbeatTimer; private watchdogTimer; private storage; private isDisposed; private abortController; readonly leaderId: import("@angular/core").Signal; readonly isLeader: import("@angular/core").Signal; readonly leader$: import("rxjs").Observable; readonly isLeader$: import("rxjs").Observable; constructor(); updateConfig(config: SessionTimeoutConfig): void; electLeader(): void; stepDown(): void; private initialize; private cleanup; private readonly handleBeforeUnload; private readonly handleStorageEvent; private applyConfig; private resolveStorage; private startElection; private readLeaderRecord; private startWatchdog; private stopWatchdog; private startHeartbeat; private ensureHeartbeat; private stopHeartbeat; private touchLeaderRecord; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }