import { type Event } from '@skyway-sdk/common'; import type { SkyWayChannelImpl } from '../../../channel'; import type { SkyWayContext } from '../../../context'; import type { RemoteAudioStream } from '../../../media/stream/remote/audio'; import type { RemoteDataStream } from '../../../media/stream/remote/data'; import type { RemoteVideoStream } from '../../../media/stream/remote/video'; import { MemberImpl } from '../../../member'; import type { LocalPersonImpl } from '../../../member/localPerson'; import type { Person } from '../../../member/person'; import type { RemoteMemberImplInterface } from '../../../member/remoteMember'; import type { Subscription } from '../../../subscription'; import { P2PConnection } from './connection'; import type { PersonPlugin } from './plugin'; export declare type RemotePerson = RemoteMemberImplInterface & Person & { /**@description [japanese] この RemotePerson がPublicationをSubscribeしたとき */ readonly onPublicationSubscribed: Event<{ subscription: Subscription; }>; /**@description [japanese] この RemotePerson がPublicationをUnsubscribeしたとき */ readonly onPublicationUnsubscribed: Event<{ subscription: Subscription; }>; readonly onPublicationListChanged: Event; readonly onSubscriptionListChanged: Event; /**@description [japanese] この RemotePerson にPublicationをSubscribeさせる */ subscribe: (publicationId: string) => Promise<{ subscription: Subscription; }>; /**@description [japanese] この RemotePerson にPublicationをUnsubscribeさせる */ unsubscribe: (subscriptionId: string) => Promise; }; /**@internal */ export declare class RemotePersonImpl extends MemberImpl implements RemotePerson { private args; readonly type = "person"; readonly subtype = "person"; readonly side = "remote"; readonly plugin: PersonPlugin; private _connections; private _context; private _disposer; readonly onPublicationSubscribed: Event<{ subscription: Subscription; stream?: RemoteDataStream | RemoteAudioStream | RemoteVideoStream | undefined; }>; readonly onPublicationUnsubscribed: Event<{ subscription: Subscription; }>; readonly onPublicationListChanged: Event; readonly onSubscriptionListChanged: Event; constructor(args: { channel: SkyWayChannelImpl; name?: string; id: string; metadata?: string; plugin: PersonPlugin; context: SkyWayContext; }); /**@private */ _getConnection(localPersonId: string): P2PConnection; /**@private */ _getOrCreateConnection(localPerson: LocalPersonImpl): P2PConnection; private _createConnection; subscribe: (publicationId: string) => Promise<{ subscription: Subscription; }>; unsubscribe(subscriptionId: string): Promise; _dispose(): void; } //# sourceMappingURL=member.d.ts.map