import { ToolDefinition, ToolUseBlock, ToolResultBlock } from '../types/toolChat';
type Handler<P = any, R = any> = (input: P) => Promise<R>;
export declare class ToolExecutor {
    private registry;
    register<P, R>(definition: ToolDefinition<P>, fn: Handler<P, R>): void;
    run(blocks: ToolUseBlock[]): Promise<ToolResultBlock[]>;
    listDefinitions(): ToolDefinition[];
}
export {};
