/** * @module DataChannels */ import { EventableService, Service } from '../../services/service'; import { Subscription } from 'rxjs'; import { RBEvent } from '../../models/event.model'; import { DataChannel } from '../../models/dataChannel.model'; import { Bubble, User } from '../../models'; /** @internal */ export declare const DATA_CHANNEL_SVC = "DataChannelService"; /** * @eventProperty */ export interface IDataChannelServiceEvents { /** * This RB even is send when a datachannel is available in a conversation */ ON_DATACHANNEL_AVAILABLE: DataChannel; /** * This RB event is send when datachannel is deleted in a conversation */ ON_DATACHANNEL_CLOSED: DataChannel; } export interface DataChannelService extends EventableService { /** * Subscribe to updates from the service * @param handler - The callback function that will be subscribed to the RxJS subject * @param eventNames - array of event to listen * @returns Returns RxJS Subscription */ subscribe(handler: (event: RBEvent) => any, eventNames?: string | string[]): Subscription; /** * @param peer - a contact or a bubble * @param id - the dataChannel identifier * @param description - dataChannel description * @returns a promise which is resolved when the dataChannel is created */ createDataChannel(peer: User | Bubble, id: string, description?: string): Promise; } /** * @eventProperty * `DataChannelService` specific events */ export declare enum DataChannelServiceEvents { /** * @eventProperty ON_DATACHANNEL_AVAILABLE * This RB event is send when a datachannel is available in a conversation */ ON_DATACHANNEL_AVAILABLE = "ON_DATACHANNEL_AVAILABLE", /** * @eventProperty ON_DATACHANNEL_CLOSED * This RB event is send when a datachannel is deleted in a conversation */ ON_DATACHANNEL_CLOSED = "ON_DATACHANNEL_CLOSED" } /** @internal */ export declare class DataChannelService_RB extends Service implements DataChannelService { private mainService; private xmppService; private loggerService; private authService; private contactService; private webConferenceService?; private bubbleService?; private subscriptions; private jingleSubscription?; private conferenceEventListener?; private dataChannelEventListener?; private readonly eventSubject; private promiseQueue; private readonly dataChannels; static getInstance(): DataChannelService; static build(): DataChannelService; private constructor(); start(): Promise; stop(): Promise; events(...eventNames: EventNames[]): import("rxjs").Observable>>; subscribe(handler: (event: RBEvent) => any, eventNames?: string | string[]): Subscription; createDataChannel(peer: User | Bubble, id: string, description?: string, affiliation?: string): Promise; deleteDataChannel(dataChannel: DataChannel): Promise; leaveDataChannel(dataChannel: DataChannel): Promise; acceptDataChannel(dataChannel: DataChannel): Promise; refuseDataChannel(dataChannel: DataChannel): Promise; private acceptDataChannelInternal; private subscribeToEvents; private onP2PDataChannelMessageReceived; private onConferenceInfo; private jingleEventHandler; private onJingleSessionInitiate; private onJingleConnectionStateChange; private onJingleError; private onDataChannelFailed; private cleanDataChannel; private attachStatusListeners; private onDataChannelStatusChange; private sendEvent; private getApplicationSession; } //# sourceMappingURL=dataChannel.service.d.ts.map