import { type HeartbeatRow } from './heartbeat-store.js'; export interface RunResult { status: 'skipped' | 'delivered' | 'suppressed' | 'no-agent' | 'failed'; reason: string; /** Populated only when status='delivered'. */ deliveredText?: string; /** Populated when status='delivered' or 'suppressed' so /heartbeat * run-now can print "the gate / sink got this much". */ rawAgentOutput?: string; } /** * Single binding tick. ALL exceptions caught + logged + stamped onto * the row; never throws. Returns the result so the slash command's * `/heartbeat run-now` can show it back to the user synchronously. */ export declare function runForBinding(row: HeartbeatRow): Promise; /** * One scheduler pass. Picks up to 50 due bindings and runs them * sequentially; concurrent ticks on the same scheduler are intentional * (avoids stampedes on the user's agent, keeps memory bounded). Returns * a summary so tests can assert on it. */ export declare function tickOnce(): Promise<{ scanned: number; results: Record; }>; export declare function startHeartbeatScheduler(): void; export declare function stopHeartbeatScheduler(): void; /** Reflect current scheduler state for /heartbeat status output. */ export declare function schedulerInfo(): { enabled: boolean; running: boolean; periodMs: number; }; //# sourceMappingURL=heartbeat.d.ts.map