import { ProgressState } from './progress-tracker'; import { AuditLogger, AuditEvent } from './audit-logger'; import { Logger } from '../types'; export interface MigrationReport { sessionId: string; startTime: Date; endTime: Date; duration: number; summary: MigrationSummary; documentMappings: DocumentMapping[]; errors: ErrorReport[]; statistics: MigrationStatistics; auditTrail: AuditEvent[]; } export interface MigrationSummary { totalDocuments: number; successfulExports: number; failedExports: number; skippedDocuments: number; successRate: number; averageProcessingTime: number; totalDataExported: number; exportSpeed: number; } export interface DocumentMapping { quipDocumentId: string; quipDocumentTitle: string; quipUrl: string; localPath: string; folderName?: string; status: 'success' | 'failed' | 'skipped'; error?: string; fileSize?: number; processingTime?: number; exportFormat?: string; } export interface ErrorReport { timestamp: Date; documentId?: string; documentTitle?: string; errorType: string; errorMessage: string; stackTrace?: string; context?: any; } export interface MigrationStatistics { documentsPerHour: number; averageFileSize: number; largestFile: { title: string; size: number; }; smallestFile: { title: string; size: number; }; formatDistribution: { [format: string]: number; }; errorDistribution: { [errorType: string]: number; }; processingTimeDistribution: { under1min: number; under5min: number; under15min: number; over15min: number; }; } export interface ReportOptions { includeAuditTrail: boolean; includeErrorDetails: boolean; includeStatistics: boolean; outputFormat: 'json' | 'html' | 'csv'; outputDirectory: string; } export declare class MigrationReporter { private logger; private auditLogger; private documentMappings; private errors; private startTime; private endTime?; constructor(logger: Logger, auditLogger: AuditLogger); recordDocumentStart(quipDocumentId: string, quipDocumentTitle: string, quipUrl: string, folderName?: string): void; recordDocumentSuccess(quipDocumentId: string, localPath: string, details: { fileSize?: number; processingTime?: number; exportFormat?: string; }): void; recordDocumentFailure(quipDocumentId: string, error: Error, context?: any): void; recordError(error: Error, documentId?: string, documentTitle?: string, context?: any): void; generateReport(finalState: ProgressState, options?: Partial): Promise; private generateSummary; private generateStatistics; private saveReport; private saveJsonReport; private saveHtmlReport; private saveCsvReport; private generateHtmlReport; private generateCsvReport; private formatDuration; private formatFileSize; } //# sourceMappingURL=migration-reporter.d.ts.map