/** * Callback for a DTMF digit or sequence match. * @param arg The digit (for {@link DTMFHandlerImpl.onDigit}) or sequence (for * {@link DTMFHandlerImpl.onSequence}) that matched. */ export type DTMFCallback = (arg: string) => void | Promise | unknown; /** Event topic on which DTMF digits are delivered. */ export declare const DTMF_EVENT_TOPIC = "dtmf_received"; /** Maximum number of recent digits retained for sequence matching. */ export declare const SEQUENCE_BUFFER_MAX = 32; declare class DTMFHandlerImpl { private _handlers; private _sequenceBuffer; constructor(_opts?: Record); /** Register `callback` to fire each time the given single `digit` is received. */ onDigit(digit: string, callback: DTMFCallback): void; /** Register `callback` to fire when the recent digit stream ends with `sequence`. */ onSequence(sequence: string, callback: DTMFCallback): void; _dispatch(digit: string): void; private static _invoke; } /** * Routes received DTMF (touch-tone) input to callbacks registered per digit * ({@link DTMFHandlerImpl.onDigit}) or per sequence ({@link DTMFHandlerImpl.onSequence}). */ export type DTMFHandler = DTMFHandlerImpl; /** Create a {@link DTMFHandler}. */ export declare const DTMFHandler: (_opts?: Record) => DTMFHandler; export {};