/** * Utility functions to strip verbose/visualization-only fields from meta objects * for creating minimal runtime-only versions. * * Verbose fields are those used for UI/visualization but not needed at runtime: * - tags, description, summary, errors * - title, displayName * - wires, isDirectFunction, services * - stepName (in workflow nodes) * * Note: middleware and permissions are NOT verbose - they're needed at runtime * for resolving tag middleware and permissions in function-runner.ts * * IMPORTANT: We only strip verbose fields at the direct meta entry level. * For most meta types (HTTP, Queue, Scheduler, etc.), entries have pikkuFuncId. * For workflow graphs, we strip at the root level AND from nodes. * We do NOT strip from deeply nested structures like CLI options where 'description' is required. */ /** * Strip verbose fields from a meta object. * * Handles different meta structure patterns: * 1. Single workflow graph: { name, pikkuFuncId, nodes: {...}, description, tags } * -> Strips description, tags at root; strips stepName from each node * 2. Record of meta entries: { "entryName": { pikkuFuncId, description, tags, ... } } * -> Strips description, tags from each entry (one level deep only) * 3. CLI meta and others with complex nesting: preserved as-is except for pikkuFuncId entries * * Also strips addon namespace prefixes from pikkuFuncId values where packageName is present. */ export declare function stripVerboseFields(obj: T): T; export declare function reattachFunctionServices>(minimalMeta: T, fullMeta: T): T; /** * Check if an object has any verbose fields that would be stripped */ export declare function hasVerboseFields(obj: unknown): boolean; /** * Write both minimal and verbose meta files * Only writes verbose file if it differs from minimal * * @returns Object with paths that were written */ export declare function writeMetaFiles(writeFile: (path: string, content: string) => Promise, basePath: string, meta: unknown): Promise<{ minimal: string; verbose?: string; }>;