import { Event } from '@skyway-sdk/common'; import { Member, MemberState } from '@skyway-sdk/core'; import { RoomPublication } from '../publication'; import { RoomType } from '../room'; import { RoomImpl } from '../room/base'; import { RoomSubscription } from '../subscription'; export interface RoomMember { readonly id: string; readonly name?: string; readonly roomId: string; readonly roomName?: string; readonly roomType: RoomType; readonly metadata?: string; state: RoomMemberState; /**@description [japanese] Memberが Publish した Publication のリスト */ readonly publications: RoomPublication[]; /**@description [japanese] Memberが Subscribe している Subscription のリスト */ readonly subscriptions: RoomSubscription[]; /**@description [japanese] MemberがRoomから出たときに発火するイベント*/ readonly onLeft: Event; /**@description [japanese] Memberのメタデータが更新された時に発火するイベント*/ readonly onMetadataUpdated: Event; /**@description [japanese] Memberのメタデータを更新する */ updateMetadata: (metadata: string) => Promise; /** * @description [japanese] Channelから退室する */ leave: () => Promise; } /**@internal */ export declare abstract class RoomMemberImpl implements RoomMember { protected member: Member; room: RoomImpl; readonly onLeft: Event; readonly onMetadataUpdated: Event; get id(): string; get name(): string | undefined; get roomId(): string; get roomName(): string; get roomType(): "sfu" | "p2p"; get state(): MemberState; get metadata(): string | undefined; constructor(member: Member, room: RoomImpl); /**@private */ get _member(): Member; get publications(): RoomPublication[]; get subscriptions(): import("../subscription").RoomSubscriptionImpl[]; updateMetadata(metadata: string): Promise; leave(): Promise; /**@internal */ toJSON(): { id: string; name: string | undefined; metadata: string | undefined; }; } export declare type RoomMemberState = MemberState; //# sourceMappingURL=index.d.ts.map