import { MigrationConfig, MigrationState, MigrationReport, QuipDocument, ProgressInfo } from '../types'; import { ExportConfig } from './export-types'; import { BatchProcessingOptions, ProcessingResult, MigrationSession } from './types'; export interface IMigrationOrchestrator { startMigration(config: MigrationConfig, documents: QuipDocument[]): Promise; resumeMigration(sessionId: string): Promise; pauseMigration(sessionId: string): Promise; getMigrationState(sessionId: string): Promise; generateReport(sessionId: string): Promise; } export interface IBatchProcessor { processBatch(documents: QuipDocument[], options: BatchProcessingOptions): Promise; setProgressCallback(callback: (progress: ProgressInfo) => void): void; } export interface IStateManager { saveState(sessionId: string, state: MigrationState): Promise; loadState(sessionId: string): Promise; deleteState(sessionId: string): Promise; listSessions(): Promise; saveSession(session: MigrationSession): Promise; loadSession(sessionId: string): Promise; updateSession(sessionId: string, updates: Partial): Promise; createSession(sessionId: string, config: MigrationConfig, documents: QuipDocument[]): Promise; } export interface IErrorHandler { handleError(error: Error, context: Record): Promise; categorizeError(error: Error): 'auth' | 'api' | 'file' | 'permission' | 'network' | 'unknown'; shouldRetry(error: Error, retryCount: number): boolean; } export interface IProgressTracker { updateProgress(current: number, total: number, currentItem?: string): void; setProgressCallback(callback: (progress: number) => void): void; getProgress(): { current: number; total: number; percentage: number; }; } export interface IConfigValidator { validateConfig(config: MigrationConfig): Promise<{ isValid: boolean; errors: string[]; }>; validateAuthentication(): Promise; } export interface IExportConfigValidator { validateConfig(config: ExportConfig): Promise<{ isValid: boolean; errors: string[]; }>; validateAuthentication(): Promise; } export interface ILogger { error(message: string, meta?: any): void; warn(message: string, meta?: any): void; info(message: string, meta?: any): void; debug(message: string, meta?: any): void; setLevel(level: 'ERROR' | 'WARN' | 'INFO' | 'DEBUG'): void; } //# sourceMappingURL=interfaces.d.ts.map