import type TypedEventEmitter from 'typed-emitter'; import type RTCEngine from '../room/RTCEngine'; import type Room from '../room/Room'; import { type E2EEManagerCallbacks } from './events'; import type { DecryptDataResponseMessage, E2EEManagerOptions, EncryptDataResponseMessage } from './types'; export interface BaseE2EEManager { setup(room: Room): void; setupEngine(engine: RTCEngine): void; isEnabled: boolean; isDataChannelEncryptionEnabled: boolean; setParticipantCryptorEnabled(enabled: boolean, participantIdentity: string): void; setSifTrailer(trailer: Uint8Array): void; encryptData(data: Uint8Array): Promise; handleEncryptedData(payload: Uint8Array, iv: Uint8Array, participantIdentity: string, keyIndex: number): Promise; on(event: E, listener: E2EEManagerCallbacks[E]): this; } declare const E2EEManager_base: new () => TypedEventEmitter; /** * @experimental */ export declare class E2EEManager extends E2EEManager_base implements BaseE2EEManager { protected worker: Worker; protected room?: Room; private encryptionEnabled; private keyProvider; private decryptDataRequests; private encryptDataRequests; private dataChannelEncryptionEnabled; constructor(options: E2EEManagerOptions, dcEncryptionEnabled: boolean); get isEnabled(): boolean; get isDataChannelEncryptionEnabled(): boolean; /** * @internal */ setup(room: Room): void; /** * @internal */ setParticipantCryptorEnabled(enabled: boolean, participantIdentity: string): void; /** * @internal */ setSifTrailer(trailer: Uint8Array): void; private onWorkerMessage; private onWorkerError; setupEngine(engine: RTCEngine): void; private setupEventListeners; encryptData(data: Uint8Array): Promise; handleEncryptedData(payload: Uint8Array, iv: Uint8Array, participantIdentity: string, keyIndex: number): Promise<{ uuid: string; payload: Uint8Array; } & { readonly __throws?: Error | undefined; }>; private postRatchetRequest; private postKey; private postEnable; private postRTPMap; private postSifTrailer; private setupE2EEReceiver; private setupE2EESender; /** * Handles the given {@code RTCRtpReceiver} by creating a {@code TransformStream} which will inject * a frame decoder. * */ private handleReceiver; /** * Handles the given {@code RTCRtpSender} by creating a {@code TransformStream} which will inject * a frame encoder. * */ private handleSender; } export {}; //# sourceMappingURL=E2eeManager.d.ts.map