import { BasicManipulator, FromAndToKeyCode, FromModifierParam, KeyAlias, ModifierParam, ToEvent } from "karabiner.ts";
export declare class ModTapBuilder {
    private fromEvent;
    private originalEvents;
    private isPermissive;
    private mods;
    private simultaneousThresholdMs?;
    private tappingTermMs?;
    constructor();
    build(): BasicManipulator[];
    from(keyCodeAlias: FromAndToKeyCode | KeyAlias | Array<FromAndToKeyCode | KeyAlias>, mandatoryModifiers?: FromModifierParam & ModifierParam, optionalModifiers?: FromModifierParam): this;
    /**
     * Sets the mod-tap key to be permissive or non-permissive.
     *
     * A permissive mod-tap key activates the modifier as soon as another key is pressed.
     * A non-permissive mod-tap key requires the tapping term to pass before activating.
     */
    permissive(val: boolean): this;
    modifiers(modifiers: ToEvent): this;
    /**
     * Sets the simultaneous threshold in milliseconds.
     *
     * Simultaneous threshold is the maximum time in milliseconds Karabiner will wait for a simultaneous
     * chord to appear.
     */
    simultaneousThreshold(simultaneousThresholdMs: number): this;
    /**
     * Sets the tapping term in milliseconds.
     *
     * The tapping term is the time in milliseconds that the key must be held
     * down in order to be fully active for non-permissive mod-tap keys.
     */
    tappingTerm(tappingTermMs: number): this;
    private copyAndAddHaltToFirstToEvent;
}
export declare function modTap(): ModTapBuilder;
