import { VirtualLogger } from './virtualLogger.js';
import { ZonedDateTime } from '@js-joda/core';
/**
 * Timer
 */
export declare class Timer {
    private readonly oneSecond;
    private accessoryName;
    private log;
    private timerIsResettable;
    private id;
    private defaultDuration;
    private updateIntervalMillis;
    private startTime;
    private isRunning;
    private runtime;
    private remainingDurationMillis;
    private logDebugCountdown;
    /**
     * Set duration in seconds
     */
    constructor(accessoryName: string, log: VirtualLogger, timerIsResettable: boolean);
    constructor(accessoryName: string, log: VirtualLogger, timerIsResettable: boolean, duration: number);
    /**
     * Set duration/oneOffDuration in seconds
     */
    start(callback: () => void): void;
    start(callback: () => void, duration: number): void;
    start(callback: () => void, duration: number, updateIntervalMillis: number): void;
    stop(): void;
    getStartTime(): ZonedDateTime;
    /**
     * Returns runtime in seconds
     */
    getRuntime(): number;
    /**
     * Returns interval in milliseconds
     */
    getUpdateIntervalMillis(): number;
    /**
     * Returns duration in seconds
     */
    getDefaultDuration(): number;
    /**
     * Set duration in seconds
     */
    setDefaultDuration(duration: number): void;
    /**
     * Returns remaining duration in seconds
     */
    getRemainingDuration(): number;
    /**
     * Returns remaining duration in milliseconds
     */
    getRemainingDurationMillis(): number;
    isTimerRunning(): boolean;
    debugCountdown(): void;
}
