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; /**@description [japanese] Metadataが変化したときに発火するイベント */ onMetadataUpdated: Event; /**@description [japanese] このMemberのPublicationのリスト */ publications: Publication[]; /**@description [japanese] このMemberのSubscriptionのリスト */ subscriptions: Subscription[]; /** * @description [japanese] metadataを更新する */ updateMetadata: (metadata: string) => Promise; /** * @description [japanese] memberをChannelから退去させる */ leave: () => Promise; } /**@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; readonly onMetadataUpdated: Event; constructor(args: { channel: SkyWayChannelImpl; name?: string; id: string; metadata?: string; context: SkyWayContext; }); get metadata(): string | undefined; get state(): MemberState; get publications(): Publication[]; get subscriptions(): Subscription[]; /**@internal */ toJSON(): model.Member; /** @private*/ _left(): void; /** @private*/ _metadataUpdated(metadata: string): void; updateMetadata(metadata: string): Promise; /**@throws {@link SkyWayError} */ leave(): Promise; } export declare type MemberState = 'joined' | 'left'; export declare type MemberType = 'person' | 'bot'; export declare type MemberSide = 'local' | 'remote'; //# sourceMappingURL=index.d.ts.map