import { Request, Response, NextFunction } from 'express';
/**
 * Document Processing API Controller
 *
 * Implements the TypeSpec-defined document processing endpoints
 * with full CRUD operations for document conversion jobs.
 */
export declare class DocumentController {
    private static documentProcessor;
    private static jobManager;
    /**
     * Helper method to convert DocumentJob to DocumentConversionResponse
     */
    private static convertJobToResponse;
    /**
     * Convert a single document
     * POST /api/v1/documents/convert
     */
    static convertDocument(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * Convert multiple documents in batch
     * POST /api/v1/documents/batch/convert
     */
    static batchConvert(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * Get job status
     * GET /api/v1/documents/jobs/:jobId
     */
    static getJobStatus(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * Download converted document
     * GET /api/v1/documents/download/:jobId
     */
    static downloadDocument(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * Cancel conversion job
     * DELETE /api/v1/documents/jobs/:jobId
     */
    static cancelJob(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * List conversion jobs
     * GET /api/v1/documents/jobs
     */
    static listJobs(req: Request, res: Response, next: NextFunction): Promise<void>;
    /**
     * Get conversion statistics
     * GET /api/v1/documents/stats
     */
    static getStats(req: Request, res: Response, next: NextFunction): Promise<void>;
    /**
     * Retry failed job
     * POST /api/v1/documents/jobs/:jobId/retry
     */
    static retryJob(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
    /**
     * Get supported format combinations
     * GET /api/v1/documents/formats
     */
    static getSupportedFormats(req: Request, res: Response, next: NextFunction): Promise<void>;
    /**
     * Get batch status
     * GET /api/v1/documents/batch/:batchId
     */
    static getBatchStatus(req: Request, res: Response, next: NextFunction): Promise<Response<any, Record<string, any>> | undefined>;
}
//# sourceMappingURL=DocumentController.d.ts.map