/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
/**
 * Convert a simple cron expression to an interval in milliseconds.
 *
 * Supported patterns:
 * - `* /N * * * *` → every N minutes (written without space; space here avoids comment)
 * - `N * * * *`    → once per hour (at minute N) → 60 min interval
 * - `M H * * *`    → once per day (at H:M) → 24 hour interval
 *
 * Returns 0 for unsupported patterns.
 */
export declare function cronToIntervalMs(schedule: string): number;
declare class AutomationScheduler {
    private readonly timers;
    private readonly agentId;
    constructor(agentId: string);
    /**
     * Load enabled automations from DB and start their timers.
     */
    start(): Promise<void>;
    /**
     * Schedule a single automation to fire on an interval.
     */
    private scheduleOne;
    /**
     * Trigger an automation run immediately.
     */
    trigger(name: string, message: string): Promise<void>;
    /**
     * Enable and schedule an automation.
     */
    enableAutomation(name: string, schedule: string, message: string): void;
    /**
     * Disable and remove a scheduled automation.
     */
    disableAutomation(name: string): void;
    /**
     * Stop all timers. Called on shutdown.
     */
    stop(): void;
    private clearOne;
}
/**
 * Get or create the singleton scheduler for the given agent.
 */
export declare function getScheduler(agentId: string): AutomationScheduler;
/**
 * Reset the scheduler singleton. Used for testing only.
 */
export declare function resetScheduler(): void;
export {};
