import { ToolResult } from '../types/index.js';
export interface ImageInput {
    type: 'base64' | 'url' | 'file';
    data: string;
    mediaType?: 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';
}
export interface ProcessedImage {
    base64: string;
    mediaType: string;
    source: string;
}
/**
 * Image Tool for processing and preparing images for vision models
 */
export declare class ImageTool {
    private readonly supportedExtensions;
    private readonly maxFileSizeMB;
    private vfs;
    /**
     * Process an image from various sources
     */
    processImage(input: ImageInput): Promise<ToolResult>;
    /**
     * Process an image from a file path
     */
    private processFileImage;
    /**
     * Process a base64 encoded image
     */
    private processBase64Image;
    /**
     * Process an image from a URL
     */
    private processUrlImage;
    /**
     * Get media type from file extension
     */
    private getMediaType;
    /**
     * List images in a directory
     */
    listImages(dirPath?: string): Promise<ToolResult>;
    /**
     * Format image for CodeBuddy API message content
     */
    formatForApi(processed: ProcessedImage): object;
    /**
     * Check if a file is an image
     */
    isImage(filePath: string): boolean;
}
