import { CallStatus } from "./CallStatus"; import { CallOptions } from "./options/CallOptions"; import { Endpoint } from "../util/Endpoint"; import { AudioFilter } from "./options/filters/audio/AudioFilter"; import { CallsApiEvent } from "./event/CallsApiEvents"; import { CallsEventHandlers } from "./event/CallsEventHandlers"; import { CustomData } from "./CustomDataType"; import { AudioQualityMode } from "./options/AudioQualityMode"; export interface Call { id(): string; options(): CallOptions; customData(): CustomData; status(): CallStatus; duration(): number; startTime(): Date; establishTime(): Date; endTime(): Date; mute(shouldMute: boolean): Promise; muted(): boolean; sendDTMF(dtmf: string): Promise; source(): Endpoint; destination(): Endpoint; counterpart(): Endpoint; setAudioInputDevice(deviceId: string): Promise; audioFilter(): AudioFilter; setAudioFilter(audioFilter: AudioFilter): Promise; clearAudioFilter(): Promise; setAudioQualityMode(audioQualityMode: AudioQualityMode): void; audioQualityMode(): AudioQualityMode; hangup(): void; on(name: CallsApiEvent.RINGING, handler: CallsEventHandlers.Ringing): void; on(name: CallsApiEvent.EARLY_MEDIA, handler: CallsEventHandlers.EarlyMedia): void; on(name: CallsApiEvent.ESTABLISHED, handler: CallsEventHandlers.Established): void; on(name: CallsApiEvent.HANGUP, handler: CallsEventHandlers.Hangup): void; on(name: CallsApiEvent.ERROR, handler: CallsEventHandlers.Error): void; on(name: CallsApiEvent.NETWORK_QUALITY_CHANGED, handler: CallsEventHandlers.NetworkQualityChanged): void; on(name: CallsApiEvent.CALL_RECORDING_STARTED, handler: CallsEventHandlers.CallRecordingStartedEvent): void; on(name: CallsApiEvent.RECONNECTING, handler: CallsEventHandlers.Reconnecting): void; on(name: CallsApiEvent.RECONNECTED, handler: CallsEventHandlers.Reconnected): void; on(name: CallsApiEvent.TALKING_WHILE_MUTED, handler: CallsEventHandlers.TalkingWhileMuted): void; }