import { type HealthFinding, type HealthResult } from "./contract.js";
import { type DeterministicHealthOptions } from "./deterministic.js";
/** Read-only evidence kinds exposed to an injected evaluator. */
export type AgenticArtifactKind = "eslint-override" | "eslint-ignore-override" | "managed-drift" | "workflow";
/**
 * One bounded, project-relative source artifact. Artifact content comes from
 * the host project and must be treated as untrusted prompt material.
 */
export interface AgenticHealthArtifact {
    readonly kind: AgenticArtifactKind;
    readonly path: string;
    readonly content: string;
}
/** Deeply frozen input passed to the evaluator without filesystem capability. */
export interface AgenticHealthRequest {
    readonly schemaVersion: 1;
    readonly deterministicFindings: readonly HealthFinding[];
    readonly config: {
        readonly quality: {
            readonly mutation: {
                readonly gate: {
                    readonly enabled: boolean | null;
                };
            };
        };
        /**
         * Declared level of the work-item traceability gate, or null when the
         * project never mentions it. Null is NOT off: an undeclared gate still runs
         * its built-in check, so an evaluator told "null" must read that as
         * "running on Lisa's default", never as "not enforced".
         */
        readonly gates: {
            readonly traceability: {
                readonly level: string | null;
            };
        };
    };
    readonly artifacts: readonly AgenticHealthArtifact[];
}
/**
 * One optional warning proposed by an evaluator.
 *
 * At most 50 judgments are accepted. `check` must use the `agentic.` namespace,
 * cannot be the reserved `agentic.review-completed` id, and is limited to 128
 * UTF-8 bytes. `reason` must be trimmed, within 2,000 UTF-8 bytes, and contain
 * no control or bidirectional-formatting characters. Lisa, rather than the
 * evaluator, stamps every accepted judgment as agentic and warn.
 */
export interface AgenticHealthJudgment {
    readonly check: string;
    readonly reason: string;
}
/** Closed evaluator response; unavailable and completed are the only states. */
export type AgenticHealthEvaluation = {
    readonly status: "completed";
    readonly judgments: readonly AgenticHealthJudgment[];
} | {
    readonly status: "unavailable";
};
/**
 * Injected harness-neutral judgment boundary.
 *
 * The callback is arbitrary JavaScript, not a security sandbox. Lisa supplies
 * no filesystem capability, but consumers must still trust their evaluator.
 * Evaluators must honor the AbortSignal and release their own timers, streams,
 * and other resources when it aborts. Runtime output remains hostile-validated.
 */
export type AgenticHealthEvaluator = (request: AgenticHealthRequest, signal: AbortSignal) => Promise<AgenticHealthEvaluation>;
/** Explicit optional agentic-pass configuration. */
export interface AgenticHealthConfig {
    readonly enabled: boolean;
    readonly evaluator?: AgenticHealthEvaluator;
    readonly timeoutMs?: number;
}
/** Deterministic options plus the optional agentic pass. */
export interface HealthOptions extends DeterministicHealthOptions {
    readonly agentic?: AgenticHealthConfig;
}
/** Validate the evaluator's exact closed result union atomically. */
export declare function validateAgenticHealthEvaluation(candidate: unknown): AgenticHealthEvaluation;
/**
 * Run deterministic health and, only when explicitly enabled and available,
 * compose one bounded optional agentic review. Collection never persists.
 */
export declare function runHealth(projectPath: string, options?: HealthOptions): Promise<HealthResult>;
//# sourceMappingURL=agentic.d.ts.map