import type { PdfPageOrganizationDiagnostic, PdfPageOrganizationErrorCode, PdfPageOrganizationExportOperation, PdfPageOrganizationJob, PdfPageOrganizationMutation, PdfPageOrganizationResult } from './pdf-page-organization'; export interface PdfPageOrganizationExport { fileName: string; pageCount: number; pdf: Blob; } export interface PdfPageOrganizationControllerError { code: PdfPageOrganizationErrorCode; message: string; } export interface PdfPageOrganizationControllerState { available: boolean; busy: boolean; canRedo: boolean; canUndo: boolean; diagnostics: readonly PdfPageOrganizationDiagnostic[]; error: PdfPageOrganizationControllerError | null; revision: number; } export interface PdfPageOrganizationController { state: PdfPageOrganizationControllerState; dismissError: () => void; exportPages: (operation: PdfPageOrganizationExportOperation) => Promise; mutate: (mutation: PdfPageOrganizationMutation, importSource?: Blob) => Promise; redo: () => void; undo: () => void; } interface UsePdfPageOrganizationOptions { enabled: boolean; fileName: string; onExport?: (files: readonly PdfPageOrganizationExport[]) => boolean | Promise; readCurrentSource: () => Promise; replaceSource: (source: Blob) => void; resetKey?: string; } type RunPdfPageOrganizationJob = (job: PdfPageOrganizationJob, signal?: AbortSignal) => Promise; export declare function usePdfPageOrganization(options: UsePdfPageOrganizationOptions, runJob?: RunPdfPageOrganizationJob): PdfPageOrganizationController; export {};