export declare type AudioEventType = 'changeBuffer' | 'end' | 'loopEnd'; export declare type AudioChangeCurrentTime = 'changeCurrentTime'; export declare type AudioChangeStatus = 'changeStatus'; export declare type AudioListener = (audioCtx: AudioContext, sourceNode: AudioBufferSourceNode, analyser: AnalyserNode) => void; export declare type AudioChangeCurrentTimeListener = (currentTime: number) => void; export declare type AudioChangeStatusListener = (preStatus: StatusType, status: StatusType) => void; export declare type AudioListenerMap = Record & Record & Record; export declare type StatusType = 'pause' | 'running' | 'suspended' | 'end' | 'loading'; export declare type AudioInfo = { buffer: Float32Array[]; sampleRate: number; }; export default class AudioController { private audioCtx; private sourceNode; private analyser; private listenerMap; private totalTime; private currentTime; private status; private tempStatus; private loop; private startTime?; private lastStartTime; private playingTimer?; constructor(); private createSourceNode; private beforeChangeBuffer; private afterChangeBuffer; addAudioBySrc(src: string): Promise; addAudioByFile(file: File): Promise; decodeAudioFromArrayBuffer(buffer: ArrayBuffer): Promise; addAudioBuffer(audioBuffer: AudioBuffer): void; getFloat32ArrayFromAudio(): AudioInfo | null; addAudioBufferByFloat32Array(audioInfo: AudioInfo): void; clearBuffer(): void; selectParagraph(start: number, end: number): void; deleteParagraph(start: number, end: number): void; insertAudio(location: number, channel1Data: Float32Array, channel2Data: Float32Array): void; getContext(): AudioContext; getSourceNode(): AudioBufferSourceNode; getAnalyser(): AnalyserNode; getTotalTime(): number; getCurrentTime(): number; getStatus(): StatusType; getLoop(): boolean; setLoop(loop: boolean): void; start(): void; restart(): void; pause(): void; seek(time: number): void; private watchPlaying; private changeBuffer; private changeStatus; addListener(eventType: AudioChangeStatus, listener: AudioChangeStatusListener): void; addListener(eventType: AudioChangeCurrentTime, listener: AudioChangeCurrentTimeListener): void; addListener(eventType: AudioEventType, listener: AudioListener): void; trigger(eventType: AudioEventType): void; triggerChangeCurrentTime(): void; triggerChangeStatus(preStatus: StatusType): void; }