import { ToolResult } from '../types/index.js';
export interface ScreenshotOptions {
    fullscreen?: boolean;
    region?: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    window?: string;
    delay?: number;
    format?: 'png' | 'jpg';
    quality?: number;
    outputPath?: string;
}
export interface ScreenshotResult {
    path: string;
    width?: number;
    height?: number;
    size: string;
    timestamp: string;
}
/**
 * Screenshot Tool for capturing screen, windows, and regions
 * Works on Linux (with scrot/gnome-screenshot), macOS (screencapture), and Windows (PowerShell)
 */
export declare class ScreenshotTool {
    private readonly defaultOutputDir;
    private vfs;
    /**
     * Capture a screenshot
     */
    capture(options?: ScreenshotOptions): Promise<ToolResult>;
    /**
     * Capture screenshot on macOS using screencapture
     */
    private captureMacOS;
    /**
     * Capture screenshot on Linux using scrot or gnome-screenshot
     */
    private captureLinux;
    /**
     * Capture screenshot on Windows using PowerShell
     */
    private captureWindows;
    /**
     * Capture active window
     */
    captureWindow(windowTitle?: string): Promise<ToolResult>;
    /**
     * Capture a region
     */
    captureRegion(x: number, y: number, width: number, height: number): Promise<ToolResult>;
    /**
     * Capture fullscreen with delay
     */
    captureDelayed(seconds: number): Promise<ToolResult>;
    /**
     * List saved screenshots
     */
    listScreenshots(): Promise<ToolResult>;
    /**
     * Read a screenshot and convert to base64
     */
    toBase64(filePath: string): Promise<ToolResult>;
    /**
     * Delete a screenshot
     */
    deleteScreenshot(filePath: string): Promise<ToolResult>;
    /**
     * Clear all screenshots
     */
    clearScreenshots(): Promise<ToolResult>;
    /**
     * Format file size
     */
    private formatSize;
    /**
     * Format result for display
     */
    private formatResult;
}
