import * as _angular_core from '@angular/core';
import { AfterViewInit, OnDestroy } from '@angular/core';
import { SafeUrl } from '@angular/platform-browser';

declare class NgxAudioWave implements AfterViewInit, OnDestroy {
    readonly audioSrc: _angular_core.InputSignal<string | SafeUrl>;
    readonly color: _angular_core.InputSignal<string>;
    readonly height: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly gap: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly rounded: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly hideBtn: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly skip: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly volume: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly playbackRate: _angular_core.InputSignalWithTransform<number, unknown>;
    readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly ariaLabel: _angular_core.InputSignal<string>;
    readonly playButtonLabel: _angular_core.InputSignal<string>;
    readonly pauseButtonLabel: _angular_core.InputSignal<string>;
    readonly progressBarLabel: _angular_core.InputSignal<string>;
    readonly isPaused: _angular_core.WritableSignal<boolean>;
    readonly isLoading: _angular_core.WritableSignal<boolean>;
    readonly hasError: _angular_core.WritableSignal<boolean>;
    readonly currentVolume: _angular_core.WritableSignal<number>;
    readonly currentPlaybackRate: _angular_core.WritableSignal<number>;
    readonly isLooping: _angular_core.WritableSignal<boolean>;
    readonly progressText: _angular_core.Signal<string>;
    readonly statusText: _angular_core.Signal<"Loading audio" | "Error loading audio" | "Audio paused" | "Audio playing">;
    readonly exactPlayedPercent: _angular_core.Signal<number>;
    readonly exactCurrentTime: _angular_core.WritableSignal<number>;
    readonly exactDuration: _angular_core.WritableSignal<number>;
    /** @deprecated This property will be removed in version 21.0.0. Use exactPlayedPercent instead. */
    readonly playedPercent: _angular_core.Signal<number>;
    /** @deprecated This property will be removed in version 21.0.0. Use exactCurrentTime instead. */
    readonly currentTime: _angular_core.Signal<number>;
    /** @deprecated This property will be removed in version 21.0.0. Use exactDuration instead. */
    readonly duration: _angular_core.Signal<number>;
    protected readonly normalizedData: _angular_core.WritableSignal<number[]>;
    protected readonly clipPath: _angular_core.Signal<string>;
    protected readonly width: _angular_core.Signal<number>;
    private readonly platformId;
    private readonly isPlatformBrowser;
    private readonly domSanitizer;
    private readonly httpClient;
    private readonly audioWaveService;
    private readonly destroyRef;
    private audioRef;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    play(time?: number): void;
    pause(): void;
    stop(): void;
    setVolume(volume: number): void;
    mute(): void;
    unmute(): void;
    toggleMute(): void;
    setPlaybackRate(rate: number): void;
    resetPlaybackRate(): void;
    increasePlaybackRate(): void;
    decreasePlaybackRate(): void;
    setLoop(loop: boolean): void;
    enableLoop(): void;
    disableLoop(): void;
    toggleLoop(): void;
    setTime(mouseEvent: MouseEvent): void;
    private calculatePercent;
    private startInterval;
    private fetchAudio;
    protected pauseChange(event: Event): void;
    protected onKeyDown(event: KeyboardEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxAudioWave, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxAudioWave, "ngx-audio-wave", never, { "audioSrc": { "alias": "audioSrc"; "required": true; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "hideBtn": { "alias": "hideBtn"; "required": false; "isSignal": true; }; "skip": { "alias": "skip"; "required": false; "isSignal": true; }; "volume": { "alias": "volume"; "required": false; "isSignal": true; }; "playbackRate": { "alias": "playbackRate"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "playButtonLabel": { "alias": "playButtonLabel"; "required": false; "isSignal": true; }; "pauseButtonLabel": { "alias": "pauseButtonLabel"; "required": false; "isSignal": true; }; "progressBarLabel": { "alias": "progressBarLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { NgxAudioWave };
