import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { VuMeterService } from '../../vu-meter.service';
import { PlayerComponent } from '@ngx-telly/player';
import * as i0 from "@angular/core";
export interface Level {
    channel: string;
    rms: number;
    db: number;
    normalized: number;
    peak: number;
}
export declare class TellyVuMeterComponent implements OnInit, OnDestroy, OnChanges {
    display: string;
    fftSize: number;
    channelCount: number;
    channelNames: string[];
    peakHoldTime: number;
    peakDecayRate: number;
    peakAccelerationFactor: number;
    peakSmoothingFactor: number;
    updateRateMs: number;
    readonly service: VuMeterService;
    readonly player: PlayerComponent;
    private readonly subscription;
    private readonly audioNodes;
    private readonly analysisState;
    readonly levels: import("@angular/core").WritableSignal<Level[]>;
    readonly reconfiguring: import("@angular/core").WritableSignal<boolean>;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    trackByChannel(index: number, level: Level): string;
    private setupVisibilitySubscription;
    private reconfigure;
    private updateChannelCount;
    private initializeAudioAndStartAnalysis;
    private initializeAudioContext;
    private connectAudioGraphAndStartAnalysis;
    private buildAudioGraph;
    private startAnalysis;
    private runAnalysisLoop;
    private calculateChannelLevel;
    private updatePeakHold;
    private stopAnalysis;
    private getChannelNames;
    private disconnectAudioGraph;
    private cleanupAudioContext;
    static ɵfac: i0.ɵɵFactoryDeclaration<TellyVuMeterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TellyVuMeterComponent, "telly-vu-meter", never, { "fftSize": { "alias": "fftSize"; "required": false; }; "channelCount": { "alias": "channelCount"; "required": false; }; "channelNames": { "alias": "channelNames"; "required": false; }; "peakHoldTime": { "alias": "peakHoldTime"; "required": false; }; "peakDecayRate": { "alias": "peakDecayRate"; "required": false; }; "peakAccelerationFactor": { "alias": "peakAccelerationFactor"; "required": false; }; "peakSmoothingFactor": { "alias": "peakSmoothingFactor"; "required": false; }; "updateRateMs": { "alias": "updateRateMs"; "required": false; }; }, {}, never, never, true, never>;
}
