@skyway-sdk/rtc-api-client
Version:
The official Next Generation JavaScript SDK for SkyWay
81 lines • 4.72 kB
TypeScript
import model, { Channel, Member, Publication, Subscription } from '@skyway-sdk/model';
import { PublicationSummary, SubscriptionSummary } from '@skyway-sdk/rtc-rpc-api-client';
import { Config } from '../config';
import * as event from '../model/event';
import { MemberInit, PublicationInit, RtcApi, SubscriptionInit } from './api';
import { EventObserver } from './eventObserver';
export declare class ChannelImpl implements model.Channel {
readonly appId: string;
private eventObserver;
private apiClient;
private config;
readonly id: string;
readonly name: string;
metadata?: string;
members: model.Member[];
getMember(id: string): model.Member | undefined;
addMember(member: model.Member): model.Member;
deleteMember(id: string): void;
publications: model.Publication[];
getPublication(id: string): model.Publication | undefined;
addPublication(summary: PublicationSummary): model.Publication;
deletePublication(publicationId: string): void;
subscriptions: model.Subscription[];
getSubscription(id: string): model.Subscription | undefined;
addSubscription(summary: SubscriptionSummary): model.Subscription;
deleteSubscription(subscriptionId: string): void;
version: number;
disposed: boolean;
private readonly _events;
readonly onClosed: import("@skyway-sdk/common").Event<event.ChannelClosedEvent>;
readonly onMetadataUpdated: import("@skyway-sdk/common").Event<event.ChannelMetadataUpdatedEvent>;
readonly onMemberListChanged: import("@skyway-sdk/common").Event<event.ChangedEvent>;
readonly onMemberJoined: import("@skyway-sdk/common").Event<event.MemberJoinedEvent>;
readonly onMemberLeft: import("@skyway-sdk/common").Event<event.MemberLeftEvent>;
readonly onMemberMetadataUpdated: import("@skyway-sdk/common").Event<event.MemberMetadataUpdatedEvent>;
readonly onPublicationDisabled: import("@skyway-sdk/common").Event<event.PublicationDisabledEvent>;
readonly onPublicationEnabled: import("@skyway-sdk/common").Event<event.PublicationEnabledEvent>;
readonly onPublicationListChanged: import("@skyway-sdk/common").Event<event.ChangedEvent>;
readonly onStreamPublished: import("@skyway-sdk/common").Event<event.StreamPublishedEvent>;
readonly onStreamUnpublished: import("@skyway-sdk/common").Event<event.StreamUnpublishedEvent>;
readonly onPublicationMetadataUpdated: import("@skyway-sdk/common").Event<event.PublicationMetadataUpdatedEvent>;
readonly onSubscriptionListChanged: import("@skyway-sdk/common").Event<event.ChangedEvent>;
readonly onPublicationSubscribed: import("@skyway-sdk/common").Event<event.StreamSubscribedEvent>;
readonly onPublicationUnsubscribed: import("@skyway-sdk/common").Event<event.StreamUnsubscribedEvent>;
constructor(appId: string, { id, name, members, metadata, publications, subscriptions, version, }: model.Channel, eventObserver: EventObserver, apiClient: RtcApi, config: Config);
private _channelClosed;
private _channelMetadataUpdated;
private _memberJoined;
private _memberLeft;
private _memberMetadataUpdated;
private _streamPublished;
private _streamUnpublished;
private _publicationMetadataUpdated;
private _publicationDisabled;
private _publicationEnabled;
private _streamSubscribed;
private _streamUnsubscribed;
updateChannelMetadata: (metadata: string) => Promise<void>;
joinChannel(memberInit: MemberInit): Promise<model.Member>;
leave: (channelId: Channel['id'], memberId: Member['id']) => Promise<void>;
updateMemberTtl(memberId: Member['id'], ttlSec: number): Promise<void>;
updateMemberMetadata: (memberId: Member['id'], metadata: string) => Promise<void>;
/**@throws {SkyWayError} */
publish(init: Omit<PublicationInit, 'channel'>): Promise<Publication>;
unpublish: (publicationId: Publication['id']) => Promise<void>;
updatePublicationMetadata: (publicationId: Publication['id'], metadata: string) => Promise<void>;
disablePublication: (publicationId: Publication['id']) => Promise<void>;
enablePublication: (publicationId: Publication['id']) => Promise<void>;
/**@throws {@link SkyWayError} */
subscribe(init: Omit<SubscriptionInit, 'channel'>): Promise<model.Subscription>;
unsubscribe: (subscriptionId: Subscription['id']) => Promise<void>;
close(): Promise<void>;
/**
* リソースの解放
* - Channelイベントの購読停止
* - イベントリスナー
*/
dispose(): void;
}
export declare function channelFactory(appId: string, eventObserver: EventObserver, api: RtcApi, channelDto: Channel, config: Config): ChannelImpl;
//# sourceMappingURL=channel.d.ts.map