import { Call } from "./Call";
import { PhoneCallOptions } from "./options/PhoneCallOptions";
import { CallsApiEvent } from "./event/CallsApiEvents";
import { CallsEventHandlers } from "./event/CallsEventHandlers";
export interface PhoneCall extends Call {
    options(): PhoneCallOptions;
    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;
    on(name: CallsApiEvent.MACHINE_DETECTION_FINISHED, handler: CallsEventHandlers.MachineDetectionFinished): void;
    on(name: CallsApiEvent.MACHINE_DETECTION_FAILED, handler: CallsEventHandlers.MachineDetectionFailed): void;
}
