export type DebouncedObservedBooleanMode = number;
export namespace DebouncedObservedBooleanMode {
    let DebounceRise: number;
    let DebounceFall: number;
    let DebounceBoth: number;
}
/**
 * Helps hide fluctuating values. Resulting value will only be propagated if source holds that value for a given amount of time.
 */
export class DebouncedObservedBoolean extends ObservedBoolean {
    /**
     *
     * @param {ObservedBoolean} source
     * @param {number} time
     * @param {DebouncedObservedBooleanMode|number} mode
     */
    constructor(source: ObservedBoolean, time: number, mode?: DebouncedObservedBooleanMode | number);
    __source: ObservedBoolean;
    time: number;
    __timeout: NodeJS.Timer;
    mode: number;
    link(): void;
    unlink(): void;
    /**
     *
     * @private
     */
    private __clearTimeout;
    /**
     *
     */
    assumeSourceValue(): void;
    /**
     *
     * @param {boolean} v
     */
    set(v: boolean): this;
    /**
     *
     * @param {boolean} v
     * @param {boolean} old
     * @private
     */
    private __handleSourceChange;
}
import ObservedBoolean from "./ObservedBoolean.js";
//# sourceMappingURL=DebouncedObservedBoolean.d.ts.map