import { DocumentJob, BatchJob } from './DocumentProcessor.js'; import { PaginatedResponse, ProcessingStatus, OutputFormat, DocumentConversionResponse } from '../types/api.js'; /** * Job Management Service * * Handles job storage, retrieval, and lifecycle management * for document conversion operations. */ export declare class JobManager { private jobs; private batches; /** * Get job by ID */ getJob(jobId: string): Promise; /** * Get batch by ID */ getBatch(batchId: string): Promise; /** * Store job */ storeJob(job: DocumentJob): Promise; /** * Store batch */ storeBatch(batch: BatchJob): Promise; /** * Cancel a job */ cancelJob(jobId: string): Promise<{ success: boolean; message: string; statusCode?: number; errorCode?: string; }>; /** * List jobs with filtering and pagination */ listJobs(params: { page: number; limit: number; sort: string; order: 'asc' | 'desc'; filters: { status?: ProcessingStatus; fromDate?: Date; toDate?: Date; outputFormat?: OutputFormat; search?: string; }; }): Promise>; /** * Get conversion statistics */ getStatistics(params: { fromDate?: Date; toDate?: Date; groupBy: 'hour' | 'day' | 'week' | 'month'; }): Promise<{ totalJobs: number; successfulJobs: number; failedJobs: number; successRate: number; processingTime: { average: number; min: number; max: number; median: number; }; inputFormatBreakdown: Record; outputFormatBreakdown: Record; errorBreakdown: Record; generatedAt: Date; }>; /** * Retry a failed job */ retryJob(jobId: string, options?: any): Promise<{ success: boolean; message: string; statusCode?: number; errorCode?: string; job?: DocumentConversionResponse; }>; /** * Get file data for download */ getJobFile(jobId: string): Promise<{ content: Buffer; contentType: string; filename: string; size: number; }>; /** * Calculate median from array of numbers */ private calculateMedian; } //# sourceMappingURL=JobManager.d.ts.map