import type { CapabilityModule } from '../../runtime/agentHost.js';
export type ToolPluginTarget = 'node' | 'browser' | 'cloud' | 'universal';
export interface ToolPluginContext {
    workingDir: string;
    env: Record<string, string | undefined>;
}
export type ToolPluginResult = CapabilityModule | CapabilityModule[] | null | undefined | Promise<CapabilityModule | CapabilityModule[] | null | undefined>;
export interface ToolPlugin {
    id: string;
    description?: string;
    targets: ToolPluginTarget[];
    create(context: ToolPluginContext): ToolPluginResult;
}
interface InstantiateOptions {
    filter?: (plugin: ToolPlugin) => boolean;
}
export declare function registerToolPlugin(plugin: ToolPlugin): void;
export declare function unregisterToolPlugin(id: string): void;
export declare function listRegisteredToolPlugins(): ToolPlugin[];
export declare function instantiateToolPlugins(target: ToolPluginTarget, context: ToolPluginContext, options?: InstantiateOptions): Promise<CapabilityModule[]>;
export {};
//# sourceMappingURL=registry.d.ts.map