import { SetupDataChannelEvent } from "../ws/event/DataChannelEvents"; import { Participant } from "../../util/Participant"; import { Logger } from "../../log/Logger"; import { InfobipGateway } from "../../gateway/InfobipGateway"; import { ApiEventEmitter } from "../../util/ApiEventEmitter"; import { DataChannel } from "../DataChannel"; import { AnyDataChannelEvent } from "../event/DataChannelEvents"; import { DataChannelEventHandlers } from "../event/DataChannelEventHandlers"; import { Endpoint } from "../../util/Endpoint"; type IceCandidateHandler = (ev: RTCPeerConnectionIceEvent) => any; export declare class DefaultDataChannel implements DataChannel { private gateway; private logger; private callId; private currentUserIdentity; private participantResolver; private iceCandidateHandler; private canSendMessage; private apiEventEmitter; private conferenceId; private readonly dataEventEmitter; private textRoomId; private dataChannel; private textRoomParticipants; private dataChannelPc; private readonly availabilityLock; private readonly timeLock; private readonly bufferLock; private readonly pendingMessages; private currentAvailabilityLock; private currentBufferLock; constructor(gateway: InfobipGateway, logger: Logger, callId: string, currentUserIdentity: string, participantResolver: (identity: string) => Participant, iceCandidateHandler: IceCandidateHandler, canSendMessage: () => boolean, apiEventEmitter: ApiEventEmitter, conferenceId: string); private setupAvailabilityLock; initialize(event: SetupDataChannelEvent, rtcConfig?: RTCConfiguration): void; on(name: AnyDataChannelEvent, handler: DataChannelEventHandlers.Any): void; send(text: string, to?: Endpoint): Promise; destroy(): void; removeParticipant(identity: string): void; addParticipant(identity: string): void; private getMessageRecipient; private onDataChannel; private handleErrorMessage; private handleDataMessage; private handleAnnouncementData; private emitDataSent; private emitDataReceived; private emitBroadcastTextReceived; private handleLeaveMessage; private handleSuccessMessage; private handleJoinMessage; private initializeDataChannelListeners; private sendAnswer; private sendJoinMessage; private sendTextMessage; private sendDataChannelMessage; private canRoleSendMessage; } export {};