import { DocumentConversionRequest, BatchConversionRequest, ProcessingStatus, OutputFormat } from '../types/api.js';
/**
 * Document Processing Service
 *
 * Handles the core document conversion logic, integrating with
 * existing ADPA document processing capabilities and Adobe services.
 */
export declare class DocumentProcessor {
    private activeJobs;
    private activeBatches;
    /**
     * Start a single document conversion
     */
    startConversion(request: DocumentConversionRequest): Promise<DocumentJob>;
    /**
     * Start batch document conversion
     */
    startBatchConversion(request: BatchConversionRequest): Promise<BatchJob>;
    /**
     * Process a single document conversion
     */
    private processDocument;
    /**
     * Process batch conversion
     */
    private processBatch;
    /**
     * Perform the actual document conversion
     */
    private performConversion;
    /**
     * Get conversion job by ID
     */
    getJob(jobId: string): DocumentJob | undefined;
    /**
     * Get batch by ID
     */
    getBatch(batchId: string): BatchJob | undefined;
    /**
     * Utility method for delays
     */
    private delay;
}
/**
 * Individual document conversion job
 */
export declare class DocumentJob {
    id: string;
    request: DocumentConversionRequest;
    status: ProcessingStatus;
    progress: number;
    createdAt: Date;
    completedAt?: Date;
    estimatedCompletion?: Date;
    downloadUrl?: string;
    fileSize?: number;
    processingDuration?: number;
    originalFilename?: string;
    generatedFilename?: string;
    outputFormat: OutputFormat;
    error?: {
        code: string;
        message: string;
        retryable: boolean;
    };
    logs: string[];
    constructor(id: string, request: DocumentConversionRequest);
    updateStatus(status: ProcessingStatus): void;
    updateProgress(progress: number): void;
    complete(downloadUrl: string, fileSize: number, filename: string): void;
    fail(message: string, retryable?: boolean): void;
}
/**
 * Batch conversion job
 */
export declare class BatchJob {
    id: string;
    request: BatchConversionRequest;
    jobs: DocumentJob[];
    status: ProcessingStatus;
    progress: number;
    successCount: number;
    failureCount: number;
    createdAt: Date;
    completedAt?: Date;
    totalDuration?: number;
    constructor(id: string, request: BatchConversionRequest);
    updateStatus(status: ProcessingStatus): void;
    updateProgress(progress: number): void;
    complete(): void;
    fail(message: string): void;
}
//# sourceMappingURL=DocumentProcessor.d.ts.map