import { QuipApiClient } from './api-client'; import { QuipDocument, DocumentExport, Logger } from '../../types'; import { DocumentWithPath } from './document-discovery'; import { FormatConverterRegistry } from './format-converters'; import { FormatValidationResult } from '../../core/format-validator'; export interface ExportOptions { preferredFormat?: 'native' | 'html' | 'markdown'; fallbackToHtml: boolean; includeMetadata: boolean; outputDirectory?: string; formatSpecificOptions?: { markdown?: MarkdownOptions; }; datePrefixConfig?: { enabled: boolean; format: string; }; } export interface MarkdownOptions { imageHandling: 'inline' | 'separate' | 'skip'; preserveComments: boolean; frontMatter: boolean; } export interface ExportResult { success: boolean; documentId: string; title: string; format: string; filePath?: string; content?: Buffer; error?: string; metadata?: QuipDocument; } export interface BatchExportResult { successful: ExportResult[]; failed: ExportResult[]; totalProcessed: number; totalErrors: number; } export declare class DocumentExporter { private readonly apiClient; private readonly logger; private readonly formatConverters; private readonly formatValidator; constructor(apiClient: QuipApiClient, logger: Logger, formatConverters?: FormatConverterRegistry); validateExportOptions(options: ExportOptions, documentTypes?: string[]): Promise; getFormatCapabilities(): Promise; isFormatAvailable(format: string): Promise; getDependencyInstructions(format: string): string[]; exportDocument(document: QuipDocument, options?: ExportOptions): Promise; exportDocuments(documents: DocumentWithPath[], options?: ExportOptions, onProgress?: (current: number, total: number, currentDocument: string) => void): Promise; createDocumentExport(result: ExportResult, folderPath: string): DocumentExport | null; private determineExportFormat; private determineNativeFormat; private exportInFormat; private exportAsDocx; private exportAsXlsx; private exportAsHtml; private exportAsMarkdown; getFileExtension(format: string, documentType?: string): string; getMimeType(format: string, documentType?: string): string; sanitizeFilename(filename: string): string; generateFilename(document: QuipDocument, format: string): string; isValidExportFormat(documentType: string, format: string): boolean; private sleep; } //# sourceMappingURL=document-exporter.d.ts.map