export declare const VOICE_MODES: readonly ["wake", "conversation", "ambient"]; export type VoiceMode = (typeof VOICE_MODES)[number]; /** Silence long enough that a conversation-window exchange counts as over. */ export declare const CONVERSATION_WINDOW_MS = 120000; /** * Wake mode: saying the name opens a SHORT follow-up window. The natural * pattern is "Hey koi." → (koi answers) → "…make me a sheet" — the request * arrives seconds after the wake word, in its own utterance, without the name. * Blocking it as "unaddressed" is ignoring a person who just called you * (exactly what happened 2026-07-17). Shorter than the conversation window: * wake mode stays name-gated, the name just buys a beat of natural follow-up. */ export declare const WAKE_FOLLOWUP_WINDOW_MS = 45000; export declare function readVoiceMode(): VoiceMode; export declare function writeVoiceMode(mode: VoiceMode): void; /** Test hook. */ export declare function resetVoiceModeCacheForTest(): void;