/** * Speech model — text-to-speech through the browser's Web Speech API. * An app registers speakers (voice + rate/pitch/volume), the service * speaks text for one of them. The framework knows nothing about what a * speaker id means. */ /** * How a new announcement relates to what is already being spoken. * - `interrupt`: cancel everything and speak now (e.g. "your turn") * - `queue`: wait for the current speech to end (e.g. fellow statements) * - `idle`: only if nothing is speaking or waiting (hints, never urgent) */ export type SpeechPriority = "interrupt" | "queue" | "idle"; export interface SpeakerSettings { /** `SpeechSynthesisVoice.voiceURI`; unset or unknown → best voice for the locale. */ voiceURI?: string; /** 0.5–2, 1 = normal. */ rate: number; /** 0.5–1.5, 1 = normal. */ pitch: number; /** 0–1. */ volume: number; } export interface SpeakOptions { /** Registered speaker id; unknown or unset → default settings. */ speaker?: string; /** Default `queue`. */ priority?: SpeechPriority; } export declare const SPEECH_RATE_RANGE: readonly [number, number]; export declare const SPEECH_PITCH_RANGE: readonly [number, number]; export declare const DEFAULT_SPEAKER_SETTINGS: SpeakerSettings; /** Longest chunk handed to the engine at once (Chrome cuts long utterances). */ export declare const SPEECH_CHUNK_MAX_LENGTH = 180; /** A `say()` before the first gesture is kept this long and spoken after the unlock. */ export declare const SPEECH_PENDING_MAX_AGE_MS = 5000; //# sourceMappingURL=speech-model.d.ts.map