import { AssetBase } from '../library/AssetBase';
import { ByteArray } from '../utils/ByteArray';
import { IAudioChannel } from '../managers/IAudioChannel';
export declare class WaveAudio extends AssetBase {
    static assetType: string;
    private _audioChannel;
    private _volume;
    private _pan;
    private _data;
    private _channelGroup;
    private _audioChannels;
    private _channelsPlaying;
    get isPlaying(): boolean;
    /**
     *
     * @returns {string}
     */
    get assetType(): string;
    private detachChannel;
    private attachChannel;
    private onChannelCompleteStopError;
    get pan(): number;
    set pan(value: number);
    get channelGroup(): number;
    set channelGroup(value: number);
    get volume(): number;
    set volume(value: number);
    get currentTime(): number;
    get duration(): number;
    /**
     *
     */
    constructor(data: WaveAudioData, channelGroup?: number);
    dispose(): void;
    play(offset: number, loop?: boolean | number): IAudioChannel;
    private stopInternal;
    stop(): void;
    clone(): WaveAudio;
}
export interface IWaveAudioMeta {
    samplesCount?: number;
    sampleRate?: number;
    startOffset?: number;
}
export declare class WaveAudioData {
    private _loading;
    private _blob;
    private _buffer;
    readonly meta?: IWaveAudioMeta;
    get size(): number;
    play(audioChannel: IAudioChannel, offset: number, loop: boolean | number, id: number): void;
    constructor(data: ArrayBuffer | ByteArray | Blob, meta?: IWaveAudioMeta);
    private _blobConverted;
}
//# sourceMappingURL=WaveAudio.d.ts.map