import type { ToolRegistryContract } from '../../types/tool/index.js'; import type { LLMToolSchema, ToolAvailability, ToolDefinition } from '../../types/tool/index.js'; import type { ToolCatalogEntry, ToolCatalogSearchResult, ToolCatalogSnapshot, ToolLoadingMode, ToolSource, ToolsetDefinition, ToolsetPolicy } from '../../types/toolset/index.js'; export interface ToolCatalogSearchOptions { readonly loading?: readonly ToolLoadingMode[]; readonly limit?: number; } export interface ToolCatalogFromRegistryOptions { readonly source?: ToolSource; readonly toolset?: Omit & { readonly sourceId?: string; }; } export declare class ToolCatalog { private sources; private toolsets; private tools; registerSource(source: ToolSource): void; registerToolset(toolset: ToolsetDefinition): void; registerTool(tool: ToolCatalogEntry): void; getSource(id: string): ToolSource | undefined; getToolset(id: string): ToolsetDefinition | undefined; getTool(name: string): ToolCatalogEntry | undefined; listSources(): ToolSource[]; listToolsets(): ToolsetDefinition[]; listTools(): ToolCatalogEntry[]; snapshot(): ToolCatalogSnapshot; getToolsByLoading(loading: readonly ToolLoadingMode[]): ToolCatalogEntry[]; searchTools(query: string, options?: ToolCatalogSearchOptions): ToolCatalogSearchResult[]; toLLMTools(options?: { readonly loading?: readonly ToolLoadingMode[]; }): LLMToolSchema[]; } export declare function createToolCatalogFromRegistry(registry: ToolRegistryContract, options?: ToolCatalogFromRegistryOptions): ToolCatalog; export declare function toolDefinitionToCatalogEntry(definition: ToolDefinition, input: { readonly availability?: ToolAvailability; readonly sourceId: string; readonly toolsetId: string; readonly toolsetPolicy?: ToolsetPolicy; }): ToolCatalogEntry; export declare function loadingFromAvailability(availability: ToolAvailability): ToolLoadingMode; //# sourceMappingURL=catalog.d.ts.map