import type { ArtifactDescriptor, CookReceipt, ImportedArtifactBody } from '@forgeax/engine-types'; export type PackageArtifactBody = ImportedArtifactBody; export interface PackageProductAsset { readonly guid: string; readonly kind: string; readonly name?: string; readonly payload: Readonly>; readonly refs: readonly string[]; readonly artifacts: Readonly>; } export interface PackageProduct { readonly assets: readonly PackageProductAsset[]; readonly receipts: readonly CookReceipt[]; readonly diagnostics: readonly unknown[]; readonly sourceRevision: string; readonly sourceKey?: string; } export interface PackageDocumentArtifact extends ArtifactDescriptor { readonly byteLength: number; readonly integrity: { readonly algorithm: 'sha256'; readonly digest: string; }; } export interface PackageDocumentAsset { readonly guid: string; readonly kind: string; readonly name?: string; readonly payload: Record; readonly refs: readonly string[]; readonly artifacts: Readonly>; } export interface PackageDocument { readonly schemaVersion: '2.0.0'; readonly kind: 'internal-text-package'; readonly assets: readonly PackageDocumentAsset[]; } export interface PackageFinalizePolicy { readonly base: string; readonly packagePath: string; readonly artifactPath: (guid: string, localKey: string) => string; readonly sink?: (path: string, bytes: Uint8Array) => void | Promise; } export interface FinalizedPackageProduct { readonly pack: PackageDocument; readonly packageUrl: string; readonly digest: string; readonly receipts: readonly CookReceipt[]; readonly diagnostics: readonly unknown[]; readonly sourceRevision: string; readonly sourceKey?: string; } interface PackageTransportSource { readonly assets: readonly PackageProduct['assets'][number][]; readonly receipts?: readonly CookReceipt[]; readonly diagnostics?: readonly unknown[]; readonly sourceKey?: string; } export interface PackageFinalizerError { readonly code: 'duplicate-guid' | 'missing-source-revision' | 'missing-receipt' | 'invalid-artifact'; readonly expected: string; readonly hint: string; readonly detail: { readonly guid?: string; readonly key?: string; }; } export type PackageFinalizeResult = { readonly ok: true; readonly value: FinalizedPackageProduct; } | { readonly ok: false; readonly error: PackageFinalizerError; }; /** Finalize a complete producer product without owning producer-specific policy. */ export declare function finalizePackageProduct(product: PackageProduct, policy: PackageFinalizePolicy): Promise; /** Finalize a product-shaped source with the deterministic transport revision. */ export declare function finalizePackageTransportSource(input: PackageTransportSource, policy: PackageFinalizePolicy): Promise<{ pack: PackageDocument; packageUrl: string; artifacts: { bytes: Uint8Array; assetCodec?: import("@forgeax/engine-types").AssetCodec; delivery?: "stream"; guid: string; localKey: string; path: string; mediaType: string; }[]; digest: string; receipts: readonly CookReceipt[]; sourceRevision: string; }>; export declare function packageTransportRevision(value: unknown): string; export {}; //# sourceMappingURL=package-finalizer.d.ts.map