import { ExecutableConfig, ExecutableManifest, ProductConfig, RootManifest } from './types.js'; /** * Shared product-manifest composers. * * `composeRoot` and `composeExecutable` build the exact wire shape written as * dotNS text records (RFC paritytech/triangle-js-sdks #0001). They are used * from two call sites that must stay byte-identical: the real publish path * ([`publishManifest`](./publish.ts), which passes the real icon/executable * CIDs) and the pre-upload size preflight ([`pessimisticSizePreflight`](./byte-budget.ts), * which substitutes `PLACEHOLDER_CID` for the root icon before the real CID * is known). Kept here, in a module neither of those two imports from each * other, so publish.ts (which already imports byte-budget.ts) can't form an * import cycle with it. */ declare function composeRoot(config: ProductConfig, iconCid: string): RootManifest; declare function composeExecutable(exec: ExecutableConfig): ExecutableManifest; export { composeExecutable, composeRoot };