UNPKG

@rtco/client

Version:
232 lines (227 loc) 7.28 kB
// Generated by dts-bundle-generator v9.5.1 import { EventEmitter } from 'eventemitter3'; declare enum LogLevel { /** * Prints no logs. */ Disabled = 0, /** * Prints only errors. */ Errors = 1, /** * Prints errors and warnings. */ Warnings = 2, /** * Prints info, errors and warnings. */ Info = 3, /** * Prints all logs (Info + Debug). */ All = 4 } export type Signal = { type: "candidate"; data: RTCIceCandidate; } | { type: "sdp"; data: RTCSessionDescription; }; export interface SignalMessage { target: string; session: string; metadata?: string; signal: Signal; } export interface SignalMessageWithSource extends SignalMessage { source: string; } export type OutSignalMessage = SignalMessage; export type InSignalMessage = SignalMessageWithSource; export interface SignalingEvents { connect: (id: string) => void; disconnect: () => void; error: (err: Error) => void; signal: (msg: InSignalMessage) => void; join: (roomId: string, peerId: string, metadata?: string) => void; } export type SignalingState = "disconnected" | "connecting" | "connected" | "ready"; export interface Signaling extends EventEmitter<SignalingEvents> { get id(): string; get state(): SignalingState; connect(): void; disconnect(): void; signal(msg: SignalMessage): void; join(roomId: string, metadata?: string): void; } export interface CallOpts { signaling: Signaling; debug?: LogLevel; metadata?: string; /** * Optional RTCConfiguration for the peer connections. * @defaultValue { iceServers: [ { urls: "stun:stun.l.google.com:19302" }, { urls: "stun:stun1.l.google.com:19302" } ] } * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration */ rtcConfig?: RTCConfiguration; } export interface CallerOptions extends CallOpts { target: string; session?: string; } export interface CalleeOptions extends CallOpts { signal: InSignalMessage; } export type CallOptions = CallerOptions | CalleeOptions; export interface CallEvents { open: () => void; close: () => void; error: (err: Error) => void; data: (data: string) => void; stream: (stream: MediaStream, metadata?: string) => void; removestream: (stream: MediaStream, metadata?: string) => void; track: (track: MediaStreamTrack, stream: MediaStream, metadata?: string) => void; removetrack: (track: MediaStreamTrack, stream: MediaStream, metadata?: string) => void; } export interface ICall { get session(): string; get metadata(): string | undefined; get initiator(): boolean; get ready(): boolean; answer(): void; hangup(): void; send(data: string): void; addStream(stream: MediaStream, metadata?: string): void; addTrack(track: MediaStreamTrack, stream: MediaStream): void; removeStream(stream: MediaStream): void; removeTrack(track: MediaStreamTrack): void; } export declare class Call extends EventEmitter<CallEvents> implements ICall { #private; static readonly SESSION_PREFIX = "call:"; constructor(options: CallOptions); get session(): string; get metadata(): string | undefined; get initiator(): boolean; get ready(): boolean; get target(): string; hangup: () => void; answer: () => void; send: (data: string) => void; addStream: (stream: MediaStream, metadata?: string) => void; removeStream: (stream: MediaStream) => void; addTrack: (track: MediaStreamTrack, stream: MediaStream) => void; removeTrack: (track: MediaStreamTrack) => void; } export interface RoomEvents { close: () => void; join: (peerId: string, metadata?: string) => void; leave: (peerId: string) => void; stream: (stream: MediaStream, peerId: string, metadata?: string) => void; removestream: (stream: MediaStream, peerId: string, metadata?: string) => void; track: (track: MediaStreamTrack, stream: MediaStream, peerId: string, metadata?: string) => void; removetrack: (track: MediaStreamTrack, stream: MediaStream, peerId: string, metadata?: string) => void; message: (data: string, peerId: string) => void; } export interface RoomOptions { signaling: Signaling; roomId: string; debug?: LogLevel; metadata?: string; /** * Optional RTCConfiguration for the peer connections. * @defaultValue { iceServers: [ { urls: "stun:stun.l.google.com:19302" }, { urls: "stun:stun1.l.google.com:19302" } ] } * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration */ rtcConfig?: RTCConfiguration; } export interface IRoom { get id(): string; get session(): string; get peers(): string[]; leave(): void; send(msg: string, target?: string | string[]): void; addStream(stream: MediaStream, metadata?: string, target?: string | string[]): void; removeStream(stream: MediaStream, target?: string | string[]): void; addTrack(track: MediaStreamTrack, stream: MediaStream, target?: string | string[]): void; removeTrack(track: MediaStreamTrack, target?: string | string[]): void; } export declare class Room extends EventEmitter<RoomEvents> implements IRoom { #private; static readonly SESSION_PREFIX = "room:"; constructor(options: RoomOptions); get id(): string; get session(): string; get peers(): string[]; leave(): void; send(msg: string, target?: string | string[]): void; addStream(stream: MediaStream, metadata?: string, target?: string | string[] | null): void; removeStream(stream: MediaStream, target?: string | string[]): void; addTrack(track: MediaStreamTrack, stream: MediaStream, target?: string | string[]): void; removeTrack(track: MediaStreamTrack, target?: string | string[]): void; } export interface ArticoEvents { open: (id: string) => void; close: () => void; error: (err: Error) => void; call: (call: Call) => void; } export interface ArticoOptions { /** * The log level (0: none, 1: errors, 2: warnings, 3: info, 4: debug). * @defaultValue 1 */ debug: LogLevel; /** * Optional signaling implementation. * Defaults to using Artico's built-in socket.io signaling. */ signaling: Signaling; /** * Requested peer ID. If not provided, a random ID will be generated. */ id: string; /** * Optional RTCConfiguration for the peer connections. * @defaultValue { iceServers: [ { urls: "stun:stun.l.google.com:19302" }, { urls: "stun:stun1.l.google.com:19302" } ] } * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration */ rtcConfig: RTCConfiguration; } export interface IArtico { get id(): string; get state(): SignalingState; close: () => void; call: (target: string, metadata?: string) => Call; join: (roomId: string, metadata?: string) => Room; } export declare class Artico extends EventEmitter<ArticoEvents> implements IArtico { #private; constructor(options?: Partial<ArticoOptions>); get id(): string; get state(): SignalingState; call: (target: string, metadata?: string) => Call; join: (roomId: string, metadata?: string) => Room; close: () => void; } export interface SocketSignalingOptions { debug: LogLevel; url: string; id: string; } export declare class SocketSignaling extends EventEmitter<SignalingEvents> implements Signaling { #private; constructor(options?: Partial<SocketSignalingOptions>); get id(): string; get state(): SignalingState; connect(): void; disconnect(): void; signal(msg: OutSignalMessage): void; join(roomId: string, metadata?: string): void; } export { Artico as default, }; export {};