/** * Element Type Resolver - Shared utility for resolving missing element_type * fields by searching the portfolio across all element managers. * * Used by any composite element type (ensembles, and future types like * teams, workflows, pipelines) that references other elements. * * Issue #466: Replaces the silent '|| skill' default with portfolio lookup. */ /** * Interface for managers passed to resolveElementTypes(). * Each manager is optional — only available managers are searched. * * PersonaManager uses findPersona() (synchronous) instead of the standard * findByName() — both are supported. */ export interface ElementManagersForResolution { skillManager?: { findByName(name: string): Promise; }; templateManager?: { findByName(name: string): Promise; }; agentManager?: { findByName(name: string): Promise; }; memoryManager?: { findByName(name: string): Promise; }; personaManager?: { findPersona?(name: string): any; }; ensembleManager?: { findByName(name: string): Promise; }; } /** * Structured result from resolveElementTypes(). * Callers can inspect ambiguous/notFound to surface warnings to the user. */ export interface ResolveElementTypesResult { /** Elements successfully resolved or already typed */ resolved: any[]; /** Elements found in multiple types — user must provide element_type */ ambiguous: Array<{ element_name: string; found_in: string[]; }>; /** Element names not found in any manager */ notFound: string[]; } /** * Resolve missing element_type fields by searching the portfolio. * * For each element without an element_type (or legacy type field), searches * all provided managers to find which type the element belongs to. * * Resolution outcomes: * - Found in exactly 1 type → element_type is set automatically * - Found in multiple types → element is skipped with ambiguity warning * - Not found in any type → element is skipped with not-found warning * - Already has element_type → passed through unchanged * * @param elements - Raw element array (may have missing element_type) * @param managers - Available element managers for portfolio lookup * @returns Structured result with resolved elements and disambiguation info */ export declare function resolveElementTypes(elements: any[], managers: ElementManagersForResolution): Promise; //# sourceMappingURL=elementTypeResolver.d.ts.map