@observertc/observer-js
Version:
Server Side NodeJS Library for processing ObserveRTC Samples
85 lines • 3.87 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { ObservedClient, ObservedClientSettings } from './ObservedClient';
import { Observer } from './Observer';
import { ScoreCalculator } from './scores/ScoreCalculator';
import { CalculatedScore } from './scores/CalculatedScore';
import { Detectors } from './detectors/Detectors';
import { RemoteTrackResolver } from './utils/RemoteTrackResolver';
import { Updater } from './updaters/Updater';
import { ObservedCallEventMonitor } from './ObservedCallEventMonitor';
export type ObservedCallSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
callId: string;
appData?: AppData;
remoteTrackResolvePolicy?: 'p2p' | 'mediasoup-sfu';
updatePolicy?: 'update-on-any-client-updated' | 'update-when-all-client-updated' | 'update-on-interval';
updateIntervalInMs?: number;
};
export type ObservedCallEvents = {
update: [];
newclient: [ObservedClient];
empty: [];
'not-empty': [];
close: [];
};
export declare interface ObservedCall {
on<U extends keyof ObservedCallEvents>(event: U, listener: (...args: ObservedCallEvents[U]) => void): this;
off<U extends keyof ObservedCallEvents>(event: U, listener: (...args: ObservedCallEvents[U]) => void): this;
once<U extends keyof ObservedCallEvents>(event: U, listener: (...args: ObservedCallEvents[U]) => void): this;
emit<U extends keyof ObservedCallEvents>(event: U, ...args: ObservedCallEvents[U]): boolean;
}
export declare class ObservedCall<AppData extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
readonly observer: Observer;
readonly detectors: Detectors;
updater?: Updater;
scoreCalculator: ScoreCalculator;
readonly callId: string;
readonly observedClients: Map<string, ObservedClient<Record<string, unknown>>>;
readonly clientsUsedTurn: Set<string>;
readonly calculatedScore: CalculatedScore;
remoteTrackResolver?: RemoteTrackResolver;
totalAddedClients: number;
totalRemovedClients: number;
totalClientsReceivedAudioBytes: number;
totalClientsReceivedVideoBytes: number;
totalClientsReceivedDataChannelBytes: number;
totalClientsReceivedBytes: number;
totalClientsSentAudioBytes: number;
totalClientsSentDataChannelBytes: number;
totalClientsSentVideoBytes: number;
totalClientsSentBytes: number;
totalRttLt50Measurements: number;
totalRttLt150Measurements: number;
totalRttLt300Measurements: number;
totalRttGtOrEq300Measurements: number;
numberOfIssues: number;
numberOfPeerConnections: number;
numberOfInboundRtpStreams: number;
numberOfOutboundRtpStreams: number;
numberOfDataChannels: number;
maxNumberOfClients: number;
deltaNumberOfIssues: number;
deltaRttLt50Measurements: number;
deltaRttLt150Measurements: number;
deltaRttLt300Measurements: number;
deltaRttGtOrEq300Measurements: number;
appData: AppData;
closed: boolean;
startedAt?: number;
endedAt?: number;
closedAt?: number;
private _callStartedEvent;
private _callEndedEvent;
constructor(settings: ObservedCallSettings<AppData>, observer: Observer);
get numberOfClients(): number;
get score(): number | undefined;
close(): void;
getObservedClient<ClientAppData extends Record<string, unknown> = Record<string, unknown>>(clientId: string): ObservedClient<ClientAppData> | undefined;
createObservedClient<ClientAppData extends Record<string, unknown> = Record<string, unknown>>(settings: ObservedClientSettings<ClientAppData>): ObservedClient<ClientAppData>;
createEventMonitor<CTX>(context: CTX): ObservedCallEventMonitor<CTX>;
update(): void;
private _onClientUpdate;
private _clientJoined;
private _clientLeft;
}
//# sourceMappingURL=ObservedCall.d.ts.map