import ReadOnlySubject from '../../rx/ReadOnlySubject'; import IProtectionStrategy, { ProtectionConfiguration } from './IProtectionStrategy'; export type FairPlayProtectionSessionConfiguration = ProtectionConfiguration & { fairplay?: { certificate: string; licenseUrl: string; licenseHeaders?: Record; }; }; export default class FairPlayProtectionStrategy implements IProtectionStrategy { private static readonly _fairPlayKeySystemIdentifier; private static readonly _fairPlayMediaKeySystemConfigurations; private readonly _logger; private readonly _disposables; private readonly _keySession; private readonly _readOnlyKeySession; static isSupported(): Promise; get protectionSystemName(): string; get keySession(): ReadOnlySubject; initializeMediaKeys(): Promise; createSession(mediaKeys: MediaKeys, configuration: FairPlayProtectionSessionConfiguration): Promise; handleMediaElementEncryptedEvent({ initDataType, initData }: MediaEncryptedEvent): Promise; dispose(): void; }