/**
 * Loads the consumer's verifier module via the same jiti mechanism as the
 * config layer, so a TypeScript verifier needs no build step. Each call is
 * timeout-guarded and verdict-validated — it is arbitrary consumer code.
 *
 * @see docs/decisions/D0047-deterministic-symbol-preflight-lane-separation.md
 */
import { type ConsumerVerificationConfig, type ConsumerVerificationVerdict } from "../../_vendor/ailf-core/index.d.ts";
/** Per-response invocation context passed to the consumer's verifier. */
export interface VerifierContext {
    task: string;
    model: string;
    mode: string;
}
/** A loaded verifier — timeout-guarded and verdict-validated per call. */
export type Verifier = (output: string, context: VerifierContext) => Promise<ConsumerVerificationVerdict>;
/**
 * Load the module named by {@link ConsumerVerificationConfig.module}, wrapped
 * with per-call timeout + verdict validation. Throws on load failure or a
 * non-function default export — the caller decides how to degrade.
 */
export declare function loadVerifier(config: ConsumerVerificationConfig): Promise<Verifier>;
/**
 * Thrown when a verifier call exceeds its per-call timeout. A distinct
 * class (rather than message matching) lets `emitConsumerVerification` tell
 * timeouts apart from other verifier failures for its circuit breaker.
 */
export declare class VerifierTimeoutError extends Error {
    constructor(ms: number);
}
