UNPKG

livekit-client

Version:

JavaScript/TypeScript client SDK for LiveKit

119 lines (118 loc) 5.5 kB
import { AddTrackRequest, AudioTrackFeature, ConnectionQualityUpdate, JoinResponse, LeaveRequest, ParticipantInfo, ReconnectReason, ReconnectResponse, RequestResponse, Room, SessionDescription, SignalRequest, SignalTarget, SimulateScenario, SpeakerInfo, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SubscriptionResponse, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UpdateSubscription, UpdateTrackSettings, VideoLayer } from '@livekit/protocol'; import type { LoggerOptions } from '../room/types'; import { AsyncQueue } from '../utils/AsyncQueue'; interface ConnectOpts extends SignalOptions { /** internal */ reconnect?: boolean; /** internal */ reconnectReason?: number; /** internal */ sid?: string; } export interface SignalOptions { autoSubscribe: boolean; adaptiveStream?: boolean; maxRetries: number; e2eeEnabled: boolean; websocketTimeout: number; } type SignalMessage = SignalRequest['message']; export declare enum SignalConnectionState { CONNECTING = 0, CONNECTED = 1, RECONNECTING = 2, DISCONNECTING = 3, DISCONNECTED = 4 } /** @internal */ export declare class SignalClient { requestQueue: AsyncQueue; queuedRequests: Array<() => Promise<void>>; useJSON: boolean; /** signal rtt in milliseconds */ rtt: number; /** simulate signaling latency by delaying messages */ signalLatency?: number; onClose?: (reason: string) => void; onAnswer?: (sd: RTCSessionDescriptionInit) => void; onOffer?: (sd: RTCSessionDescriptionInit) => void; onTrickle?: (sd: RTCIceCandidateInit, target: SignalTarget) => void; onParticipantUpdate?: (updates: ParticipantInfo[]) => void; onLocalTrackPublished?: (res: TrackPublishedResponse) => void; onNegotiateRequested?: () => void; onSpeakersChanged?: (res: SpeakerInfo[]) => void; onRemoteMuteChanged?: (trackSid: string, muted: boolean) => void; onRoomUpdate?: (room: Room) => void; onConnectionQuality?: (update: ConnectionQualityUpdate) => void; onStreamStateUpdate?: (update: StreamStateUpdate) => void; onSubscribedQualityUpdate?: (update: SubscribedQualityUpdate) => void; onSubscriptionPermissionUpdate?: (update: SubscriptionPermissionUpdate) => void; onSubscriptionError?: (update: SubscriptionResponse) => void; onLocalTrackUnpublished?: (res: TrackUnpublishedResponse) => void; onTokenRefresh?: (token: string) => void; onLeave?: (leave: LeaveRequest) => void; onRequestResponse?: (response: RequestResponse) => void; onLocalTrackSubscribed?: (trackSid: string) => void; connectOptions?: ConnectOpts; ws?: WebSocket; get currentState(): SignalConnectionState; get isDisconnected(): boolean; private get isEstablishingConnection(); private getNextRequestId; private options?; private pingTimeout; private pingTimeoutDuration; private pingIntervalDuration; private pingInterval; private closingLock; private state; private connectionLock; private log; private loggerContextCb?; private _requestId; constructor(useJSON?: boolean, loggerOptions?: LoggerOptions); private get logContext(); join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal): Promise<JoinResponse>; reconnect(url: string, token: string, sid?: string, reason?: ReconnectReason): Promise<ReconnectResponse | undefined>; private connect; /** @internal */ resetCallbacks: () => void; close(updateState?: boolean): Promise<void>; sendOffer(offer: RTCSessionDescriptionInit): void; sendAnswer(answer: RTCSessionDescriptionInit): Promise<void>; sendIceCandidate(candidate: RTCIceCandidateInit, target: SignalTarget): Promise<void>; sendMuteTrack(trackSid: string, muted: boolean): Promise<void>; sendAddTrack(req: AddTrackRequest): Promise<void>; sendUpdateLocalMetadata(metadata: string, name: string, attributes?: Record<string, string>): Promise<number>; sendUpdateTrackSettings(settings: UpdateTrackSettings): void; sendUpdateSubscription(sub: UpdateSubscription): Promise<void>; sendSyncState(sync: SyncState): Promise<void>; sendUpdateVideoLayers(trackSid: string, layers: VideoLayer[]): Promise<void>; sendUpdateSubscriptionPermissions(allParticipants: boolean, trackPermissions: TrackPermission[]): Promise<void>; sendSimulateScenario(scenario: SimulateScenario): Promise<void>; sendPing(): Promise<[ void, void ]>; sendUpdateLocalAudioTrack(trackSid: string, features: AudioTrackFeature[]): Promise<void>; sendLeave(): Promise<void>; sendRequest(message: SignalMessage, fromQueue?: boolean): Promise<void>; private handleSignalResponse; setReconnected(): void; private handleOnClose; private handleWSError; /** * Resets the ping timeout and starts a new timeout. * Call this after receiving a pong message */ private resetPingTimeout; /** * Clears ping timeout (does not start a new timeout) */ private clearPingTimeout; private startPingInterval; private clearPingInterval; } export declare function toProtoSessionDescription(rsd: RTCSessionDescription | RTCSessionDescriptionInit): SessionDescription; export {}; //# sourceMappingURL=SignalClient.d.ts.map