/** Normalised crop rectangle (each field in the closed interval [0, 1]). */ export interface CropRect { x: number; y: number; width: number; height: number; } export declare const clamp01: (v: number) => number; /** * Clamp a rectangle so it stays within the unit box and never shrinks below * `minSize` on either axis. */ export declare function clampRect(rect: CropRect, minSize: number): CropRect; /** * Coerce a rectangle's height to honour a pixel aspect ratio * (`width_px / height_px`), anchored at its top-inline-start corner. `boxW` / * `boxH` are the displayed image box's pixel dimensions. A non-positive aspect * or unmeasured box returns the rectangle unchanged. */ export declare function applyAspect(rect: CropRect, aspect: number | undefined, boxW: number, boxH: number): CropRect; /** A sensible centred default — an 80% box, aspect-coerced when one is set. */ export declare function defaultCrop(aspect: number | undefined, boxW: number, boxH: number): CropRect; /** Round each field to whole percentages — used for the live-region readout. */ export declare function toPercent(rect: CropRect): { x: number; y: number; width: number; height: number; }; //# sourceMappingURL=crop-geometry.d.ts.map