/** * Privacy-safe image artifact capture for normalized tool hooks. * * Image bytes are content-addressed under `.harnery/images/`. The canonical V3 * ledger receives an `artifact.observed` record after the source tool event is * durable, so the web feed can recover provenance without retaining command, * output, intent, or absolute paths. */ import type { EventV3 } from "../../events/v3/contract.js"; import type { ParsedPayload } from "../adapter/parse.js"; export interface CapturedImageArtifact { hash: string; ext: string; bytes: number; role: "viewed" | "produced"; workspace_path?: string; } /** Copy every qualifying image referenced by one tool hook into the blob store. */ export declare function captureImages(coordRoot: string, eventType: "tool.requested" | "tool.completed", payload: ParsedPayload | null): CapturedImageArtifact[]; /** * Emit content-addressed image references as canonical V3 artifact events. * Each observation uses a one-event producer boot, which preserves independent * producer sequence continuity while the ledger writer serializes appends. */ export declare function recordImageArtifactsV3(coordRoot: string, sourceEvent: EventV3, artifacts: readonly CapturedImageArtifact[], expectedGenesisId?: `gex_${string}`): void; export declare function buildImageArtifactEventV3(sourceEvent: EventV3, artifact: CapturedImageArtifact): EventV3; /** Prune the bounded blob store by age and total size, oldest first. */ export declare function imageJanitor(coordRoot: string): void; //# sourceMappingURL=image-capture.d.ts.map