import type { Readable, Writable } from "node:stream";
import { type ClassifiedRun, type CoverageEvent, type KernelStores } from "../../../core/src/classify/classifier.js";
import { ratchet } from "../../../core/src/ratchet/ratchet.js";
import { type CapabilityProfile } from "../../../core/src/sdk/capability.js";
import type { Detector } from "../../../core/src/sdk/detector.js";
import { type AdapterSurface } from "../../../universal/src/runner.js";
import { type InvariantumConfig } from "../config.js";
import { type ExitStatus, type RunConditions } from "../exit-status.js";
import type { VerifyOptions } from "../parse-args.js";
import type { ReportGenerationInput } from "./report.js";
export type IoContext = {
    stdout: Writable;
    stderr: Writable;
    stdin?: Readable;
    env: Record<string, string | undefined>;
    cwd: string;
};
export declare const PRIMITIVE_CATALOG: Record<string, {
    capability: string;
    detectors: Detector<unknown, unknown>[];
}>;
export declare class SurfaceLoadError extends Error {
    readonly module: string;
    readonly exportName: string;
    readonly reason: string;
    readonly cause?: unknown;
    constructor(ref: {
        module: string;
        export: string;
    }, reason: string, cause?: unknown);
}
export declare function loadSurface(ref: {
    module: string;
    export: string;
}, configPath: string | undefined, cwd: string, cacheKey?: string): Promise<AdapterSurface>;
export declare function loadSurfaces(config: InvariantumConfig, configPath: string | undefined, cwd: string, cacheKey?: string): Promise<AdapterSurface[]>;
export declare function resolveDetectors(config: InvariantumConfig): Detector<unknown, unknown>[];
export declare function buildCapabilityProfile(config: InvariantumConfig): CapabilityProfile;
export declare function coverageEventForContractAuthority(error: string, seed: string, capabilities: CapabilityProfile): CoverageEvent;
export declare function deriveRunConditions(run: ClassifiedRun, overrides?: Partial<RunConditions>): RunConditions;
export declare function createRunId(input: {
    seed: string;
    configPath?: string | undefined;
    scopes: string[];
}): string;
export declare function createReadonlyStores(now: string): Promise<{
    stores: KernelStores;
    root: string;
}>;
export declare function createVerificationStores(root: string, now: string): Promise<{
    stores: KernelStores;
    authorityErrors: string[];
}>;
export declare function canonicalStoreRoot(config: InvariantumConfig, cwd: string): string;
export declare function compareBaseline(root: string, run: ClassifiedRun, stores: KernelStores, allowMissingBaseline: boolean): Promise<{
    comparison: ReturnType<typeof ratchet>;
    missing: boolean;
}>;
export declare function formatLoadError(error: unknown): string;
export declare function runVerify(options: VerifyOptions, io: IoContext, reportWriter?: (input: ReportGenerationInput, io: IoContext) => Promise<void>, allowMissingBaseline?: boolean): Promise<ExitStatus>;
//# sourceMappingURL=verify.d.ts.map