@skyway-sdk/sfu-api-client
Version:
The official Next Generation JavaScript SDK for SkyWay
106 lines • 3.62 kB
TypeScript
import { HttpClient, type LogFormat, type LogLevel } from '@skyway-sdk/common';
import type { ConsumerOptions } from 'mediasoup-client/lib/Consumer';
import type { RtpCapabilities } from 'mediasoup-client/lib/RtpParameters';
import type { IceParameters, TransportOptions } from 'mediasoup-client/lib/Transport';
export declare class SFURestApiClient {
private _token;
readonly options: SFUApiOptions;
readonly endpoint: string;
readonly http: HttpClient;
private readonly _headers;
constructor(_token: string, _options: Partial<SFUApiOptions> & Pick<SFUApiOptions, 'log'>);
updateToken(token: string): void;
private _commonErrorHandler;
createBot({ appId, channelId, }: {
appId: string;
channelId: string;
}): Promise<string>;
deleteBot({ botId }: {
botId: string;
}): Promise<void>;
startForwarding({ botId, publicationId, maxSubscribers, contentType, publisherId, }: {
botId: string;
publicationId: string;
maxSubscribers: number;
contentType: ContentType;
publisherId: string;
}): Promise<{
forwardingId: string;
broadcasterTransportId: string;
rtpCapabilities?: RtpCapabilities | undefined;
broadcasterTransportOptions?: TransportOptions<import("mediasoup-client/lib/types").AppData> | undefined;
identifierKey: string;
}>;
createProducer({ botId, forwardingId, transportId, producerOptions, }: {
botId: string;
forwardingId: string;
transportId: string;
producerOptions: object;
}): Promise<{
producerId: string;
}>;
/**@throws {maxSubscriberExceededError,} */
createConsumer({ botId, forwardingId, rtpCapabilities, subscriptionId, subscriberId, spatialLayer, originPublicationId, }: {
botId: string;
forwardingId: string;
rtpCapabilities: RtpCapabilities;
subscriptionId: string;
subscriberId: string;
spatialLayer?: number;
originPublicationId: string;
}): Promise<{
consumerOptions: ConsumerOptions;
producerId: string;
transportId: string;
transportOptions: TransportOptions | undefined;
}>;
connect({ transportId, dtlsParameters, }: {
transportId: string;
dtlsParameters: object;
}): Promise<{
transportId: string;
}>;
changeConsumerLayer({ transportId, consumerId, spatialLayer, publicationId, }: {
transportId: string;
consumerId: string;
spatialLayer: number;
publicationId: string;
}): Promise<{
transportId: string;
}>;
stopForwarding({ botId, forwardingId, }: {
botId: string;
forwardingId: string;
}): {
promise: Promise<void>;
fulfilled: any;
};
iceRestart({ transportId }: {
transportId: string;
}): Promise<IceParameters>;
getRtpCapabilities({ botId, forwardingId, originPublicationId, }: {
botId: string;
forwardingId: string;
originPublicationId: string;
}): Promise<RtpCapabilities>;
confirmSubscription({ forwardingId, subscriptionId, identifierKey, }: {
forwardingId: string;
subscriptionId: string;
identifierKey: string;
}): Promise<{
message: string;
operationId: string;
}>;
}
declare type ContentType = 'video' | 'audio';
export declare type SFUApiOptions = {
domain: string;
secure: boolean;
version: number;
log: {
level: LogLevel;
format: LogFormat;
};
};
export {};
//# sourceMappingURL=api.d.ts.map