import { ChunkedStreamingStatistics } from './StreamTypes';
import { ILogger } from '../../logger/LoggerInterface';
type WebPlayerEvent = {
    code: number;
    severity: number;
    error: string;
};
type EventListenerForWebPlayer = (event: WebPlayerEvent) => void;
export interface IWebPlayerConstructable<T> {
    new (logger: ILogger, videoElement: HTMLVideoElement, playerOptions: {
        preferNative?: boolean;
        originStartTime: number;
        lag: number;
        bandwidthToStartAt: number;
    }): T;
}
export interface IWebPlayer {
    WebPlayer: IWebPlayerConstructable<IWebPlayer>;
    start: (url: string) => void;
    addEventListener(name: string, listener: EventListenerForWebPlayer): void;
    dispose(): void;
    isSupported: boolean;
    errors: {
        severity: {
            RECOVERABLE: number;
        };
    };
    getStats(): ChunkedStreamingStatistics;
}
export type WebPlayerType = {
    WebPlayer: IWebPlayerConstructable<IWebPlayer>;
    isSupported: boolean;
    errors: {
        severity: {
            RECOVERABLE: number;
        };
    };
};
export {};
