import { fabric } from "fabric"; import type { Bounds, CanvasSize } from "../types"; /** * Calculate responsive canvas size based on viewport */ export declare function calculateCanvasSize(viewportWidth: number, viewportHeight: number, options?: { mobileBreakpoint?: number; tabletBreakpoint?: number; mobileMargin?: number; tabletMargin?: number; desktopMargin?: number; mobileAspectRatio?: number; defaultAspectRatio?: number; minWidth?: number; minHeight?: number; }): CanvasSize; /** * Get bounds of an image on canvas */ export declare function getImageBounds(image: fabric.Image | null): Bounds | null; /** * Calculate scale to fit image within bounds with padding */ export declare function calculateFitScale(imageWidth: number, imageHeight: number, canvasWidth: number, canvasHeight: number, padding?: number): number; /** * Calculate center position for an object on canvas */ export declare function calculateCenterPosition(objectWidth: number, objectHeight: number, canvasWidth: number, canvasHeight: number): { x: number; y: number; }; /** * Lock an image object to prevent user manipulation */ export declare function lockImage(image: fabric.Image): void; /** * Create a locked original image from URL */ export declare function loadImageToCanvas(canvas: fabric.Canvas, imageUrl: string, padding?: number): Promise; /** * Clamp zoom level within bounds */ export declare function clampZoom(zoom: number, minZoom?: number, maxZoom?: number): number; /** * Animate zoom to target level */ export declare function animateZoomTo(canvas: fabric.Canvas, targetZoom: number, duration?: number, minZoom?: number, maxZoom?: number): void; /** * Get viewport center point in canvas coordinates */ export declare function getViewportCenter(canvas: fabric.Canvas): fabric.Point; /** * Calculate intersection between two rectangles */ export declare function calculateIntersection(rect1: Bounds, rect2: Bounds): Bounds | null; /** * Convert canvas coordinates to image pixel coordinates */ export declare function canvasToImageCoords(canvasX: number, canvasY: number, image: fabric.Image): { x: number; y: number; }; /** * Convert image pixel coordinates to canvas coordinates */ export declare function imageToCanvasCoords(imageX: number, imageY: number, image: fabric.Image): { x: number; y: number; }; /** * Export canvas region to data URL */ export declare function exportCanvasRegion(canvas: fabric.Canvas, bounds: Bounds, format?: string, quality?: number): string; /** * Convert data URL to Blob */ export declare function dataURLToBlob(dataURL: string): Promise;