import type { AssetAuthoringCapability, AssetPublicationEnvelope, AssetPublicationTuple, CatalogDiagnostic, CatalogEntryV2, CatalogLifecycle, CatalogSubject, CookExecution, PackIndexEntry, ProducerContractResult, ProviderProvenance, ResourceRevision, SourceOverrideDescriptor } from '@forgeax/engine-types'; export declare function catalogProjectionFor(subject: CatalogSubject, execution: CookExecution, lifecycle: CatalogLifecycle): { readonly subject: CatalogSubject; readonly execution: CookExecution; readonly lifecycle: CatalogLifecycle; readonly operations: Readonly>; }; export declare function currentProjectionFor(subject: CatalogSubject, execution: CookExecution): { readonly projection: { readonly subject: CatalogSubject; readonly execution: CookExecution; readonly lifecycle: CatalogLifecycle; readonly operations: Readonly>; }; readonly subject: CatalogSubject; readonly execution: CookExecution; readonly lifecycle: CatalogLifecycle; readonly operations: Readonly>; }; export interface CatalogProducerMeta { readonly schemaVersion: string | number; readonly packageId?: string; readonly provenance?: ProviderProvenance; readonly revision?: ResourceRevision; readonly diagnostics?: readonly CatalogDiagnostic[]; readonly provider?: string; readonly importer?: string; readonly sourceOverrides?: Readonly>>>; readonly sourceOverrideDescriptors?: readonly SourceOverrideDescriptor[]; } export interface CatalogOutputDeclaration { readonly guid: string; readonly kind: string; readonly sourceKey?: string; readonly sourceIndex?: number; readonly relations?: PackIndexEntry['relations']; readonly authoring?: AssetAuthoringCapability; readonly refs?: readonly string[]; readonly name?: string; } /** Project producer declarations without interpreting a provider's kind vocabulary. */ export declare function projectExternalCatalogEntries(producer: CatalogProducerMeta, sourcePath: string, packageUrl: string, outputs: readonly CatalogOutputDeclaration[], nameFor?: (output: CatalogOutputDeclaration, index: number) => string | undefined): PackIndexEntry[]; /** Return the first declaration that would shadow an engine-owned Pack kind. */ export declare function findReservedAssetKindConflict(outputs: readonly Pick[]): Pick | undefined; /** A self-contained Pack row before package placement and runtime projection axes. */ export type PackageCatalogInput = Omit; /** Project self-contained Pack rows into the same Catalog contract as producer output. */ export declare function projectPackageCatalog(entries: readonly PackageCatalogInput[], packageUrl: string): PackIndexEntry[]; export interface CookedPackageProjection { readonly packageUrl: string; readonly revision: ResourceRevision; readonly refs: readonly string[]; readonly cookReceiptUrl?: string; readonly publication?: AssetPublicationEnvelope; } /** Project one complete cooked package; navigation facts stay in the Pack owner. */ export declare function projectCookedPackageEntry(entry: PackIndexEntry, projection: CookedPackageProjection): PackIndexEntry; export interface RuntimeCatalogRowInput extends AssetPublicationTuple { readonly guid: string; readonly kind: string; readonly packageUrl: string; readonly sourcePath?: string; readonly subject?: CatalogSubject; readonly execution?: CookExecution; readonly lifecycle?: CatalogLifecycle; readonly publication?: unknown; } /** Project one row; an array is accepted only to fail closed on double rows. */ export declare function projectRuntimeCatalogRow(input: RuntimeCatalogRowInput | readonly RuntimeCatalogRowInput[]): ProducerContractResult; //# sourceMappingURL=catalog-projection.d.ts.map