import { Level, Source } from '../interfaces';
declare abstract class Native {
    #private;
    element: HTMLMediaElement;
    media: Source;
    promise: Promise<unknown>;
    constructor(element: HTMLMediaElement, media: Source);
    abstract canPlayType(mimeType: string): boolean;
    abstract load(): void;
    abstract destroy(): void;
    abstract set src(media: Source);
    abstract get src(): Source;
    abstract set level(value: number | string | Record<string, unknown>);
    abstract get level(): number | string;
    abstract get levels(): Level[];
    set instance(customPlayer: any);
    get instance(): any;
    play(): Promise<void>;
    pause(): void;
    set volume(value: number);
    get volume(): number;
    set muted(value: boolean);
    get muted(): boolean;
    set playbackRate(value: number);
    get playbackRate(): number;
    set defaultPlaybackRate(value: number);
    get defaultPlaybackRate(): number;
    set currentTime(value: number);
    get currentTime(): number;
    get duration(): number;
    get paused(): boolean;
    get ended(): boolean;
}
export default Native;
