export { assertSafeSvg } from "./media-format.ts"; export declare const byteHash: (bytes: string | Uint8Array) => string; export type VisualCommission = { id: string; purpose: string; route: string; factIds: string[]; sourceAssetIds: string[]; role: "identity" | "proof" | "explanation" | "atmosphere" | "navigation" | "decoration"; medium: "customer" | "stock" | "authored-vector" | "generated-raster" | "video" | "text"; idea: string; composition: string; responsive: { desktop: string; mobile: string; minimumReadableSize: string; }; acceptance: string[]; fallback: string; forbiddenImplications: string[]; referenceRelationships: string[]; diagram?: { nodes: { id: string; label: string; factIds: string[]; }[]; edges: { from: string; to: string; label: string; factIds: string[]; }[]; description: string; }; }; export type VisualAssetBrief = { version: 1; policyHash: string; directionHash: string; businessHash: string; system: { palette: string; lightMaterial: string; geometry: string; stroke: string; captionVoice: string; motion: string; }; commissions: VisualCommission[]; }; export type AssetProduction = { version: 1; briefHash: string; decisions: { requestId: string; assetIds: string[]; outcome: "accepted" | "fallback"; reason: string; evidence: { path: string; sha256: string; level: "asset" | "crop" | "section" | "page"; viewport: string; observation: string; }[]; }[]; }; export declare function validateAssetBrief(root: string, brief: VisualAssetBrief): string[]; export declare function validateAssetProduction(root: string): string[]; /** Portable boundary: a host saves bytes and a real recipe; registration never asserts inspection. */ export declare function registerProducedAsset(root: string, opts: { preparationId: string; operationId: string; requestId: string; input: string; sourcePath: string; method: "generated-raster" | "authored-vector" | "derived"; tool: string; model?: string; prompt?: string; parents?: string[]; rights: string; forbiddenImplications: string[]; }): { id: string; path: string; sources: string[]; description: string; role: string; disposition: "use" | "retain" | "duplicate" | "exclude" | "unresolved"; reason: string; inspected: boolean; placements: string[]; duplicateOf?: string; origin?: "customer" | "stock" | "authored" | "unknown"; provenance?: { sourceUrl: string; termsUrl: string; credit: string; acquiredAt?: string; query?: string; originalSha256: string; }; production?: { method: "generated-raster" | "authored-vector" | "derived"; operationId: string; requestId: string; sourcePath: string; sourceSha256: string; prompt?: string; tool: string; model?: string; parents: { assetId: string; path: string; sha256: string; origin: "customer" | "stock" | "authored" | "unknown"; }[]; rights: string; forbiddenImplications: string[]; }; identity?: "logo" | "founder" | "team" | "product" | "premises" | "project" | "brand-art" | "none" | "uncertain"; identityEvidence?: string[]; identityDecision?: string; sha256?: string; stockId?: string; kind?: "image" | "video"; width?: number; height?: number; duration?: number; poster?: string; posterSha256?: string; inspection?: import("../stock/types.ts").MediaInspection; }; export declare function inspectProducedAsset(root: string, options: { preparationId: string; assetId: string; inspection: import("../stock/types.ts").MediaInspection; width: number; height: number; placements: string[]; reason: string; }): { id: string; path: string; sources: string[]; description: string; role: string; disposition: "use" | "retain" | "duplicate" | "exclude" | "unresolved"; reason: string; inspected: boolean; placements: string[]; duplicateOf?: string; origin?: "customer" | "stock" | "authored" | "unknown"; provenance?: { sourceUrl: string; termsUrl: string; credit: string; acquiredAt?: string; query?: string; originalSha256: string; }; production?: { method: "generated-raster" | "authored-vector" | "derived"; operationId: string; requestId: string; sourcePath: string; sourceSha256: string; prompt?: string; tool: string; model?: string; parents: { assetId: string; path: string; sha256: string; origin: "customer" | "stock" | "authored" | "unknown"; }[]; rights: string; forbiddenImplications: string[]; }; identity?: "logo" | "founder" | "team" | "product" | "premises" | "project" | "brand-art" | "none" | "uncertain"; identityEvidence?: string[]; identityDecision?: string; sha256?: string; stockId?: string; kind?: "image" | "video"; width?: number; height?: number; duration?: number; poster?: string; posterSha256?: string; inspection?: import("../stock/types.ts").MediaInspection; }; /** Retire a production-owned version from selection without changing its bytes, * inspection, lineage, or the upstream customer/stock audit. */ export declare function retireProducedAsset(root: string, options: { preparationId: string; operationId: string; assetId: string; reason: string; }): { id: string; path: string; sources: string[]; description: string; role: string; disposition: "use" | "retain" | "duplicate" | "exclude" | "unresolved"; reason: string; inspected: boolean; placements: string[]; duplicateOf?: string; origin?: "customer" | "stock" | "authored" | "unknown"; provenance?: { sourceUrl: string; termsUrl: string; credit: string; acquiredAt?: string; query?: string; originalSha256: string; }; production?: { method: "generated-raster" | "authored-vector" | "derived"; operationId: string; requestId: string; sourcePath: string; sourceSha256: string; prompt?: string; tool: string; model?: string; parents: { assetId: string; path: string; sha256: string; origin: "customer" | "stock" | "authored" | "unknown"; }[]; rights: string; forbiddenImplications: string[]; }; identity?: "logo" | "founder" | "team" | "product" | "premises" | "project" | "brand-art" | "none" | "uncertain"; identityEvidence?: string[]; identityDecision?: string; sha256?: string; stockId?: string; kind?: "image" | "video"; width?: number; height?: number; duration?: number; poster?: string; posterSha256?: string; inspection?: import("../stock/types.ts").MediaInspection; }; export declare function artDirectionContext(root: string): string;