import { ToolResult } from '../types/index.js';
export interface DocumentContent {
    text: string;
    type: 'docx' | 'xlsx' | 'pptx' | 'odt' | 'ods' | 'odp' | 'rtf' | 'csv';
    metadata: DocumentMetadata;
    sheets?: SheetContent[];
    slides?: SlideContent[];
}
export interface DocumentMetadata {
    title?: string;
    author?: string;
    creator?: string;
    created?: string;
    modified?: string;
    lastModifiedBy?: string;
    pageCount?: number;
    wordCount?: number;
    sheetCount?: number;
    slideCount?: number;
}
export interface SheetContent {
    name: string;
    data: string[][];
    rowCount: number;
    colCount: number;
}
export interface SlideContent {
    number: number;
    title?: string;
    text: string;
}
/**
 * Document Tool for reading Office documents (DOCX, XLSX, PPTX) and other formats
 * Uses ZIP-based extraction for Office Open XML formats
 */
export declare class DocumentTool {
    private readonly supportedFormats;
    private readonly maxFileSizeMB;
    private vfs;
    /**
     * Read document content
     */
    readDocument(filePath: string): Promise<ToolResult>;
    /**
     * Read DOCX file
     */
    private readDocx;
    /**
     * Read XLSX file with async processing to avoid blocking the event loop
     */
    private readXlsx;
    /**
     * Parse shared strings XML asynchronously
     */
    private parseSharedStringsAsync;
    /**
     * Extract sheet names from workbook XML
     */
    private extractSheetNames;
    /**
     * Yield to the event loop to prevent blocking
     */
    private yieldToEventLoop;
    /**
     * Parse Excel sheet XML
     */
    private parseSheetXml;
    /**
     * Convert Excel column string to index (A=0, B=1, ..., AA=26, etc.)
     */
    private colStringToIndex;
    /**
     * Read PPTX file
     */
    private readPptx;
    /**
     * Read CSV/TSV file
     */
    private readCsv;
    /**
     * Parse a single CSV line handling quotes
     */
    private parseCsvLine;
    /**
     * Read RTF file
     */
    private readRtf;
    /**
     * Extract text from XML content
     */
    private extractTextFromXml;
    /**
     * Extract DOCX metadata
     */
    private extractDocxMetadata;
    /**
     * Format output for display
     */
    private formatOutput;
    /**
     * List supported documents in directory
     */
    listDocuments(dirPath?: string): Promise<ToolResult>;
    /**
     * Check if file is a supported document
     */
    isDocument(filePath: string): boolean;
    /**
     * Format file size
     */
    private formatSize;
}
