import { ChunkedStreamingStatistics } from './StreamTypes';
export type ShakaOptions = {
    abr: {
        defaultBandwidthEstimate: number;
    };
    manifest: {
        retryParameters: {
            timeout: number;
        };
    };
    streaming: {
        liveSyncPanicThreshold: number;
        bufferingGoal: number;
        bufferBehind: number;
        retryParameters: {
            timeout: number;
            maxAttempts: number;
            backoffFactor: number;
        };
    };
};
export interface IShakaPlayer {
    configure: (o: ShakaOptions) => void;
    load: (uri: string) => Promise<void>;
    getStats: () => ChunkedStreamingStatistics;
    addEventListener: (key: string, callback: () => void) => void;
    removeEventListener: (key: string, callback: () => void) => void;
    destroy: () => void;
    unload: () => void;
}
export interface IShakaConstructable<T> {
    new (videoElement: HTMLVideoElement): T;
}
export type ShakaPlayerType = {
    Player: IShakaConstructable<IShakaPlayer>;
};
