import { type WorkspaceFs } from "@oscharko-dev/keiko-workspace";
import { type QualityIntelligenceEvidenceManifest, type QualityIntelligenceAtomFingerprintRow, type QualityIntelligenceSourceFingerprintRow } from "./manifestSchema.js";
import { type QualityIntelligenceRedactionOptions } from "./redaction.js";
export declare const QI_SUBDIR = "qi";
export interface QualityIntelligenceLocalStore {
    readonly record: (manifest: QualityIntelligenceEvidenceManifest) => string;
    readonly load: (runId: string) => QualityIntelligenceEvidenceManifest | undefined;
    readonly list: () => readonly string[];
    readonly location: (runId: string) => string;
    readonly delete: (runId: string) => boolean;
}
export declare function createInMemoryQualityIntelligenceLocalStore(): QualityIntelligenceLocalStore;
export interface QualityIntelligenceNodeStoreOptions {
    readonly fs?: WorkspaceFs;
    readonly randomSuffix?: () => string;
}
export declare function createNodeQualityIntelligenceLocalStore(evidenceDir: string, options?: QualityIntelligenceNodeStoreOptions): QualityIntelligenceLocalStore;
export interface QualityIntelligenceRecordInput {
    readonly runId: string;
    readonly planAt: string;
    readonly completedAt: string | undefined;
    readonly status: QualityIntelligenceEvidenceManifest["status"];
    readonly policyProfileIds: readonly string[];
    readonly retentionPolicyId: string;
    readonly modelGatewayCallCount: number;
    readonly totals: QualityIntelligenceEvidenceManifest["totals"];
    readonly findings: QualityIntelligenceEvidenceManifest["findings"];
    readonly exports: QualityIntelligenceEvidenceManifest["exports"];
    readonly evidenceRefs: QualityIntelligenceEvidenceManifest["evidenceRefs"];
    readonly provenanceRefs: QualityIntelligenceEvidenceManifest["provenanceRefs"];
    /** Optional coverage matrix (per-atom status, refs only). Added in #738. */
    readonly coverageMatrix?: QualityIntelligenceEvidenceManifest["coverageMatrix"];
    /** Optional run quality score — percent of judged candidates rated "strong" [0-100]; null when judge was skipped. Added in #736. */
    readonly qualityScore?: QualityIntelligenceEvidenceManifest["qualityScore"];
    /** Optional per-envelope content fingerprints for drift detection (Epic #735). */
    readonly sourceFingerprints?: readonly QualityIntelligenceSourceFingerprintRow[];
    /** Optional per-atom content fingerprints for atom-aware drift detection (#798/#799). */
    readonly atomFingerprints?: readonly QualityIntelligenceAtomFingerprintRow[];
    /** Optional model id that generated the candidates (Epic #761). */
    readonly modelId?: string;
    /** Optional redaction-safe request parameter scalars (Epic #761). */
    readonly modelParameters?: Record<string, unknown>;
    /** Optional seed used for deterministic sampling (Epic #761). */
    readonly seedUsed?: number | null;
}
export interface QualityIntelligenceRecordOptions {
    readonly store?: QualityIntelligenceLocalStore | undefined;
    readonly evidenceDir?: string | undefined;
    readonly redaction?: QualityIntelligenceRedactionOptions | undefined;
}
export interface QualityIntelligenceRecordResult {
    readonly manifest: QualityIntelligenceEvidenceManifest;
    readonly location: string;
}
export declare function recordQualityIntelligenceRun(input: QualityIntelligenceRecordInput, options?: QualityIntelligenceRecordOptions): QualityIntelligenceRecordResult;
export interface QualityIntelligenceLoadOptions {
    readonly store?: QualityIntelligenceLocalStore | undefined;
    readonly evidenceDir?: string | undefined;
}
export declare function loadQualityIntelligenceRun(runId: string, options?: QualityIntelligenceLoadOptions): QualityIntelligenceEvidenceManifest | undefined;
export declare function listQualityIntelligenceRuns(options?: QualityIntelligenceLoadOptions): readonly string[];
//# sourceMappingURL=store.d.ts.map