import AudioBuffer from '../core/AudioBuffer'; import { NotificationEvents } from '../system'; export interface EventEmptyType { } export interface EventTypeWithValue { value: number; } export type InterruptionType = 'began' | 'ended'; export interface OnInterruptionEventType { type: InterruptionType; shouldResume: boolean; } export type RouteChangeReason = 'Unknown' | 'Override' | 'CategoryChange' | 'WakeFromSleep' | 'NewDeviceAvailable' | 'OldDeviceUnavailable' | 'ConfigurationChange' | 'NoSuitableRouteForCategory'; export interface OnRouteChangeEventType { reason: RouteChangeReason; } export interface OnRecorderErrorEventType { message: string; } type SystemEvents = { volumeChange: EventTypeWithValue; interruption: OnInterruptionEventType; duck: EventEmptyType; routeChange: OnRouteChangeEventType; }; export interface OnBufferEndEventType { bufferId: string; isLastBufferInQueue: boolean; } /** * Represents the data payload received by the audio recorder callback each time * a new audio buffer becomes available during recording. */ export interface OnAudioReadyEventType { /** * The audio buffer containing the recorded PCM data. This buffer includes one * or more channels of floating-point samples in the range of -1.0 to 1.0. */ buffer: AudioBuffer; /** * The number of audio frames contained in this buffer. A frame represents a * single sample across all channels. */ numFrames: number; /** * The timestamp (in seconds) indicating when this buffer was captured, * relative to the start of the recording session. */ when: number; } interface AudioAPIEvents { ended: EventEmptyType; loopEnded: EventEmptyType; audioReady: OnAudioReadyEventType; positionChanged: EventTypeWithValue; bufferEnded: OnBufferEndEventType; recorderError: OnRecorderErrorEventType; } type AudioEvents = SystemEvents & AudioAPIEvents & NotificationEvents; export type SystemEventName = keyof SystemEvents; export type SystemEventCallback = (event: SystemEvents[Name]) => void; export type AudioAPIEventName = keyof AudioAPIEvents; export type AudioAPIEventCallback = (event: AudioAPIEvents[Name]) => void; export type AudioEventName = keyof AudioEvents; export type AudioEventCallback = (event: AudioEvents[Name]) => void; export {}; //# sourceMappingURL=types.d.ts.map