import { AnsiLogger } from 'matterbridge/logger';
import { MaybePromise } from 'matterbridge/matter';
export declare enum PeriodicStatus {
    'Stopped' = 0,
    'Down' = 1,
    'Up' = 2
}
export interface PeriodicConfig {
    name: string;
    interval: number;
    watchdog: number;
    onOp: () => MaybePromise;
    onStatus: (status: PeriodicStatus) => void;
}
export declare class Periodic {
    readonly log: AnsiLogger;
    readonly config: PeriodicConfig;
    status: PeriodicStatus;
    private abortInterval?;
    private abortWatchdog?;
    private enabled;
    private lastActivityTime;
    private runPeriodicPromise;
    constructor(log: AnsiLogger, config: PeriodicConfig);
    stop(): Promise<void>;
    up(): void;
    private setStatus;
    private runPeriodic;
    private restartWatchdog;
}
//# sourceMappingURL=periodic.d.ts.map