import { type Embedder, type RagVectorStoreAdapter, type RagVectorStoreKind, type RagVectorStoreMetric } from './rag-embedding.js'; export type RagAdapterPersistence = 'ephemeral' | 'durable'; export type RagVectorStoreConformanceStatus = 'passed' | 'failed' | 'skipped'; export type RagVectorStoreConformanceProfileVersion = 'kern-rag-vector-store-conformance-v1'; export interface RagVectorStoreAdapterCapabilities { readonly upsert: boolean; readonly upsertMany: boolean; readonly search: boolean; readonly snapshot: boolean; readonly clear: boolean; } export interface RagVectorStoreAdapterManifest { readonly name: string; readonly kind: 'vectorStore'; readonly adapterKind: RagVectorStoreKind; readonly version: string; readonly metrics: readonly RagVectorStoreMetric[]; readonly maxDimensions: number; readonly persistence: RagAdapterPersistence; readonly capabilities: RagVectorStoreAdapterCapabilities; } export interface RagVectorStoreManifestValidationResult { readonly valid: boolean; readonly errors: readonly string[]; } export interface RagVectorStoreAdapterContract { readonly manifest: RagVectorStoreAdapterManifest; readonly createStore: (context: RagVectorStoreConformanceContext) => RagVectorStoreAdapter; } export interface RagVectorStoreConformanceProfile { readonly version: RagVectorStoreConformanceProfileVersion; readonly kind: 'vectorStore'; readonly requiredCapabilities: readonly (keyof RagVectorStoreAdapterCapabilities)[]; readonly supportedAdapterKinds: readonly RagVectorStoreKind[]; readonly supportedMetrics: readonly RagVectorStoreMetric[]; readonly cases: readonly string[]; } export interface RagVectorStoreConformanceCaseResult { readonly name: string; readonly status: RagVectorStoreConformanceStatus; readonly message?: string; } export interface RagVectorStoreConformanceReport { readonly manifest: RagVectorStoreAdapterManifest; readonly passed: boolean; readonly cases: readonly RagVectorStoreConformanceCaseResult[]; readonly summary: { readonly passed: number; readonly failed: number; readonly skipped: number; }; } export interface RagVectorStoreConformanceContext { readonly fingerprint: string; readonly dims: number; readonly namespace: string; } export interface RagVectorStoreConformanceOptions { readonly manifest: RagVectorStoreAdapterManifest; readonly createStore: (context: RagVectorStoreConformanceContext) => RagVectorStoreAdapter; readonly embedder?: Embedder; /** Optional namespace seed for programmatic callers that need reproducible backing file names. */ readonly runId?: string; } export declare const RAG_VECTOR_STORE_CONFORMANCE_PROFILE: RagVectorStoreConformanceProfile; export declare const BUILTIN_RAG_VECTOR_STORE_MANIFESTS: readonly RagVectorStoreAdapterManifest[]; export declare function builtinRagVectorStoreManifest(name: string): RagVectorStoreAdapterManifest | undefined; export declare function createInMemoryRagVectorStoreForConformance(context: RagVectorStoreConformanceContext): RagVectorStoreAdapter; export declare function validateRagVectorStoreAdapterManifest(manifest: unknown): RagVectorStoreManifestValidationResult; export declare function defineRagVectorStoreAdapterContract(contract: RagVectorStoreAdapterContract): RagVectorStoreAdapterContract; export declare function runRagVectorStoreConformance(options: RagVectorStoreConformanceOptions): RagVectorStoreConformanceReport;