import { type ImportRunResult } from './importRunner.js';
/** What the pass returns (and prints as stdout JSON in CLI mode). */
export interface IntegrityPassResult {
    passed: boolean;
    imported: ImportRunResult['imported'];
    abortedPreImport: ImportRunResult['abortedPreImport'];
    report: ImportRunResult['report'];
    fetchSeconds: number;
    importSeconds: number;
}
/** The minimal source contract the pass consumes — lets tests inject a fake. */
export interface RawCorpusSource {
    prepare(): Promise<void>;
    readRawClusters(): Record<string, unknown>[];
    readRawFeedback(): Record<string, unknown>[];
}
/**
 * Run the AS-IS import of `source`'s corpus into a persisted shadow under `shadowDir`,
 * then the integrity gate over the readback. The shadow dir is removed afterward unless
 * `keepShadow`. Pure w.r.t. canonical state — the shadow is a verification target only.
 */
export declare function runIntegrityPass(source: RawCorpusSource, shadowDir: string, opts?: {
    keepShadow?: boolean;
    now?: () => number;
}): Promise<IntegrityPassResult>;
//# sourceMappingURL=integrityPassRunner.d.ts.map