import { BaseProvider, PlayerStates } from '../../core/esl-media-provider';
import type { MediaProviderConfig, ProviderObservedParams } from '../../core/esl-media-provider';
/**
 * Simple Native Media API provider for {@link ESLMedia}
 * @author Yuliya Adamskaya, Alexey Stsefanovich (ala'n)
 */
export declare abstract class HTMLMediaProvider extends BaseProvider {
    static readonly urlPattern: RegExp;
    static parseUrl(mediaSrc: string): Partial<MediaProviderConfig> | null;
    protected _el: HTMLMediaElement;
    protected abstract createElement(): HTMLMediaElement;
    protected applyElementSettings(cfg: MediaProviderConfig): void;
    onConfigChange(param: ProviderObservedParams, value: boolean): void;
    bind(): void;
    protected bindListeners(): void;
    unbind(): void;
    get ready(): Promise<any>;
    protected get src(): string;
    get state(): PlayerStates;
    get duration(): number;
    get currentTime(): number;
    seekTo(pos: number): void;
    play(): Promise<any>;
    pause(): void;
    stop(): void;
}
