@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
70 lines • 2.98 kB
TypeScript
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<void>;
readonly onSubscriptionListChanged: Event<void>;
/**@description [japanese] この RemotePerson にPublicationをSubscribeさせる */
subscribe: (publicationId: string) => Promise<{
subscription: Subscription;
}>;
/**@description [japanese] この RemotePerson にPublicationをUnsubscribeさせる */
unsubscribe: (subscriptionId: string) => Promise<void>;
};
/**@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<void>;
readonly onSubscriptionListChanged: Event<void>;
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<void>;
_dispose(): void;
}
//# sourceMappingURL=member.d.ts.map