import type { SessionTimeoutConfig } from "../models/session-timeout-config"; import { type SharedSessionState, type SharedStateMessage } from "../models/session-shared-state"; import * as i0 from "@angular/core"; export interface SharedStatePublishOptions { persist?: boolean; broadcast?: boolean; } export declare class SharedStateCoordinatorService { private readonly destroyRef; private readonly zone; private readonly timeSource; private readonly providedConfig; private readonly storage; private readonly updatesSubject; private channel; private channelName; private storageKey; private namespace; private disposed; private currentConfig; private readonly sourceId; private logger; readonly updates$: import("rxjs").Observable; getSourceId(): string; constructor(); updateConfig(config: SessionTimeoutConfig): void; publishState(state: SharedSessionState, options?: SharedStatePublishOptions): void; requestSync(reason?: string, expectReply?: boolean): void; readPersistedState(): SharedSessionState | null; clearPersistedState(): void; private applyConfig; private setupChannel; private teardownChannel; private persistSharedState; private publishMessage; private handleIncomingMessage; private normalizeState; private normalizeMetadata; private normalizeOperation; private normalizeSnapshot; private normalizeConfig; private coerceSharedState; private isSharedStateMessage; private isSharedSessionState; private isSharedSnapshot; private isLegacySharedConfig; private isSharedConfig; private isSharedMetadata; private isLeaderInfo; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }