import { type ComputedRef, type DeepReadonly, type Ref } from 'vue';
import type { Page, Point } from '@/types';
export interface ImageOperationsOptions {
    pageManager: {
        pages: ComputedRef<DeepReadonly<Page[]>>;
        currentPage: ComputedRef<Page | null>;
        updatePageData: (pageId: string, data: any) => void;
        getPageById: (pageId: string) => Page | undefined;
    };
    isOpenCVReady: Ref<boolean>;
    performPerspectiveTransform: (imageDataURL: string, corners: ReadonlyArray<Point>, outputFormat?: any) => Promise<{
        imageDataURL: string;
        processedWidth: number;
        processedHeight: number;
    } | null>;
    rotateImageData: (imageDataURL: string, angle: number) => Promise<string>;
    transformCornersForRotationIncrement: (corners: ReadonlyArray<Point> | null, rotationIncrement: number, originalWidth: number, originalHeight: number) => ReadonlyArray<Point> | null;
}
export declare function useImageOperations(options: ImageOperationsOptions): {
    isLoading: Ref<boolean, boolean>;
    processingStatus: Ref<string, string>;
    processingProgress: Ref<number, number>;
    currentDisplayPage: ComputedRef<Page | null>;
    rotatedImageDataURLByRotation: ComputedRef<string | null>;
    imageSrcForPreviewComponent: ComputedRef<string | null>;
    processActivePage: (outputFormat?: any) => Promise<void>;
    resetCornersForCurrentPage: () => void;
    rotateCurrentPage: (direction: "left" | "right") => Promise<void>;
    applyPerspectiveTransformAndGetDataURL: (pageId: string) => Promise<string | null>;
    clearPageCache: (pageId: string) => void;
    clearAllCache: () => void;
};
//# sourceMappingURL=useImageOperations.d.ts.map