export declare const SSR_SESSION_BOOTSTRAP_MARKER = "data-agent-native-session-bootstrap=\"1\""; export declare const SSR_SESSION_BOOTSTRAP_TIMEOUT_MS = 15000; /** * Claimed by the first session-driven navigation of a document: the sign-in * gate, the sign-in page leaving for the app, the beta lane switch, or the * inline root-home and lane scripts. One page load never leaves for two * destinations; whichever decides first wins and the rest stand down. */ export declare const SESSION_NAVIGATION_FLAG = "__agentNativeNavigationStarted"; declare global { interface Window { [SESSION_NAVIGATION_FLAG]?: string; } } /** * A claim still standing this long after `location.replace` means the page * never left: a beforeunload "Stay", a desktop shell that blocked the * navigation, or a replace that threw. It is released so the gate stops * holding the app and a later navigation can claim the page again. */ export declare const SESSION_NAVIGATION_STALL_MS = 2000; /** Fired on `window` when a claim is released without the page leaving. */ export declare const SESSION_NAVIGATION_RELEASED_EVENT = "agent-native:session-navigation-released"; /** True once this document has started leaving because of the session. */ export declare function isSessionNavigationPending(): boolean; /** The only way the client leaves a page because of what the session says. */ export declare function navigateForSession(href: string): boolean; /** Calls `listener` whenever a claimed navigation is released. */ export declare function subscribeSessionNavigation(listener: () => void): () => void; /** * Whether this browser carries the readable cookie the server keeps beside a * signed-in session. It says a session is likely, never that one exists: the * session read decides. Same rule as the bootstrap script below, so a read * started on it starts exactly when the early session read does. */ export declare function hasSessionHint(sessionHintCookieName?: string): boolean; export declare function getSsrSessionBootstrapScriptBody(sessionPath: string, sessionHintCookieName?: string): string;