@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
73 lines (70 loc) • 3.69 kB
TypeScript
/*!
PrivMX Web Endpoint.
Copyright © 2024 Simplito sp. z o.o.
This file is part of the PrivMX Platform (https://privmx.dev).
This software is Licensed under the PrivMX Free License.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { Jsep } from "../service/WebRtcInterface";
import { ContainerPolicy, PagingList, PagingQuery, StreamInfo, StreamEventSelectorType, StreamEventType, StreamRoom, TurnCredentials, UserWithPubKey } from "../Types";
import { WebRtcClient } from "../webStreams/WebRtcClient";
import { WebRtcInterfaceImpl } from "../webStreams/WebRtcInterfaceImpl";
import { Api } from "./Api";
import { BaseNative } from "./BaseNative";
import * as Types from "../Types";
export declare class StreamApiNative extends BaseNative {
protected webRtcClient: WebRtcClient;
protected static bindingId: number;
static getBindingId(): number;
protected webRtcInterfacePtr: number;
protected selfPtr: number;
protected webRtcInterfaceImpl: WebRtcInterfaceImpl | null;
constructor(api: Api, webRtcClient: WebRtcClient);
newApi(connectionPtr: number, eventApiPtr: number): Promise<number>;
deleteApi(ptr: number): Promise<void>;
create(ptr: number, args: []): Promise<void>;
createStreamRoom(ptr: number, args: [
string,
UserWithPubKey[],
UserWithPubKey[],
Uint8Array,
Uint8Array,
ContainerPolicy | undefined
]): Promise<string>;
updateStreamRoom(ptr: number, args: [
string,
UserWithPubKey[],
UserWithPubKey[],
Uint8Array,
Uint8Array,
number,
boolean,
boolean,
ContainerPolicy | undefined
]): Promise<void>;
deleteStreamRoom(ptr: number, args: [string]): Promise<void>;
getStreamRoom(ptr: number, args: [string]): Promise<StreamRoom>;
listStreamRooms(ptr: number, args: [string, PagingQuery]): Promise<PagingList<StreamRoom>>;
createStream(ptr: number, args: [string]): Promise<Types.StreamHandle>;
joinStreamRoom(ptr: number, args: [string]): Promise<void>;
leaveStreamRoom(ptr: number, args: [string]): Promise<void>;
enableStreamRoomRecording(ptr: number, args: [string]): Promise<void>;
getStreamRoomRecordingKeys(ptr: number, args: [string]): Promise<Types.RecordingEncKey[]>;
publishStream(ptr: number, args: [number]): Promise<Types.StreamPublishResult>;
updateStream(ptr: number, args: [number]): Promise<Types.StreamPublishResult>;
unpublishStream(ptr: number, args: [number]): Promise<void>;
listStreams(ptr: number, args: [string]): Promise<StreamInfo[]>;
subscribeToRemoteStreams(ptr: number, args: [string, Types.StreamSubscription[]]): Promise<void>;
modifyRemoteStreamsSubscriptions(ptr: number, args: [string, Types.StreamSubscription[], Types.StreamSubscription[]]): Promise<void>;
unsubscribeFromRemoteStreams(ptr: number, args: [string, Types.StreamSubscription[]]): Promise<void>;
keyManagement(ptr: number, args: [boolean]): Promise<void>;
getTurnCredentials(ptr: number, args: []): Promise<TurnCredentials[]>;
subscribeFor(ptr: number, args: [string[]]): Promise<string[]>;
unsubscribeFrom(ptr: number, args: [string[]]): Promise<void>;
buildSubscriptionQuery(ptr: number, args: [StreamEventType, StreamEventSelectorType, string]): Promise<string>;
trickle(ptr: number, args: [number, RTCIceCandidate]): Promise<void>;
acceptOfferOnReconfigure(ptr: number, args: [number, Jsep]): Promise<void>;
setNewOfferOnReconfigure(ptr: number, args: [number, Jsep]): Promise<void>;
protected bindWebRtcInterfaceAsHandler(bindingId: number): void;
}