@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
76 lines (75 loc) • 1.9 kB
TypeScript
import { StreamHandle } from "../../Types";
import * as MediaServerTypes from "./MediaServerWebSocketApiTypes";
export interface UserWithPubKey {
userId: string;
key: string;
}
export interface ListQuery {
skip?: number;
limit?: number;
order?: string;
}
export interface StreamCreateMeta {
mid?: string;
description?: string;
p2p?: boolean;
tracks?: StreamTrackCreateMeta[];
}
export interface StreamTrackCreateMeta {
mid?: string;
description?: string;
}
export interface StreamRemoteInfo {
id: StreamId;
tracks?: TrackInfo[];
}
export interface StreamAndTracksSelector {
streamRoomId: StreamRoomId;
streamId: StreamId;
tracks?: StreamTrackId[];
}
export interface Stream {
handle: StreamHandle;
streamRoomId: StreamRoomId;
remote: boolean;
createStreamMeta?: StreamCreateMeta;
remoteStreamInfo?: StreamRemoteInfo;
localMediaStream?: MediaStream;
}
export interface StreamList {
list: Stream[];
}
export type StreamId = number & {
__streamId: never;
};
export interface DataChannelMeta {
created: boolean;
dataChannel?: RTCDataChannel;
}
export interface StreamTrackInit {
track?: MediaStreamTrack;
createDataChannel?: boolean;
}
export interface StreamTrackList {
list: TrackInfo[];
}
export type StreamTrackId = string & {
__streamTrackId: never;
};
export interface PublishMeta {
bitrate?: number;
display?: string;
}
export interface TrackInfo extends MediaServerTypes.VideoRoomStreamTrack {
type: string;
streamRoomId: StreamRoomId;
streamId: StreamId;
meta?: DataChannelMeta;
dataTrackId?: StreamTrackId;
}
export type StreamRoomInfo = MediaServerTypes.VideoRoom;
export type StreamRoomList = MediaServerTypes.RoomListResult;
export type StreamRoomId = string & {
__streamRoomId: never;
};
export type TrackType = "audio" | "video" | "data";