export interface ToolDefinition {
    name: string;
    description: string;
    inputSchema: {
        type: 'object';
        properties: Record<string, any>;
        required?: string[];
    };
}
export declare abstract class BaseTool {
    abstract getDefinitions(): ToolDefinition[];
    abstract canHandle(toolName: string): boolean;
    abstract execute(toolName: string, args: unknown): Promise<any>;
    protected createSchema(properties: Record<string, any>, required?: string[]): any;
    protected formatError(error: Error, toolName: string): any;
}
