import { VoiceCallDetectContract, CallingCallDetectEventParams } from '@signalwire/core';
import { ListenSubscriber } from '../../ListenSubscriber';
import { CallDetectEvents, CallDetectListeners, CallDetectListenersEventsMapping } from '../../types';
import { Call } from '../Call';
export interface CallDetectOptions {
    call: Call;
    payload: CallingCallDetectEventParams;
    listeners?: CallDetectListeners;
}
export declare class CallDetect extends ListenSubscriber<CallDetectListeners, CallDetectEvents> implements VoiceCallDetectContract {
    private _waitForBeep;
    private _result;
    private _payload;
    protected _eventMap: CallDetectListenersEventsMapping;
    constructor(options: CallDetectOptions);
    get id(): string;
    get controlId(): string;
    get callId(): string;
    get nodeId(): string;
    get detect(): import("@signalwire/core").Detector | undefined;
    get type(): "fax" | "machine" | "digit" | undefined;
    get result(): "0" | "1" | "2" | "3" | "4" | "5" | "6" | ("error" | "finished") | "CED" | "CNG" | "MACHINE" | "HUMAN" | "UNKNOWN" | "READY" | "NOT_READY" | "7" | "8" | "9" | "#" | "*";
    get waitForBeep(): boolean;
    get beep(): boolean | undefined;
    get hasEnded(): boolean;
    /** @internal */
    setPayload(payload: CallingCallDetectEventParams): void;
    stop(): Promise<this>;
    /** @deprecated */
    waitForResult(): Promise<this>;
    ended(): Promise<this>;
    private _lastEvent;
}
//# sourceMappingURL=CallDetect.d.ts.map