import '../../assert/js/assert.js';
import '../../globals.js';
export type CallbackTimerCallback = () => void;
type SelfOptions = {
    callback?: CallbackTimerCallback;
    delay?: number;
    interval?: number;
};
export type CallbackTimerOptions = SelfOptions;
export default class CallbackTimer {
    private readonly callbacks;
    private _delay;
    private _interval;
    private delayID;
    private intervalID;
    private fired;
    constructor(options?: CallbackTimerOptions);
    isRunning(): boolean;
    start(): void;
    /**
     * Stops the timer.
     * @param fire - should we fire if we haven't fired already?
     */
    stop(fire: boolean): void;
    addCallback(callback: CallbackTimerCallback): void;
    removeCallback(callback: CallbackTimerCallback): void;
    /**
     * Calls all callbacks. Clients are free to call this when the timer is not running.
     */
    fire(): void;
    set delay(delay: number);
    get delay(): number;
    set interval(interval: number);
    get interval(): number;
    dispose(): void;
}
export {};
//# sourceMappingURL=CallbackTimer.d.ts.map