/** Continuous foreground running time before the notice appears — just * before the hosted ~40s soft-timeout chunk boundary. */ export declare const DEFAULT_KEEP_TAB_OPEN_AFTER_MS = 30000; /** * Subtle, non-blocking notice that a long-running client-continued foreground * agent turn depends on this tab staying open. * * On hosted deployments a foreground turn runs in ~40s chunks and the CLIENT * may need to re-POST `auto_continue` to start each next chunk. Server-owned * runs (`dispatchMode` starting with "background" or equal to * "foreground-self-chain") survive a closed tab, and for those this notice * never shows. * * Visibility rules (show only while the condition is true — no new * always-visible chrome): * - a client-continued foreground run for this thread has been continuously * running for `showAfterMs` (default 30s — approaching the hosted ~40s * chunk boundary where the client-driven continuation starts), and * - the run is not server-continued (hidden immediately when the server owns * recovery), and * - this is a production client bundle (`hosted` auto-detect): local dev * runs a turn unbounded in a single chunk that survives a closed tab, * so the notice would be wrong there. * Brief non-running blips (the sub-second gap between continuation chunks) * are debounced so the notice does not flicker across chunk boundaries. */ export interface KeepTabOpenNoticeProps { /** The thread to monitor. Pass null/undefined to disable. */ threadId: string | null | undefined; /** * Set false to skip polling entirely — used when this notice is mounted * for a background tab kept alive via display:none. Only the active tab * should poll `/runs/active`. Defaults to true. */ enabled?: boolean; /** API base path. Default `/_agent-native/agent-chat`. */ apiUrl?: string; /** * How long a foreground run must have been continuously running before * the notice appears. Default 30s — just before the hosted ~40s * soft-timeout chunk boundary, so short turns never see it. */ showAfterMs?: number; /** * Whether this client is talking to a hosted (serverless) deployment * whose foreground turns run in client-driven chunks. Defaults to * auto-detection from the bundle mode (a dev bundle → not hosted). */ hosted?: boolean; /** Extra class on the outer container. */ className?: string; } export declare function KeepTabOpenNotice({ threadId, enabled, apiUrl, showAfterMs, hosted, className, }: KeepTabOpenNoticeProps): import("react").JSX.Element | null; //# sourceMappingURL=KeepTabOpenNotice.d.ts.map