import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class AudioService {
    private readonly _http;
    private _audioBuffer;
    private _audioBufferSource;
    private _audioContext;
    private _gainNode;
    private _analyserNode;
    getAudioFileMetadata(mediaElement: HTMLMediaElement): Observable<AudioMetadata>;
    getWaveformFromUrl(url: string): Observable<Float32Array[]>;
    getWaveformPoints(channels?: Float32Array[], skip?: number): WaveformPoint[];
    private getAudioBuffer;
    private getOfflineAudioContext;
    private createBufferSource;
    private createVolumeNode;
    private createAnalyserNode;
    private disconnectSource;
    static ɵfac: i0.ɵɵFactoryDeclaration<AudioService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AudioService>;
}
export interface WaveformPoint {
    min: number;
    max: number;
}
export interface AudioMetadata {
    filename: string;
    extension: string;
    description: string;
    size: number;
}
