export interface AutoLogoutContext {
    /** Idle threshold (in minutes) that triggered the auto-logout. */
    idleTimeoutMinutes: number | null;
}
/** Called from the auto-logout flow before navigating to /signin/auth. */
export declare function setAutoLogoutContext(ctx: {
    idleTimeoutMinutes: number;
}): void;
/**
 * Reads the auto-logout context. Returns `null` if no context is present
 * (e.g., user manually signed out, or this is a fresh visit) or if the
 * context has expired (older than CONTEXT_TTL_MS).
 *
 * Important: does NOT clear the context on first read. Some logout flows
 * cause a page reload between the navigation to /signin/auth and the first
 * SignIn render (chunk-load handler firing on a stale chunk, a new service
 * worker activating, etc.). Clearing on read would mean the second SignIn
 * mount after a reload sees empty storage and skips the banner.
 *
 * To avoid the inverse leak (auto-logout → sign back in → manual logout
 * within the TTL window shows the banner again), the manual-logout path
 * calls `clearAutoLogoutContext` proactively. The TTL stays as a safety
 * net for any other cases — context older than CONTEXT_TTL_MS is
 * considered stale and ignored, and we clear once we see expired storage.
 *
 * Memoized via the module-scoped `cachedConsumed` so callers can invoke
 * this from a `useState` lazy initializer — React 18 StrictMode runs
 * initializers twice in dev. Reset by `setAutoLogoutContext` and gets a
 * fresh module instance after page reload.
 */
export declare function consumeAutoLogoutContext(): AutoLogoutContext | null;
/**
 * Clear any auto-logout context. Call from the manual-logout path so a
 * manual sign-out that happens within the TTL window of a prior auto-logout
 * doesn't carry the banner into the next SignIn render.
 */
export declare function clearAutoLogoutContext(): void;
/**
 * Format the auto-logout subtitle's idle-threshold portion using shared
 * time strings (`hour` / `hours` / `minutes`).
 */
export declare function formatIdleDurationLabel(idleTimeoutMinutes: number): string;
