/**
 * Promise-based Timer. Execute fn every tick.
 * When fn is resolved — timer will stop
 * @param {number} delay - delay between ticks
 * @param {number} timeout - after that time timer will stop
 * @param {Function} fn - function that returns promise. will execute every tick
 * @param {boolean} leading - should be function invoked on start
 * @return {promise} Promise-based Timer.
 */
declare class Timer {
    #private;
    private _delay;
    private _timeout;
    private _fn;
    private _leading;
    private _signal?;
    private _conditionExecutedCnt;
    private _resolve;
    private _reject;
    private _startTime?;
    private _ticks;
    private _timeoutId?;
    private _mainTimeoutId?;
    private _lastError?;
    constructor(_delay: number, _timeout: number, _fn: Function, _leading?: boolean, _signal?: AbortSignal | undefined);
    then(thennable?: (result: boolean) => void, catchable?: (reason: Error) => boolean): Promise<boolean | void>;
    catch<ReturnValue>(catchable?: (reason: Error) => ReturnValue): Promise<ReturnValue>;
    private _start;
    private _stop;
    private _stopMain;
    private _tick;
    private _checkCondition;
    private _hasTime;
    private _wasConditionExecuted;
}
export default Timer;
//# sourceMappingURL=Timer.d.ts.map