export declare const HEARTBEAT_PROMPT = "Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do real work every heartbeat: pick up backlog tasks, scan for issues, organize, continue inferred work from recent context, maintain memory files. You MUST do productive work and report what you did. Neither HEARTBEAT_OK nor NO_REPLY are acceptable responses to heartbeats -- you must always take action (use tools, run commands, update files) and then describe what you did. If you think there is nothing to do, you are wrong: check infrastructure, test things, review code, update docs, clean up, or explore.";
export declare const DEFAULT_HEARTBEAT_EVERY = "30m";
export declare const DEFAULT_HEARTBEAT_ACK_MAX_CHARS = 300;
/**
 * Check if HEARTBEAT.md content is "effectively empty" - meaning it has no actionable tasks.
 * This allows skipping heartbeat API calls when no tasks are configured.
 *
 * A file is considered effectively empty if it contains only:
 * - Whitespace
 * - Comment lines (lines starting with #)
 * - Empty lines
 *
 * Note: A missing file returns false (not effectively empty) so the LLM can still
 * decide what to do. This function is only for when the file exists but has no content.
 */
export declare function isHeartbeatContentEffectivelyEmpty(content: string | undefined | null): boolean;
export declare function resolveHeartbeatPrompt(raw?: string): string;
export type StripHeartbeatMode = "heartbeat" | "message";
export declare function stripHeartbeatToken(raw?: string, opts?: {
    mode?: StripHeartbeatMode;
    maxAckChars?: number;
}): {
    shouldSkip: boolean;
    text: string;
    didStrip: boolean;
};
