import { AnsiLogger } from 'matterbridge/logger';
export interface PeriodicOpConfig {
    name: string;
    interval: number;
    intervalRapid: number;
    timeout: number;
    onOp: () => Promise<void>;
    onError?: (err?: unknown) => void;
}
export declare class PeriodicOp {
    readonly log: AnsiLogger;
    readonly config: PeriodicOpConfig;
    lastError: unknown;
    abortInterval?: AbortController;
    abortWatchdog?: AbortController;
    private enabled;
    private lastOpTime;
    private rapidUntil;
    private runPeriodicPromise;
    constructor(log: AnsiLogger, config: PeriodicOpConfig);
    stop(): Promise<void>;
    requestRapid(duration: number): void;
    get timeUntilNextOp(): number;
    runPeriodic(): Promise<void>;
    stopWatchdogAndClearError(): void;
    restartWatchdog(): Promise<void>;
}
//# sourceMappingURL=periodic-op.d.ts.map