/** Non-configurable suffix appended by the middleware to every heartbeat prompt. */ export declare const HEARTBEAT_TOOL_SUFFIX = " Report the result using the heartbeat_report tool."; export declare const DEFAULT_HEARTBEAT_EVERY = "30m"; export declare const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300; /** * Resolve the heartbeat prompt from config. * * Resolution order: * - `prompt` takes precedence if set (non-empty after trim) * - `file` is read at runtime (path relative to workspaceDir) * - Returns empty string when neither is configured (caller should skip heartbeat) */ export declare function resolveHeartbeatPrompt(opts: { prompt?: string; file?: string; workspaceDir?: string; }): Promise; export type StripHeartbeatMode = "heartbeat" | "message"; export declare function stripHeartbeatToken(raw?: string, opts?: { mode?: StripHeartbeatMode; maxAckChars?: number; }): { shouldSkip: boolean; text: string; didStrip: boolean; }; /** * Returns true when the HEARTBEAT.md content is effectively empty — * only contains headings, blank lines, and whitespace with no actionable items. */ export declare function isHeartbeatContentEffectivelyEmpty(content: string): boolean; export declare const HEARTBEAT_PROMPT = ""; export declare const DEFAULT_HEARTBEAT_FILENAME = "HEARTBEAT.md";