import type { StaffManager } from "./staff-manager.js";
import type { SessionManager } from "./session-manager.js";
import type { InboxManager } from "./inbox-manager.js";
/**
 * Check whether a single cron field matches a given numeric value.
 *
 * Supported syntax per field:
 *   *       — any value
 *   N       — exact match
 *   N-M     — inclusive range
 *   N/S     — step from 0 (alias for * /S when N is *)
 *   N-M/S   — step within range (value in [N..M] and (value-N) % S === 0)
 *   A,B,C   — comma-separated list (each element may itself be range/step)
 */
export declare function fieldMatches(field: string, value: number): boolean;
/**
 * Check whether a 5-field cron expression matches a given Date.
 *
 * Fields: minute hour day-of-month month day-of-week
 * Day of week: 0 = Sunday, 7 = Sunday (both valid).
 */
export declare function cronMatches(expr: string, date: Date): boolean;
/**
 * TriggerEngine polls every 60 seconds, checking active staff agents' triggers.
 *
 * - Schedule triggers: cron expression evaluation against current time
 * - Git triggers: compare latest commit SHA to persisted lastSeenSha
 * - Manual triggers are never auto-fired (invoked via API only)
 *
 * Resource model: no processes run when staff agents are sleeping. Only the
 * 60-second interval and cheap git log checks consume resources.
 */
export declare class TriggerEngine {
    private staffManager;
    private sessionManager;
    private inboxManager;
    private intervalHandle;
    constructor(staffManager: StaffManager, sessionManager: SessionManager, inboxManager: InboxManager);
    start(): void;
    stop(): void;
    private tick;
    /** Returns true if the trigger was fired. */
    private checkScheduleTrigger;
    /** Returns true if the trigger was fired. */
    private checkGitTrigger;
    /**
     * Append a new entry to the staff's inbox. Synchronous — returns once
     * the JSON file has been written. `InboxManager.enqueue` calls
     * `nudger.poke(staffId)` so an already-idle staff is woken on the next
     * microtask; otherwise the 15 s nudger tick picks it up the next time
     * the staff goes idle.
     */
    private fireTrigger;
}
//# sourceMappingURL=staff-trigger-engine.d.ts.map