document-scanner-vue
Version:
Vue 3 Document Scanner with OpenCV.js - Mobile optimized with camera/gallery support
33 lines • 1.7 kB
TypeScript
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