UNPKG

@skyway-sdk/rtc-api-client

Version:

The official Next Generation JavaScript SDK for SkyWay

81 lines 4.72 kB
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