import type { LanguageId } from "./language-detector.js";
/**
 * A verification command the agent should consider running after meaningful
 * edits to satisfy the active style pack(s). These are *recommendations* —
 * the agent picks the relevant ones for the change it just made.
 *
 * Detection is filesystem-only (manifest reads + script-name scans) — no
 * command execution. Cheap to compute alongside language detection.
 */
export interface VerifyCommand {
    /** Display label for the prompt (e.g. "lint", "typecheck", "test"). */
    label: string;
    /** The exact shell command, including the runner (pnpm/cargo/uv/etc.). */
    command: string;
    /** Which language pack this command verifies — for grouping in the prompt. */
    language: LanguageId;
}
/**
 * Compute the recommended verify commands for the active language set in `cwd`.
 *
 * Conservative by design: we only emit a command when its existence is
 * essentially guaranteed by a manifest or convention. We never invent commands
 * that might not exist. False positives here would train the agent to run
 * commands that fail, which is worse than no recommendation at all.
 */
export declare function detectVerifyCommands(cwd: string, active: Set<LanguageId>): VerifyCommand[];
/**
 * Render the Verification section for the system prompt. Returns empty string
 * when no commands were detected so the caller can skip the section entirely.
 *
 * Commands are grouped by language so the agent can quickly pick the relevant
 * subset when its edit only touched one language.
 */
export declare function renderVerifySection(cmds: readonly VerifyCommand[]): string;
//# sourceMappingURL=verify-commands.d.ts.map