ultimatepos/Modules/Communication/node_modules/livekit-client/dist/ts4.2/e2ee/E2eeManager.d.ts

78 lines
2.9 KiB
TypeScript

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: NonSharedUint8Array): void;
encryptData(data: NonSharedUint8Array): Promise<EncryptDataResponseMessage['data']>;
handleEncryptedData(payload: NonSharedUint8Array, iv: NonSharedUint8Array, participantIdentity: string, keyIndex: number): Promise<DecryptDataResponseMessage['data']>;
on<E extends keyof E2EEManagerCallbacks>(event: E, listener: E2EEManagerCallbacks[E]): this;
}
declare const E2EEManager_base: new () => TypedEventEmitter<E2EEManagerCallbacks>;
/**
* @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: NonSharedUint8Array): void;
private onWorkerMessage;
private onWorkerError;
private handleFrameMetadata;
setupEngine(engine: RTCEngine): void;
private setupEventListeners;
encryptData(data: NonSharedUint8Array): Promise<EncryptDataResponseMessage['data']>;
handleEncryptedData(payload: NonSharedUint8Array, iv: NonSharedUint8Array, participantIdentity: string, keyIndex: number): Promise<{
uuid: string;
payload: NonSharedUint8Array;
} & {
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