UNPKG

@skyway-sdk/core

Version:

The official Next Generation JavaScript SDK for SkyWay

73 lines 2.72 kB
import { type Event, Events } from '@skyway-sdk/common'; import type model from '@skyway-sdk/model'; import type { Channel, SkyWayChannelImpl } from '../channel'; import type { SkyWayContext } from '../context'; import type { LocalStream, RemoteAudioStream, RemoteDataStream, RemoteVideoStream } from '../media/stream'; import type { Publication } from '../publication'; import type { Subscription } from '../subscription'; export interface Member { id: string; name?: string; channel: Channel; type: MemberType; subtype: string; side: MemberSide; metadata?: string; state: MemberState; /**@description [japanese] Channelから離脱したときに発火するイベント */ onLeft: Event<void>; /**@description [japanese] Metadataが変化したときに発火するイベント */ onMetadataUpdated: Event<string>; /**@description [japanese] このMemberのPublicationのリスト */ publications: Publication<LocalStream>[]; /**@description [japanese] このMemberのSubscriptionのリスト */ subscriptions: Subscription<RemoteVideoStream | RemoteAudioStream | RemoteDataStream>[]; /** * @description [japanese] metadataを更新する */ updateMetadata: (metadata: string) => Promise<void>; /** * @description [japanese] memberをChannelから退去させる */ leave: () => Promise<void>; } /**@internal */ export declare abstract class MemberImpl implements Member { readonly channel: SkyWayChannelImpl; readonly id: string; readonly name?: string; readonly type: MemberType; readonly context: SkyWayContext; abstract readonly side: MemberSide; readonly subtype: string; private _metadata?; private _state; /**@internal */ readonly _events: Events; readonly onLeft: Event<void>; readonly onMetadataUpdated: Event<string>; constructor(args: { channel: SkyWayChannelImpl; name?: string; id: string; metadata?: string; context: SkyWayContext; }); get metadata(): string | undefined; get state(): MemberState; get publications(): Publication<LocalStream>[]; get subscriptions(): Subscription<import("../media/stream").RemoteStream>[]; /**@internal */ toJSON(): model.Member; /** @private*/ _left(): void; /** @private*/ _metadataUpdated(metadata: string): void; updateMetadata(metadata: string): Promise<void>; /**@throws {@link SkyWayError} */ leave(): Promise<void>; } export declare type MemberState = 'joined' | 'left'; export declare type MemberType = 'person' | 'bot'; export declare type MemberSide = 'local' | 'remote'; //# sourceMappingURL=index.d.ts.map