import type { SwarmCoordinatorContext, TaskContext } from "./swarm-coordinator.ts";
type ValidationVerdict = "pass" | "revise" | "escalate";
export interface TaskValidationResult {
    verdict: ValidationVerdict;
    summary: string;
    followUpPrompt?: string;
    reportPath: string;
    artifacts: Array<{
        artifactType: string;
        title: string;
        path?: string | null;
        uri?: string | null;
        mimeType?: string | null;
        metadata?: Record<string, unknown>;
    }>;
}
export interface ValidateTaskCompletionInput {
    sessionId: string;
    taskCtx: TaskContext;
    completionReasoning: string;
    completionSummary: string;
    turnOutput: string;
}
/**
 * Objective filesystem snapshot of the workspace passed to the validator.
 *
 * Produced by `collectWorkspaceEvidence()`. Everything here is read from
 * disk and git — it does not depend on the agent's own turn output, so
 * the validator can see ground truth regardless of which CLI (Claude,
 * Codex, Gemini, Aider) produced the work. Codex in particular emits
 * `apply_patch` previews wrapped in TUI box-drawing that the validator
 * LLM can't reliably parse as evidence files actually exist.
 */
interface WorkspaceEvidence {
    workdir: string;
    /** Relative file paths (up to `fileLimit`), sorted for deterministic prompts. */
    files: string[];
    /** Total count of files found, including any truncated from `files`. */
    fileCount: number;
    /** True if `workdir` is inside a git working tree. */
    isGitRepo: boolean;
    /** `git status --short` output, trimmed. Empty string if not a git repo or clean. */
    gitStatus: string;
    /** `git diff --stat HEAD` output, trimmed. Empty if no diff or not a git repo. */
    gitDiffStat: string;
    /** Non-fatal collection errors we want to surface to the validator. */
    notes: string[];
}
export declare const WORKSPACE_EVIDENCE_FILE_LIMIT = 200;
export declare const WORKSPACE_EVIDENCE_MAX_DEPTH = 5;
export declare const WORKSPACE_EVIDENCE_MAX_WALK = 2000;
/**
 * Read the workspace filesystem to produce objective evidence for the
 * validator prompt.
 *
 * - Walks `workdir` up to `WORKSPACE_EVIDENCE_MAX_DEPTH` levels, skipping
 *   common build/dep directories.
 * - Caps the file list at `WORKSPACE_EVIDENCE_FILE_LIMIT` entries; the
 *   `fileCount` field still reflects the total discovered so the
 *   validator can see truncation happened.
 * - If `workdir` is a git repository, captures `git status --short` and
 *   `git diff --stat HEAD` so the validator can see uncommitted work.
 * - Never throws. All errors are captured in `notes` so the validator
 *   can judge whether missing evidence should downgrade the verdict.
 */
export declare function collectWorkspaceEvidence(workdir: string | undefined | null): Promise<WorkspaceEvidence>;
export declare function validateTaskCompletion(ctx: SwarmCoordinatorContext, input: ValidateTaskCompletionInput): Promise<TaskValidationResult>;
export {};
//# sourceMappingURL=task-validation.d.ts.map