/**
 * AudioData - Represents a segment of audio data
 * Implements the W3C WebCodecs AudioData interface
 */
import { BufferSource } from './types';
export type AudioSampleFormat = 'u8' | 's16' | 's32' | 'f32' | 'u8-planar' | 's16-planar' | 's32-planar' | 'f32-planar';
export interface AudioDataInit {
    format: AudioSampleFormat;
    sampleRate: number;
    numberOfFrames: number;
    numberOfChannels: number;
    timestamp: number;
    data: BufferSource;
}
export interface AudioDataCopyToOptions {
    planeIndex: number;
    frameOffset?: number;
    frameCount?: number;
    format?: AudioSampleFormat;
}
export declare class AudioData {
    private _native;
    private _closed;
    private _buffer;
    readonly format: AudioSampleFormat | null;
    readonly sampleRate: number;
    readonly numberOfFrames: number;
    readonly numberOfChannels: number;
    readonly duration: number;
    readonly timestamp: number;
    constructor(init: AudioDataInit);
    /**
     * Calculate the size in bytes needed to hold the audio data for a plane
     */
    allocationSize(options: AudioDataCopyToOptions): number;
    /**
     * Copy audio data to a destination buffer
     */
    copyTo(destination: BufferSource, options: AudioDataCopyToOptions): void;
    /**
     * Create a clone of this audio data
     */
    clone(): AudioData;
    /**
     * Close the audio data and release resources
     */
    close(): void;
    private _assertNotClosed;
}
//# sourceMappingURL=AudioData.d.ts.map