import { IPlayerConfig, IPlayerType, IRendition, IStats } from './models';
export declare abstract class Player<T> {
    protected url: string;
    htmlPlayer: HTMLVideoElement;
    config: IPlayerConfig;
    player: T;
    playerType: IPlayerType;
    private stats;
    private loadStartTime;
    constructor(url: string, htmlPlayer: HTMLVideoElement, config: IPlayerConfig);
    abstract load(): void;
    abstract destroy(): void;
    abstract getRenditions(): IRendition[];
    abstract setRendition(rendition: IRendition | number, immediately: boolean): void;
    abstract getCurrentRendition(): IRendition;
    getStats(): IStats;
    pause(): void;
    play(): Promise<void>;
    currentTime(secs?: number): void | number;
    volume(perc?: number): void | number;
    playbackRate(rate?: number): void | number;
    protected reset(): void;
    protected resetStats(): void;
    protected initListeners(): void;
    protected destroyListeners(): void;
    protected updateStats: () => void;
    protected loadStart: () => void;
    protected loadEnd: () => void;
}
