import { ToolResult } from '../types/index.js';
export interface ArchiveInfo {
    path: string;
    type: 'zip' | 'tar' | 'tar.gz' | 'tar.bz2' | 'tar.xz' | '7z' | 'rar';
    size: string;
    fileCount?: number;
    files?: ArchiveEntry[];
}
export interface ArchiveEntry {
    path: string;
    size: number;
    compressed?: number;
    isDirectory: boolean;
    modified?: string;
}
export interface ExtractOptions {
    outputDir?: string;
    files?: string[];
    overwrite?: boolean;
    preservePaths?: boolean;
    /**
     * Archive password. SECURITY NOTE: For maximum security, set the
     * ARCHIVE_PASSWORD environment variable instead of passing this option.
     * When passed as option, the password may briefly be visible in process listings.
     */
    password?: string;
}
export interface CreateOptions {
    format?: 'zip' | 'tar' | 'tar.gz' | 'tar.bz2' | 'tar.xz';
    compressionLevel?: number;
    excludePatterns?: string[];
    /**
     * Archive password. SECURITY NOTE: For maximum security, set the
     * ARCHIVE_PASSWORD environment variable instead of passing this option.
     */
    password?: string;
    outputPath?: string;
}
/**
 * Archive Tool for working with compressed archives (ZIP, TAR, etc.)
 * Supports listing, extracting, and creating archives
 */
export declare class ArchiveTool {
    private readonly supportedFormats;
    private readonly outputDir;
    private vfs;
    /**
     * List contents of an archive
     */
    list(archivePath: string): Promise<ToolResult>;
    /**
     * Extract archive contents
     */
    extract(archivePath: string, options?: ExtractOptions): Promise<ToolResult>;
    /**
     * Create an archive
     */
    create(sourcePaths: string[], options?: CreateOptions): Promise<ToolResult>;
    /**
     * Get archive type from file extension
     */
    private getArchiveType;
    /**
     * List ZIP contents
     */
    private listZip;
    /**
     * List TAR contents
     */
    private listTar;
    /**
     * List 7z contents
     */
    private list7z;
    /**
     * List RAR contents
     */
    private listRar;
    /**
     * Extract ZIP archive
     */
    private extractZip;
    /**
     * Extract TAR archive
     */
    private extractTar;
    /**
     * Extract 7z archive
     */
    private extract7z;
    /**
     * Extract RAR archive
     */
    private extractRar;
    /**
     * Create ZIP archive
     */
    private createZip;
    /**
     * Create TAR archive
     */
    private createTar;
    /**
     * Get files recursively from directory
     */
    private getFilesRecursive;
    /**
     * Format archive info for display
     */
    private formatArchiveInfo;
    /**
     * Format file size
     */
    private formatSize;
    /**
     * List archives in directory
     */
    listArchives(dirPath?: string): Promise<ToolResult>;
}
