import { NitroModules } from 'react-native-nitro-modules'; import type { AudioSession as AudioSessionHybrid } from '../specs/AudioSession.nitro'; import type { AudioSessionFactory } from '../specs/AudioSession.nitro'; import type { AudioSessionConfig } from '../specs/types.nitro'; const factory = NitroModules.createHybridObject( 'AudioSessionFactory' ); /** * Imperative API for creating AudioSession instances. * * @example * ```ts * // Custom session * const session = AudioSession.create({ category: 'playback' }) * await session.activate() * ``` */ export const AudioSession = { /** * Create an audio session with the given configuration. * The session must be activated before use. */ create(config: AudioSessionConfig): AudioSessionHybrid { return factory.create(config); }, /** * Create a default audio session (playback category, default mode). */ createDefault(): AudioSessionHybrid { return factory.createDefault(); }, };