import * as Effect from "effect/Effect"; import type { KnowledgeProjectedConcept } from "./knowledge-projection.js"; import { type KnowledgeRevision } from "./concept-ref.js"; export interface KnowledgeCorpusSource { readonly bundle: string; readonly relativePath: string; /** Filesystem observation metadata is explicitly excluded from the fingerprint. */ readonly modifiedAt?: number; } export interface CapturedKnowledgeSource extends KnowledgeCorpusSource { readonly bytes: Uint8Array; readonly sourceRevision: KnowledgeRevision; } export interface CapturedKnowledgeCorpus { readonly fingerprint: KnowledgeRevision; readonly sources: ReadonlyArray; } declare const KnowledgeCorpusChangingError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "KnowledgeCorpusChangingError"; } & Readonly; export declare class KnowledgeCorpusChangingError extends KnowledgeCorpusChangingError_base<{ readonly attempts: number; }> { } export declare const computeKnowledgeSourceRevision: (bytes: Uint8Array) => KnowledgeRevision; export declare const computeKnowledgeCorpusFingerprint: (sources: ReadonlyArray) => KnowledgeRevision; export declare const computeKnowledgeProjectionRevision: (concept: KnowledgeProjectedConcept) => KnowledgeRevision; /** * Capture one internally consistent corpus. Every source is read twice; a * changing source retries the complete capture and never yields a mixed view. */ export declare const captureKnowledgeCorpus: (sources: ReadonlyArray, readSource: (source: KnowledgeCorpusSource) => Effect.Effect, options?: { readonly maxAttempts?: number; }) => Effect.Effect; export {}; //# sourceMappingURL=knowledge-revision.d.ts.map