import type { AddOnCompiled, FrameworkDefinition } from './types.js'; export type ManifestFrameworkDefinition = Omit & { addOns: Array; }; export type ManifestAddOnMetadata = Omit; export type ManifestFrameworkMetadata = Omit & { 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; };