import IDisposable from '../../lang/IDisposable';
import ReadOnlySubject from '../../rx/ReadOnlySubject';
import IProtectionStrategy from './IProtectionStrategy';
export default class ChannelProtectionManager implements IDisposable {
    private readonly _protectionStrategy;
    private readonly _readOnlyProtectionStrategy;
    private readonly _mediaKeys;
    private readonly _readOnlyMediaKeys;
    get protectionStrategy(): ReadOnlySubject<IProtectionStrategy | null>;
    get mediaKeys(): ReadOnlySubject<MediaKeys | null>;
    initializeProtection(): Promise<void>;
    waitForProtectionStrategy(): Promise<IProtectionStrategy>;
    waitForMediaKeys(): Promise<MediaKeys>;
    dispose(): Promise<void>;
    private getEffectiveProtectionStrategy;
}
