import ReadOnlySubject from '../../rx/ReadOnlySubject';
import IProtectionStrategy, { ProtectionConfiguration } from './IProtectionStrategy';
export type WidevineProtectionSessionConfiguration = ProtectionConfiguration & {
    widevine?: {
        licenseUrl: string;
    };
};
export default class WidevineProtectionStrategy implements IProtectionStrategy<WidevineProtectionSessionConfiguration> {
    private static readonly _widevineKeySystemIdentifier;
    private static readonly _widevineMediaKeySystemConfigurations;
    private readonly _logger;
    private readonly _disposables;
    private readonly _keySession;
    private readonly _readOnlyKeySession;
    static isSupported(): Promise<boolean>;
    get protectionSystemName(): string;
    get keySession(): ReadOnlySubject<MediaKeySession | null>;
    initializeMediaKeys(): Promise<MediaKeys>;
    createSession(mediaKeys: MediaKeys, configuration: WidevineProtectionSessionConfiguration): void;
    handleMediaElementEncryptedEvent({ initDataType, initData }: MediaEncryptedEvent): Promise<void>;
    dispose(): void;
}
