import { ToolResult } from '../types/index.js';
export interface QRGenerateOptions {
    size?: number;
    margin?: number;
    errorCorrection?: 'L' | 'M' | 'Q' | 'H';
    format?: 'png' | 'svg' | 'ascii' | 'utf8';
    darkColor?: string;
    lightColor?: string;
    outputPath?: string;
}
export interface QRDecodeResult {
    text: string;
    type?: 'url' | 'text' | 'vcard' | 'wifi' | 'email' | 'phone' | 'sms' | 'geo';
    parsed?: unknown;
}
/**
 * QR Code Tool for generating and reading QR codes
 * Generates QR codes in multiple formats including ASCII for terminal display
 */
export declare class QRTool {
    private readonly outputDir;
    private vfs;
    /**
     * Generate a QR code
     */
    generate(data: string, options?: QRGenerateOptions): Promise<ToolResult>;
    /**
     * Generate QR matrix using simple implementation
     * Note: This is a simplified version - for production use qrcode library
     */
    private generateQRMatrix;
    /**
     * Add finder pattern at position
     */
    private addFinderPattern;
    /**
     * Check if module is in reserved area
     */
    private isReservedModule;
    /**
     * Convert matrix to ASCII art
     */
    private matrixToAscii;
    /**
     * Generate SVG QR code
     */
    private generateSVG;
    /**
     * Decode QR code from image
     * Requires external tool (zbarimg) or library
     */
    decode(imagePath: string): Promise<ToolResult>;
    /**
     * Parse QR content and detect type
     */
    private parseQRContent;
    /**
     * Parse vCard content
     */
    private parseVCard;
    /**
     * Generate WiFi QR code
     */
    generateWiFi(ssid: string, password: string, type?: 'WPA' | 'WEP' | 'nopass', options?: QRGenerateOptions): Promise<ToolResult>;
    /**
     * Generate vCard QR code
     */
    generateVCard(contact: {
        firstName: string;
        lastName: string;
        phone?: string;
        email?: string;
        organization?: string;
        title?: string;
        url?: string;
    }, options?: QRGenerateOptions): Promise<ToolResult>;
    /**
     * Generate URL QR code
     */
    generateURL(url: string, options?: QRGenerateOptions): Promise<ToolResult>;
    /**
     * List generated QR codes
     */
    listQRCodes(): Promise<ToolResult>;
    /**
     * Format file size
     */
    private formatSize;
}
