/**
 * Notify all tabs that the session has been logged out/invalidated.
 */
export declare function notifySessionLoggedOut(): void;
/**
 * Subscribe to session ID changes.
 *
 * @param cb callback to call when the session ID changes
 */
export declare function onSessionIdChange(cb: (val: string | null) => void): () => void;
/**
 * Retrieve the current Dara session ID.
 */
export declare function getSessionIdentifier(): string | null;
/**
 * Set the current Dara session ID.
 *
 * @param sessionId session identifier
 */
export declare function setSessionIdentifier(sessionId: string | null): void;
/**
 * Helper hook that synchronizes with the current Dara session ID from store.
 */
export declare function useSessionIdentifier(): string | null;
/**
 * Run a callback under the cross-tab refresh lock.
 *
 * @param callback callback to execute under lock
 */
export declare function withSessionRefreshLock<T>(callback: () => Promise<T> | T): Promise<T>;
/**
 * Wait for any currently active refresh lock to complete.
 */
export declare function waitForOngoingSessionRefresh(): Promise<void>;
/**
 * Run the given refresh function once per tab and share the in-flight result.
 *
 * Cross-tab mutual exclusion is guaranteed via Web Locks when available, with
 * an in-tab lock fallback otherwise.
 *
 * @param refreshFn refresh callback
 */
export declare function runSessionRefresh(refreshFn: () => Promise<void>): Promise<void>;
//# sourceMappingURL=session-state.d.ts.map