import { PropFn } from '@zag-js/core'; import { Point, Size, Rect } from '@zag-js/types'; import { HandlePosition, ImageCropperSchema, FlipState, ImageCropperProps } from '../image-cropper.types.js'; declare const MIN_PINCH_DISTANCE = 1; declare const isAspectRatioEqual: (a: number, b: number) => boolean; declare const isLeftHandle: (v: HandlePosition) => boolean; declare const isRightHandle: (v: HandlePosition) => boolean; declare const isTopHandle: (v: HandlePosition) => boolean; declare const isBottomHandle: (v: HandlePosition) => boolean; declare const isCornerHandle: (v: HandlePosition) => boolean; declare const isHorizontalEdgeHandle: (v: HandlePosition) => boolean; declare const isVerticalEdgeHandle: (v: HandlePosition) => boolean; interface ResizeOptions { cropStart: Rect; handlePosition: HandlePosition; delta: { x: number; y: number; }; viewportRect: Size; minSize: Size; maxSize: Size; aspectRatio?: number | undefined; } declare function computeResizeCrop(options: ResizeOptions): Rect; declare function computeMoveCrop(cropStart: Rect, delta: { x: number; y: number; }, viewportRect: Size): Rect; interface ClampOffsetParams { zoom: number; rotation: number; viewportSize: Size; offset: Point; fixedCropArea?: boolean; crop?: Rect; } declare function clampOffset(params: ClampOffsetParams): Point; declare function computeKeyboardCrop(key: string, handlePosition: HandlePosition, step: number, crop: Rect, viewportRect: Size, minSize: Size, maxSize: Size): Rect; declare function getKeyboardMoveDelta(key: string, step: number): Point; declare const resolveCropAspectRatio: (shape: ImageCropperProps["cropShape"], aspectRatio: ImageCropperProps["aspectRatio"]) => number | undefined; declare const getCropSizeLimits: (prop: PropFn) => { minSize: { width: number; height: number; }; maxSize: { width: number; height: number; }; }; declare const getNudgeStep: (prop: PropFn, modifiers: { shiftKey?: boolean; ctrlKey?: boolean; metaKey?: boolean; }) => number; declare const computeDefaultCropDimensions: (viewportRect: Size, aspectRatio: number | undefined, fixedCropArea: boolean) => Size; declare const normalizeFlipState: (nextFlip: Partial | undefined, currentFlip: FlipState) => FlipState; declare const isEqualFlip: (a: FlipState, b: FlipState) => boolean; declare const isVisibleRect: (rect: Size) => boolean; declare const getCenterPoint: (rect: Rect) => Point; declare const getViewportCenter: (size: Size) => Point; declare const centerRect: (size: Size, viewport: Size) => Point; declare const getMidpoint: (p1: Point, p2: Point, offset?: Point) => Point; declare const getMaxBounds: (cropSize: Size, viewportSize: Size) => Point; declare const centerCropOnPoint: (cropSize: Size, center: Point, viewportSize: Size) => Point; declare const isSameSize: (a: Size, b: Size) => boolean; declare const ZERO_POINT: Point; declare const getTouchDistance: (p1: Point, p2: Point) => number; declare const clampPoint: (point: Point, min: Point, max: Point) => Point; declare const subtractPoints: (a: Point, b: Point) => Point; declare const addPoints: (a: Point, b: Point) => Point; declare const roundRect: (rect: Rect) => Rect; declare const scaleRect: (rect: Rect, scale: Point) => Rect; declare const getRotationTransform: (rotation: number) => { cos: number; sin: number; }; declare const computeAABB: (size: Size, zoom: number, cos: number, sin: number) => Size; declare const scaleSize: (size: Size, scale: number) => Size; export { MIN_PINCH_DISTANCE, ZERO_POINT, addPoints, centerCropOnPoint, centerRect, clampOffset, clampPoint, computeAABB, computeDefaultCropDimensions, computeKeyboardCrop, computeMoveCrop, computeResizeCrop, getCenterPoint, getCropSizeLimits, getKeyboardMoveDelta, getMaxBounds, getMidpoint, getNudgeStep, getRotationTransform, getTouchDistance, getViewportCenter, isAspectRatioEqual, isBottomHandle, isCornerHandle, isEqualFlip, isHorizontalEdgeHandle, isLeftHandle, isRightHandle, isSameSize, isTopHandle, isVerticalEdgeHandle, isVisibleRect, normalizeFlipState, resolveCropAspectRatio, roundRect, scaleRect, scaleSize, subtractPoints };