import type { ImageDimensionsLike } from './imageProcessing';
import type { TransformRect } from './types';
export type TransformRectLike = readonly [number, number, number, number];
export type TransformRectBoundsError = 'INVALID_RECT_STRUCTURE' | 'MISSING_DIMENSIONS' | 'RECT_OUT_OF_BOUNDS';
export type TransformRectBoundsResult = Readonly<{
    ok: true;
    rect: TransformRect;
}> | Readonly<{
    ok: false;
    error: TransformRectBoundsError;
}>;
export declare const DEFAULT_TRANSFORM_RECT_BOUNDS_EPSILON = 0.5;
export declare function normalizeTransformRect(rect: TransformRectLike): TransformRect;
export declare function isValidTransformRectStructure(rect: TransformRectLike | undefined): rect is TransformRectLike;
export declare function validateTransformRectWithinDimensions(rect: TransformRectLike | undefined, dimensions: ImageDimensionsLike, options?: Readonly<{
    allowUnknownDimensions?: boolean;
    epsilon?: number;
}>): TransformRectBoundsResult;
