import type { CogKeepAwakeCog, CogKeepAwakeRuntime, CogKeepAwakeSnapshot } from "./types"; export type CogKeepAwakeManagerOptions = { runtime?: Partial; keepAwakeIntervalMs?: number; idleTimeoutMs?: number; promptTimeoutMs?: number; retryDelayMs?: number; fastRetryLimit?: number; schedulerIntervalMs?: number; }; /** * Owns keep-awake state independently from React so timing, connection races, * and prompt decisions can be tested deterministically. */ export declare class CogKeepAwakeManager { private runtime; private readonly sessions; private readonly listeners; private activePrompt; private scheduler; private wasVisible; private nextPromptRevision; private readonly keepAwakeIntervalMs; private readonly idleTimeoutMs; private readonly promptTimeoutMs; private readonly retryDelayMs; private readonly fastRetryLimit; private readonly schedulerIntervalMs; constructor(options?: CogKeepAwakeManagerOptions); setRuntime(runtime: Partial): void; start(): void; stop(): void; syncCogs(cogs: Iterable): void; addCog(cog: CogKeepAwakeCog): void; removeCog(cogOrId: CogKeepAwakeCog | string): void; subscribe(listener: (snapshot: CogKeepAwakeSnapshot) => void): () => void; getSnapshot(): CogKeepAwakeSnapshot; resolvePrompt(keepAwake: boolean, expectedRevision?: number): boolean; deferPrompt(): void; tick(): void; private activateVerifiedSession; private sendSignal; private openPromptIfPossible; private isSessionCurrentAndVerified; private isSessionIdle; private isConfirmedUsb; private getCogName; private removeSessionFromPrompt; private buildPromptSnapshot; private emitSnapshot; } export declare const cogKeepAwakeManager: CogKeepAwakeManager; export default cogKeepAwakeManager;