import { Event, SkyWayError } from '@skyway-sdk/common'; import { LocalPerson, LocalPersonAdapter, PublicationOptions, RemoteAudioStream, RemoteDataStream, RemoteVideoStream, SubscriptionOptions } from '@skyway-sdk/core'; import { RoomMember, RoomMemberImpl } from '../../member'; import { RoomPublication } from '../../publication'; import { Room, RoomImpl } from '../../room/base'; import { RoomSubscription } from '../../subscription'; export interface LocalRoomMember extends RoomMember { side: 'local'; room: Room; /**@private */ _updateRoom(room: Room): void; /** * @description [japanese] このMemberがStreamをPublishしたときに発火するイベント */ onStreamPublished: Event<{ publication: RoomPublication; }>; /** * @description [japanese] このMemberがStreamをUnPublishしたときに発火するイベント */ onStreamUnpublished: Event<{ publication: RoomPublication; }>; /** * @description [japanese] Publicationの数が変化した時に発火するイベント */ onPublicationListChanged: Event; /** * @description [japanese] このMemberがStreamをSubscribeしたときに発火するイベント */ onPublicationSubscribed: Event<{ subscription: RoomSubscription; stream: RemoteVideoStream | RemoteAudioStream | RemoteDataStream; }>; /** * @description [japanese] このMemberがStreamをUnsubscribeしたときに発火するイベント */ onPublicationUnsubscribed: Event<{ subscription: RoomSubscription; }>; /** * @description [japanese] Subscriptionの数が変化した時に発火するイベント */ onSubscriptionListChanged: Event; /** * @description [japanese] 回復不能なエラー。このインスタンスは継続して利用できない。 */ readonly onFatalError: Event; /** * @description [japanese] StreamのPublicationをUnpublishする */ unpublish: (publicationId: string | RoomPublication) => Promise; /** * @description [japanese] StreamのPublicationをSubscribeする */ subscribe: (publicationId: string | RoomPublication, options?: SubscriptionOptions) => Promise<{ subscription: RoomSubscription; stream: T; }>; /** * @description [japanese] StreamのSubscriptionをUnsubscribeする */ unsubscribe: (subscriptionId: string | RoomSubscription) => Promise; } /**@internal */ export declare abstract class LocalRoomMemberImpl extends RoomMemberImpl implements LocalRoomMember { readonly side = "local"; readonly _local: LocalPerson; readonly onStreamPublished: Event<{ publication: RoomPublication; }>; readonly onStreamUnpublished: Event<{ publication: RoomPublication; }>; readonly onPublicationListChanged: Event; readonly onPublicationSubscribed: Event<{ subscription: RoomSubscription; stream: RemoteVideoStream | RemoteAudioStream | RemoteDataStream; }>; readonly onPublicationUnsubscribed: Event<{ subscription: RoomSubscription; }>; readonly onSubscriptionListChanged: Event; readonly onFatalError: Event>>; readonly _context: import("@skyway-sdk/core").SkyWayContext; /**@private */ constructor(member: LocalPersonAdapter, room: RoomImpl); get subscriptions(): import("../../subscription").RoomSubscriptionImpl[]; protected _listenRoomEvent(): void; abstract unpublish(publicationId: string | RoomPublication): Promise; abstract subscribe(publicationId: string | RoomPublication): Promise<{ subscription: RoomSubscription; stream: T; }>; abstract unsubscribe(subscriptionId: string | RoomSubscription): Promise; abstract _updateRoom(room: Room): void; } export declare type RoomPublicationOptions = PublicationOptions & { /**sfu only */ maxSubscribers?: number; }; //# sourceMappingURL=base.d.ts.map