import { Tool } from '../../domain/interfaces.js';
import { CallToolResult } from '../../domain/types.js';
import { ContentAnnotations, ContentItem } from '../../domain/mcp-types.js';
import { ToolAnnotations } from '../../domain/mcp-types.js';
/**
 * Base class for all tools
 */
export declare abstract class BaseTool implements Tool {
    name: string;
    description: string;
    inputSchema: {
        type: "object";
        properties?: Record<string, any>;
        required?: string[];
    };
    annotations?: ToolAnnotations;
    constructor(name: string, description: string, inputSchema: any, annotations?: ToolAnnotations);
    abstract execute(args: any): Promise<CallToolResult>;
    /**
     * Format tool result
     */
    protected formatResult(text: string, isError?: boolean, annotations?: ContentAnnotations): CallToolResult;
    /**
     * Format result with multiple content items
     */
    protected formatMultiContentResult(contentItems: ContentItem[], isError?: boolean): CallToolResult;
    /**
     * Format error with appropriate annotations
     */
    protected formatError(errorMessage: string, userFriendlyMessage?: string): CallToolResult;
    /**
     * Create progress content for long operations
     */
    protected createProgressContent(current: number, total: number, message: string): ContentItem;
}
