import { Area, MediaSize, Point, Size } from './types';
/**
 * Compute the dimension of the crop area based on media size,
 * aspect ratio and optionally rotation
 */
export declare function getCropSize(mediaWidth: number, mediaHeight: number, containerWidth: number, containerHeight: number, aspect: number, rotation?: number): Size;
/**
 * Compute media zoom.
 * We fit the media into the container with "max-width: 100%; max-height: 100%;"
 */
export declare function getMediaZoom(mediaSize: MediaSize): number;
/**
 * Ensure a new media position stays in the crop area.
 */
export declare function restrictPosition(position: Point, mediaSize: Size, cropSize: Size, zoom: number, rotation?: number): Point;
export declare function getDistanceBetweenPoints(pointA: Point, pointB: Point): number;
export declare function getRotationBetweenPoints(pointA: Point, pointB: Point): number;
/**
 * Compute the output cropped area of the media in percentages and pixels.
 * x/y are the top-left coordinates on the src media
 */
export declare function computeCroppedArea(crop: Point, mediaSize: MediaSize, cropSize: Size, aspect: number, zoom: number, rotation?: number, restrictPosition?: boolean): {
    croppedAreaPercentages: Area;
    croppedAreaPixels: Area;
};
/**
 * Compute crop and zoom from the croppedAreaPercentages.
 */
export declare function getInitialCropFromCroppedAreaPercentages(croppedAreaPercentages: Area, mediaSize: MediaSize, rotation: number, cropSize: Size, minZoom: number, maxZoom: number): {
    crop: {
        x: number;
        y: number;
    };
    zoom: number;
};
/**
 * Compute crop and zoom from the croppedAreaPixels
 */
export declare function getInitialCropFromCroppedAreaPixels(croppedAreaPixels: Area, mediaSize: MediaSize, rotation: number | undefined, cropSize: Size, minZoom: number, maxZoom: number): {
    crop: Point;
    zoom: number;
};
/**
 * Return the point that is the center of point a and b
 */
export declare function getCenter(a: Point, b: Point): Point;
export declare function getRadianAngle(degreeValue: number): number;
/**
 * Returns the new bounding area of a rotated rectangle.
 */
export declare function rotateSize(width: number, height: number, rotation: number): Size;
/**
 * Clamp value between min and max
 */
export declare function clamp(value: number, min: number, max: number): number;
/**
 * Combine multiple class names into a single string.
 */
export declare function classNames(...args: (boolean | string | number | undefined | void | null)[]): string;
//# sourceMappingURL=helpers.d.ts.map