import { ToolResult } from '../types/index.js';
export type ExportFormat = 'json' | 'markdown' | 'html' | 'txt' | 'pdf';
export interface Message {
    role: 'user' | 'assistant' | 'system';
    content: string;
    timestamp?: string;
    toolCalls?: unknown[];
}
export interface ConversationExport {
    title?: string;
    timestamp: string;
    messages: Message[];
    metadata?: {
        model?: string;
        totalTokens?: number;
        cost?: number;
        duration?: string;
    };
}
export interface ExportOptions {
    format: ExportFormat;
    outputPath?: string;
    includeMetadata?: boolean;
    includeTimestamps?: boolean;
    includeToolCalls?: boolean;
    theme?: 'light' | 'dark';
    title?: string;
}
/**
 * Export Tool for saving conversations and data in various formats
 * Supports JSON, Markdown, HTML, plain text, and PDF exports
 */
export declare class ExportTool {
    private readonly outputDir;
    private vfs;
    /**
     * Export conversation to specified format
     */
    exportConversation(messages: Message[], options: ExportOptions): Promise<ToolResult>;
    /**
     * Convert to JSON
     */
    private toJSON;
    /**
     * Convert to Markdown
     */
    private toMarkdown;
    /**
     * Convert to HTML
     */
    private toHTML;
    /**
     * Convert to plain text
     */
    private toPlainText;
    /**
     * Convert to PDF (requires external tool)
     */
    private toPDF;
    /**
     * Export data to CSV
     */
    exportToCSV(data: Array<Record<string, unknown>>, outputPath?: string): Promise<ToolResult>;
    /**
     * Export code snippets from conversation
     */
    exportCodeSnippets(messages: Message[], options?: {
        language?: string;
        outputDir?: string;
    }): Promise<ToolResult>;
    /**
     * List exported files
     */
    listExports(): Promise<ToolResult>;
    /**
     * Get all files recursively
     */
    private getAllFiles;
    /**
     * Get file extension for language
     */
    private getExtension;
    /**
     * Escape HTML special characters
     */
    private escapeHTML;
    /**
     * Format file size
     */
    private formatSize;
}
