import { WaveSurferOptions } from 'wavesurfer.js';
import type { HoverPluginOptions } from 'wavesurfer.js/dist/plugins/hover';
import type { GenericPlugin } from 'wavesurfer.js/dist/base-plugin';
import { VcSoundPlayerSize } from '../../types/VcSoundPlayer.types';
interface IWrapperProps {
    soundId?: string | number;
    src?: string;
    currentPlay?: string;
    disabled?: boolean;
    preloadSound?: boolean;
    size?: VcSoundPlayerSize;
    options?: WaveSurferOptions;
    showHover?: boolean;
    skipSeconds?: number;
    defaultVolume?: number;
    hoverOptions?: HoverPluginOptions;
}
declare function play(time?: number): void;
declare function pause(): void;
declare function stop(): void;
declare function skipBackward(seconds?: number): void;
declare function skipForward(seconds?: number): void;
declare function setVolume(val: number): void;
declare function initSound(): void;
declare function setTime(time: number): void;
declare function setTimeAndPlay(time: number): void;
declare function resetInitSound(): void;
declare function setPlaybackRate(rate: number): void;
declare function setDurationTime(time: number): void;
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IWrapperProps>, {
    soundId: undefined;
    src: undefined;
    currentPlay: undefined;
    disabled: boolean;
    preloadSound: boolean;
    showHover: boolean;
    skipSeconds: number;
    size: string;
    defaultVolume: number;
    options: () => {
        container: string | HTMLElement;
        height?: number | "auto" | undefined;
        width?: string | number | undefined;
        waveColor?: string | string[] | CanvasGradient | undefined;
        progressColor?: string | string[] | CanvasGradient | undefined;
        cursorColor?: string | undefined;
        cursorWidth?: number | undefined;
        barWidth?: number | undefined;
        barGap?: number | undefined;
        barRadius?: number | undefined;
        barHeight?: number | undefined;
        barAlign?: "top" | "bottom" | undefined;
        barMinHeight?: number | undefined;
        minPxPerSec?: number | undefined;
        fillParent?: boolean | undefined;
        url?: string | undefined;
        peaks?: (number[] | Float32Array)[] | undefined;
        duration?: number | undefined;
        media?: HTMLMediaElement | undefined;
        mediaControls?: boolean | undefined;
        autoplay?: boolean | undefined;
        interact?: boolean | undefined;
        dragToSeek?: boolean | {
            debounceTime: number;
        } | undefined;
        hideScrollbar?: boolean | undefined;
        audioRate?: number | undefined;
        autoScroll?: boolean | undefined;
        autoCenter?: boolean | undefined;
        sampleRate?: number | undefined;
        splitChannels?: (Partial<WaveSurferOptions> & {
            overlay?: boolean | undefined;
        })[] | undefined;
        normalize?: boolean | undefined;
        maxPeak?: number | undefined;
        plugins?: GenericPlugin[] | undefined;
        renderFunction?: ((peaks: (number[] | Float32Array)[], ctx: CanvasRenderingContext2D) => void) | undefined;
        fetchParams?: RequestInit | undefined;
        backend?: "WebAudio" | "MediaElement" | undefined;
        cspNonce?: string | undefined;
        blobMimeType?: string | undefined;
    };
    hoverOptions: () => {};
}>>, {
    initSound: typeof initSound;
    play: typeof play;
    stop: typeof stop;
    pause: typeof pause;
    setVolume: typeof setVolume;
    resetInitSound: typeof resetInitSound;
    skipBackward: typeof skipBackward;
    skipForward: typeof skipForward;
    setTime: typeof setTime;
    getCurrentTime: () => number;
    getDurationTime: () => number;
    setDurationTime: typeof setDurationTime;
    setPlaybackRate: typeof setPlaybackRate;
    setTimeAndPlay: typeof setTimeAndPlay;
    setInitialStartTime: (seconds: number) => number;
    setLoadingState: (val: boolean) => boolean;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "on-error": (msg: Error) => void;
    ready: (id: string) => void;
    "update:time": (time: number) => void;
    "update:duration": (time: number) => void;
    "update:currentPlay": (src: string | undefined, isPlaying: boolean) => void;
    start: (soundId: string | number | undefined, src: string | undefined) => void;
    stop: (soundId: string | number | undefined, src: string | undefined) => void;
    onPlay: (soundId: string | number | undefined, src: string | undefined) => void;
    pause: (soundId: string | number | undefined, src: string | undefined) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IWrapperProps>, {
    soundId: undefined;
    src: undefined;
    currentPlay: undefined;
    disabled: boolean;
    preloadSound: boolean;
    showHover: boolean;
    skipSeconds: number;
    size: string;
    defaultVolume: number;
    options: () => {
        container: string | HTMLElement;
        height?: number | "auto" | undefined;
        width?: string | number | undefined;
        waveColor?: string | string[] | CanvasGradient | undefined;
        progressColor?: string | string[] | CanvasGradient | undefined;
        cursorColor?: string | undefined;
        cursorWidth?: number | undefined;
        barWidth?: number | undefined;
        barGap?: number | undefined;
        barRadius?: number | undefined;
        barHeight?: number | undefined;
        barAlign?: "top" | "bottom" | undefined;
        barMinHeight?: number | undefined;
        minPxPerSec?: number | undefined;
        fillParent?: boolean | undefined;
        url?: string | undefined;
        peaks?: (number[] | Float32Array)[] | undefined;
        duration?: number | undefined;
        media?: HTMLMediaElement | undefined;
        mediaControls?: boolean | undefined;
        autoplay?: boolean | undefined;
        interact?: boolean | undefined;
        dragToSeek?: boolean | {
            debounceTime: number;
        } | undefined;
        hideScrollbar?: boolean | undefined;
        audioRate?: number | undefined;
        autoScroll?: boolean | undefined;
        autoCenter?: boolean | undefined;
        sampleRate?: number | undefined;
        splitChannels?: (Partial<WaveSurferOptions> & {
            overlay?: boolean | undefined;
        })[] | undefined;
        normalize?: boolean | undefined;
        maxPeak?: number | undefined;
        plugins?: GenericPlugin[] | undefined;
        renderFunction?: ((peaks: (number[] | Float32Array)[], ctx: CanvasRenderingContext2D) => void) | undefined;
        fetchParams?: RequestInit | undefined;
        backend?: "WebAudio" | "MediaElement" | undefined;
        cspNonce?: string | undefined;
        blobMimeType?: string | undefined;
    };
    hoverOptions: () => {};
}>>> & Readonly<{
    onStart?: ((soundId: string | number | undefined, src: string | undefined) => any) | undefined;
    onPause?: ((soundId: string | number | undefined, src: string | undefined) => any) | undefined;
    onStop?: ((soundId: string | number | undefined, src: string | undefined) => any) | undefined;
    onOnPlay?: ((soundId: string | number | undefined, src: string | undefined) => any) | undefined;
    "onOn-error"?: ((msg: Error) => any) | undefined;
    onReady?: ((id: string) => any) | undefined;
    "onUpdate:time"?: ((time: number) => any) | undefined;
    "onUpdate:duration"?: ((time: number) => any) | undefined;
    "onUpdate:currentPlay"?: ((src: string | undefined, isPlaying: boolean) => any) | undefined;
}>, {
    size: VcSoundPlayerSize;
    options: WaveSurferOptions;
    disabled: boolean;
    defaultVolume: number;
    soundId: string | number;
    src: string;
    currentPlay: string;
    preloadSound: boolean;
    showHover: boolean;
    skipSeconds: number;
    hoverOptions: HoverPluginOptions;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    default?(_: {}): any;
}>;
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: import('vue').PropType<T[K]>;
        required: true;
    };
};
type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
