/**
 * Copyright (c) Cisco Systems, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE src in the root directory of this source tree.
 *
 */
import "../button/Button";
import "../icon/Icon";
import "../tooltip/Tooltip";
import { LitElement, PropertyValues } from "lit";
export type AudioEvent = {
    name: string;
    onEvent: EventListener;
};
export declare const playbackSpeeds: {
    value: number;
    label: string;
}[];
export type Label = {
    ariaLabel: string;
    tooltipText: string;
};
export type LabelMap = {
    playBtn: Label;
    pauseBtn: Label;
    duration: Label;
    timeline: Label;
    volumeBtn: Label;
    volumeSlider: Label;
    playbackSpeedBtn: Label;
};
export declare const defaultLabelMap: {
    playBtn: {
        ariaLabel: string;
        tooltipText: string;
    };
    pauseBtn: {
        ariaLabel: string;
        tooltipText: string;
    };
    duration: {
        ariaLabel: string;
        tooltipText: string;
    };
    timeline: {
        ariaLabel: string;
        tooltipText: string;
    };
    volumeBtn: {
        ariaLabel: string;
        tooltipText: string;
    };
    volumeSlider: {
        ariaLabel: string;
        tooltipText: string;
    };
    playbackSpeedBtn: {
        ariaLabel: string;
        tooltipText: string;
    };
};
export declare namespace AudioPlayer {
    class ELEMENT extends LitElement {
        src: string;
        labelMap: LabelMap;
        events: AudioEvent[];
        audio: HTMLAudioElement;
        volumeElement: HTMLElement;
        isPlaying: boolean;
        isMuted: boolean;
        duration: number;
        volume: number;
        currentTime: number;
        showSpeedPopup: boolean;
        playbackSpeed: number;
        volumeExpanded: boolean;
        bufferedRange: number;
        selectedPlaybackSpeed: number;
        currentlySelectingPlaybackSpeed: boolean;
        constructor();
        firstUpdated(changedProperties: PropertyValues): void;
        updated(changedProperties: PropertyValues): void;
        connectedCallback(): void;
        disconnectedCallback(): void;
        setAudioEventListeners(): void;
        togglePlay(): void;
        toTimecode(time: number): string;
        setTime(e: MouseEvent): void;
        setVolumeElement(e: MouseEvent): void;
        handleVolumeChange(e: MouseEvent): void;
        getVolumeFromSlider(e: MouseEvent): number;
        setVolume(e: MouseEvent): void;
        getBarPercentage(e: MouseEvent, className: string): number;
        toggleSoundMute(): void;
        toggleSpeedPopup(): void;
        onOutsideClick: (e: MouseEvent) => void;
        setTimeKeydown(value: number): void;
        setVolumeKeydown(value: number): void;
        handleKeyDown: (event: KeyboardEvent) => void;
        private get popupClassMap();
        setPlaybackSpeed(speed: number): void;
        toggleVolumeExpand(show: boolean): void;
        static get styles(): import("lit").CSSResult[];
        render(): import("lit-html").TemplateResult<1>;
    }
}
declare global {
    interface HTMLElementTagNameMap {
        "md-audio-player": AudioPlayer.ELEMENT;
    }
}
