livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
123 lines • 3.18 kB
TypeScript
import type { LogLevel } from '../logger';
import type { VideoCodec } from '../room/track/options';
import type { BaseKeyProvider } from './KeyProvider';
export interface BaseMessage {
kind: string;
data?: unknown;
}
export interface InitMessage extends BaseMessage {
kind: 'init';
data: {
keyProviderOptions: KeyProviderOptions;
loglevel: LogLevel;
};
}
export interface SetKeyMessage extends BaseMessage {
kind: 'setKey';
data: {
participantIdentity?: string;
isPublisher: boolean;
key: CryptoKey;
keyIndex?: number;
};
}
export interface RTPVideoMapMessage extends BaseMessage {
kind: 'setRTPMap';
data: {
map: Map<number, VideoCodec>;
participantIdentity: string;
};
}
export interface SifTrailerMessage extends BaseMessage {
kind: 'setSifTrailer';
data: {
trailer: Uint8Array;
};
}
export interface EncodeMessage extends BaseMessage {
kind: 'decode' | 'encode';
data: {
participantIdentity: string;
readableStream: ReadableStream;
writableStream: WritableStream;
trackId: string;
codec?: VideoCodec;
};
}
export interface RemoveTransformMessage extends BaseMessage {
kind: 'removeTransform';
data: {
participantIdentity: string;
trackId: string;
};
}
export interface UpdateCodecMessage extends BaseMessage {
kind: 'updateCodec';
data: {
participantIdentity: string;
trackId: string;
codec: VideoCodec;
};
}
export interface RatchetRequestMessage extends BaseMessage {
kind: 'ratchetRequest';
data: {
participantIdentity?: string;
keyIndex?: number;
};
}
export interface RatchetMessage extends BaseMessage {
kind: 'ratchetKey';
data: {
participantIdentity: string;
keyIndex?: number;
material: CryptoKey;
};
}
export interface ErrorMessage extends BaseMessage {
kind: 'error';
data: {
error: Error;
};
}
export interface EnableMessage extends BaseMessage {
kind: 'enable';
data: {
participantIdentity: string;
enabled: boolean;
};
}
export interface InitAck extends BaseMessage {
kind: 'initAck';
data: {
enabled: boolean;
};
}
export type E2EEWorkerMessage = InitMessage | SetKeyMessage | EncodeMessage | ErrorMessage | EnableMessage | RemoveTransformMessage | RTPVideoMapMessage | UpdateCodecMessage | RatchetRequestMessage | RatchetMessage | SifTrailerMessage | InitAck;
export type KeySet = {
material: CryptoKey;
encryptionKey: CryptoKey;
};
export type KeyProviderOptions = {
sharedKey: boolean;
ratchetSalt: string;
ratchetWindowSize: number;
failureTolerance: number;
keyringSize: number;
};
export type KeyInfo = {
key: CryptoKey;
participantIdentity?: string;
keyIndex?: number;
};
export type E2EEOptions = {
keyProvider: BaseKeyProvider;
worker: Worker;
};
export type DecodeRatchetOptions = {
/** attempts */
ratchetCount: number;
/** ratcheted key to try */
encryptionKey?: CryptoKey;
};
//# sourceMappingURL=types.d.ts.map