import { AppRequest } from "./BaseServerTypes"; import * as Types from "./ApiTypes"; export interface StreamRoomCreateRequest extends AppRequest { kind: "streams.streamRoomCreate"; data: { contextId: string; users: Types.UserWithPubKey[]; managers: Types.UserWithPubKey[]; privateMeta: Uint8Array; publicMeta: Uint8Array; }; } export interface StreamRoomUpdateRequest extends AppRequest { kind: "streams.streamRoomUpdate"; data: { streamRoomId: Types.StreamRoomId; users: Types.UserWithPubKey[]; managers: Types.UserWithPubKey[]; privateMeta: string; publicMeta: string; }; } export interface StreamRoomGetRequest extends AppRequest { kind: "streams.streamRoomGet"; data: { streamRoomId: Types.StreamRoomId; }; } export interface StreamRoomListRequest extends AppRequest { kind: "streams.streamRoomList"; data: { contextId: string; query: Types.ListQuery; }; } export interface StreamRoomDeleteRequest extends AppRequest { kind: "streams.streamRoomDelete"; data: { streamRoomId: Types.StreamRoomId; }; } export interface StreamCreateRequest extends AppRequest { kind: "streams.streamCreate"; data: { streamRoomId: Types.StreamRoomId; meta?: Types.StreamCreateMeta; }; } export interface StreamUpdateRequest extends AppRequest { kind: "streams.streamUpdate"; data: { streamId: Types.StreamId; meta: Types.StreamCreateMeta; }; } export interface StreamListRequest extends AppRequest { kind: "streams.streamList"; data: { streamRoomId: Types.StreamRoomId; query: Types.ListQuery; }; } export interface StreamGetRequest extends AppRequest { kind: "streams.streamGet"; data: { streamRoomId: Types.StreamRoomId; streamId: Types.StreamId; }; } export interface StreamDeleteRequest extends AppRequest { kind: "streams.streamDelete"; data: { streamRoomId: Types.StreamRoomId; streamId: Types.StreamId; }; } export interface StreamDataTrackAddRequest extends AppRequest { kind: "streams.streamDataTrackAdd"; data: { streamRoomId: Types.StreamRoomId; streamTrackId: Types.StreamTrackId; streamId: Types.StreamId; meta: Types.DataChannelMeta; }; } export interface StreamTrackRemoveRequest extends AppRequest { kind: "streams.streamTrackRemove"; data: { streamId: Types.StreamId; streamRoomId: Types.StreamRoomId; streamTrackId: Types.StreamTrackId; }; } export interface StreamTrackListRequest extends AppRequest { kind: "streams.streamTrackList"; data: { streamId: Types.StreamId; streamRoomId: Types.StreamRoomId; }; } export interface StreamTrackSendDataRequest extends AppRequest { kind: "streams.streamTrackSendData"; data: { streamTrackId: Types.StreamTrackId; data: Buffer; }; } export interface StreamPublishRequest extends AppRequest { kind: "streams.streamPublish"; data: { streamRoomId: Types.StreamRoomId; streamId: Types.StreamId; streamMeta?: Types.StreamCreateMeta; peerConnectionOffer: any; }; } export interface StreamUnpublishRequest extends AppRequest { kind: "streams.streamUnpublish"; data: { streamRoomId: Types.StreamRoomId; streamId: Types.StreamId; }; } export interface StreamJoinRequest extends AppRequest { kind: "streams.streamJoin"; data: { streamRoomId: Types.StreamRoomId; streamToJoin: Types.StreamAndTracksSelector; }; } export interface StreamLeaveRequest extends AppRequest { kind: "streams.streamLeave"; data: { streamToLeave: Types.StreamAndTracksSelector; }; } export interface StreamDataChannelSendRequest extends AppRequest { kind: "streams.dataChannelSend"; data: { streamRoomId: Types.StreamRoomId; streamId: Types.StreamId; data: string; }; }