import { ApolloClient } from '@apollo/client'; /** * How long a successful warm-up is assumed to hold. Azure Container Apps scales a * revision back to zero after ~300s idle, so anything under that is a wasted request * — the container is still up. 240s leaves headroom without letting the window lapse. */ export declare const FILES_WARMUP_COOLDOWN_MS = 240000; /** Test seam — module state is a browser-lifetime singleton in real use. */ export declare function __resetFilesWarmupForTests(): void; export interface WarmFilesServiceOptions { /** Injected by tests. */ now?: () => number; /** Skip the cooldown (for an explicit "the user is definitely about to upload"). */ force?: boolean; } /** * Send one cheap files-svc read so a scaled-to-zero container starts booting. * * Never rejects and never throws — a failed warm-up is not a user-visible event. * Concurrent callers share the in-flight promise; callers inside the cooldown window * get an already-resolved one. */ export declare function warmFilesService(client: Pick, options?: WarmFilesServiceOptions): Promise; /** * Fire a files-svc warm-up when `active` becomes true — e.g. when the assistant panel * opens, so the container is booting while the user is still typing. * * The call site belongs to whoever owns the panel. In HealthyBowl that is * `microfe-healthybowl`'s `AIAssistantPanel`, not fe-libs: fe-libs owns the mechanism * (which query, single-flight, silence), the product owns the moment. */ export declare function useFilesServiceWarmup(active?: boolean): void; //# sourceMappingURL=warmFilesService.d.ts.map