import { PeakMeterConfig } from './config';
import { Observable } from 'rxjs';
import { AudioPeakProcessorMessageEvent, Peaks } from './types';
import { VuMeterApi } from './api';
export declare class VuMeter implements VuMeterApi {
    channelCount: number;
    config: PeakMeterConfig;
    parent?: HTMLElement;
    ticks?: Array<HTMLElement>;
    channelElements?: Array<HTMLElement>;
    bars?: Array<HTMLElement>;
    tempPeaks: Array<number>;
    heldPeaks: Array<number>;
    peakHoldTimeouts: Array<number>;
    animationRequestId?: number;
    private _eventSource$?;
    private _eventSourceBreaker$;
    private _destroyed$;
    constructor(channelCount: number, ele: HTMLElement, options?: Partial<PeakMeterConfig>);
    attachSource(eventStreamFactory: Observable<Observable<AudioPeakProcessorMessageEvent>>): VuMeterApi;
    private handlePeakProcessorMessageEvent;
    private paintMeter;
    private clearPeak;
    private clearPeaks;
    getPeaks(): Peaks;
    destroy(): void;
}
