import type { FileFragment } from '../providers/types.js'; import type { Catalog } from './types.js'; /** * The combined effect of a package selection: token values to inject, extra * files to overlay, dependencies to merge, and guidance to print. */ export interface AddonResult { preload: string; config: string; files: FileFragment[]; deps: Record; devDeps: Record; instructions: string[]; env: string[]; /** whether any selected addon contributes code snippets */ hasSnippets: boolean; } /** * Aggregates the effects of a validated package selection. Pure - performs no * filesystem work. * * @param {string[]} selection - validated package ids * @param {Catalog} catalog * @return {AddonResult} */ export declare function resolveAddons(selection: string[], catalog: Catalog): AddonResult; /** * Merges addon dependencies into a scaffolded service's package.json. The * package.json must already be valid JSON (tokens compiled). * * @param {string} servicePath * @param {Record} deps * @param {Record} devDeps */ export declare function mergeDependencies(servicePath: string, deps: Record, devDeps: Record): void;