import type { AddOnCompiled, FrameworkDefinition } from './types.js' export type ManifestFrameworkDefinition = Omit< FrameworkDefinition, 'addOns' > & { addOns: Array } export type ManifestAddOnMetadata = Omit< AddOnCompiled, 'files' | 'deletedFiles' | 'packageTemplate' | 'readme' | 'readmeIsEjs' > export type ManifestFrameworkMetadata = Omit< ManifestFrameworkDefinition, 'base' | 'addOns' > & { addOns: Array } export type ManifestCatalog = { frameworks: Array } export type ManifestTemplateContext = Record export type ManifestTemplateRenderer = ( template: string, context: ManifestTemplateContext, ) => string | undefined export type ManifestTemplateModule = { renderManifestTemplate: ManifestTemplateRenderer hasManifestTemplate?: (template: string) => boolean } export type ManifestFrameworkChunk = ManifestTemplateModule & { id: string base: Record } export type ManifestAddOnChunk = ManifestTemplateModule & AddOnCompiled export type WorkerManifestLoader = { loadCatalog: () => Promise loadFramework: (frameworkId: string) => Promise loadAddOn: ( frameworkId: string, addOnId: string, ) => Promise } export type WorkerFrameworkManifestModule = ManifestTemplateModule & { framework: { id: string base: Record } } export type WorkerAddOnManifestModule = ManifestTemplateModule & { addOn: AddOnCompiled } export type WorkerManifestModuleLoader = { loadCatalog: () => Promise loadFramework: ( frameworkId: string, ) => Promise loadAddOn: ( frameworkId: string, addOnId: string, ) => Promise }