/** * iOS audio session category. * * On iOS the Bluetooth profile follows the page's audio session category, not * what the page is actually doing: `play-and-record` puts the headset on the * bidirectional HFP/SCO link — mono, narrowband, audibly worse — while * `playback` leaves it on A2DP. Safari's default `"auto"` infers the category * from capture, but does not reliably hand it back once the capture ends, so a * viewer who shared a microphone once keeps listening through the degraded * profile for the rest of the page's life. Declaring the category is the only * way back onto A2DP. * * Every other browser leaves `navigator.audioSession` undefined and pays a * property read. */ export type AudioSessionType = "auto" | "playback" | "transient" | "transient-solo" | "ambient" | "play-and-record"; /** * Declare that this document plays audio. * * Call before creating the `AudioContext`: iOS routes the output when the * context is created, so a category set afterwards only takes effect on the * next one. */ export declare function claimPlaybackAudioSession(): void; /** Hold the session in a recording-capable category for one live capture. */ export declare function retainRecordingAudioSession(): void; /** Drop one capture's claim, returning to playback when the last one ends. */ export declare function releaseRecordingAudioSession(): void; /** Test seam: forget both claims. */ export declare function resetAudioSessionForTests(): void; //# sourceMappingURL=audioSession.d.ts.map