import { Tool } from './tool.js'; import { Resource } from './resource.js'; import { Prompt } from './prompt.js'; import { ClassConstructor } from './types.js'; import { ToolOptions, ResourceOptions, PromptOptions, type WidgetRouteMetadata } from './decorators.js'; /** * Controller instance type */ interface ControllerInstance { [key: string]: unknown; } /** * Controller class type (using ClassConstructor for compatibility) */ type ControllerClass = ClassConstructor; /** * Build a Tool instance from a decorated method */ export declare function buildTool(controllerInstance: ControllerInstance, methodName: string, options: ToolOptions, widgetMeta?: WidgetRouteMetadata, isInitial?: boolean): Tool; /** * Build all tools from a controller */ export declare function buildTools(controllerInstance: ControllerInstance): Tool[]; /** * Build a Resource instance from a decorated method */ export declare function buildResource(controllerInstance: ControllerInstance, methodName: string, options: ResourceOptions): Resource; /** * Build all resources from a controller */ export declare function buildResources(controllerInstance: ControllerInstance): Resource[]; /** * Build a Prompt instance from a decorated method */ export declare function buildPrompt(controllerInstance: ControllerInstance, methodName: string, options: PromptOptions): Prompt; /** * Build all prompts from a controller */ export declare function buildPrompts(controllerInstance: ControllerInstance): Prompt[]; /** * Build all tools, resources, and prompts from a controller * Supports dependency injection */ export declare function buildController(controller: ControllerClass): { tools: Tool[]; resources: Resource[]; prompts: Prompt[]; }; export {}; //# sourceMappingURL=builders.d.ts.map