import { ReloadOnDisconnectInfo } from '../../policies';
/**
 * Snapshot of the overlay's state, returned by useReconnectingOverlayState.
 *
 * @kosService core.use-reconnecting-overlay-state
 * @kosApiLevel 23
 */
export interface ReconnectingOverlayState {
    /** Whether the overlay should currently be displayed. */
    visible: boolean;
    /** Details of the disconnect, if one is being recovered from. */
    info: ReloadOnDisconnectInfo | null;
    /** Milliseconds since the tracked disconnect, or null. */
    sinceMs: number | null;
    /** Force-hide the overlay. Does not clear `info`. */
    dismiss: () => void;
}
/**
 * Options for useReconnectingOverlayState.
 *
 * @kosService core.use-reconnecting-overlay-state
 * @kosApiLevel 23
 */
export interface UseReconnectingOverlayStateOptions {
    /**
     * Predicate evaluated after a CONNECTED event. When true, the overlay
     * hides. Defaults to `({ online }) => online`, i.e. hide as soon as KOS
     * Core reports online. Apps that need to wait for specific model state
     * can pass a stricter predicate.
     */
    isReady?: (state: {
        online: boolean;
        info: ReloadOnDisconnectInfo | null;
    }) => boolean;
    /**
     * Whether to read `sessionStorage[KOS_RECOVERING_SESSION_KEY]` on mount
     * to carry overlay state across a page reload. Default: true. Set false
     * for apps that don't use the reload-on-disconnect policy.
     */
    readSessionStorage?: boolean;
}
/**
 * Headless state hook for the reconnecting overlay.
 *
 * Becomes `visible` when a WebSocket disconnect is observed, or when the
 * page load carries a `KOS_RECOVERING_SESSION_KEY` in sessionStorage from
 * a prior reload-on-disconnect cycle. Becomes hidden when the ready
 * predicate reports the app is fully connected again.
 *
 * Returns { visible, info, sinceMs, dismiss }. Apps pair this with their
 * own overlay markup, or use the default `<ReconnectingOverlay />`.
 *
 * @kosService core.use-reconnecting-overlay-state
 * @kosApiLevel 23
 */
export declare const useReconnectingOverlayState: (options?: UseReconnectingOverlayStateOptions) => ReconnectingOverlayState;
//# sourceMappingURL=use-reconnecting-overlay-state.d.ts.map