import { AspectRatio, Coordinates, CropperTransitions, Diff, Intersections, MoveDirections, Point, PositionDirection, PositionRestrictions, RawAspectRatio, ResizeDirections, Size, SizeRestrictions } from "../types/index";
declare function diff(firstObject: Point, secondObject: Point): Diff;
declare function getCenter(object: Coordinates): Point;
declare function getOppositeSide(side: PositionDirection): PositionDirection;
declare function sizeDistance(a: Size, b: Size): number;
declare function applyDirections(coordinates: Coordinates, directions: ResizeDirections): Coordinates;
declare function inverseMove(directions: MoveDirections): MoveDirections;
declare function applyMove(object: Coordinates, move: MoveDirections): Coordinates;
declare function coordinatesToPositionRestrictions(coordinates: Coordinates): {
    left: number;
    top: number;
    right: number;
    bottom: number;
};
declare function applyScale(object: Coordinates, factor: number, center?: Point, progress?: number): Coordinates;
declare function applyScale(object: Size, factor: number): Size;
declare function ratio(object: Size): number;
declare function maxScale(size: Size, restrictions: SizeRestrictions): number;
declare function minScale(size: Size, restrictions: SizeRestrictions): number;
declare function getBrokenRatio(currentAspectRatio: number, aspectRatio: AspectRatio): number | undefined;
declare function fitToSizeRestrictions(coordinates: Size, sizeRestrictions: SizeRestrictions): number;
declare function getIntersections(object: Coordinates, positionRestrictions: PositionRestrictions): Intersections;
declare function resizeToSizeRestrictions(coordinates: Coordinates, sizeRestrictions: SizeRestrictions): Coordinates;
declare function resizeToSizeRestrictions(coordinates: Size, sizeRestrictions: SizeRestrictions): Size;
declare function rotateSize(size: Size, angle: number): {
    width: number;
    height: number;
};
declare function rotatePoint(point: Point, angle: number, anchor?: Point): {
    left: number;
    top: number;
};
declare function positionToSizeRestrictions(positionRestrictions: PositionRestrictions): SizeRestrictions;
declare function mergePositionRestrictions(a: PositionRestrictions, b: PositionRestrictions): import("../types/index").Limits;
declare function fitToPositionRestrictions(coordinates: Coordinates, positionRestrictions: PositionRestrictions): {
    left: number;
    top: number;
};
declare function moveToPositionRestrictions(coordinates: Coordinates, positionRestrictions: PositionRestrictions): Coordinates;
declare function aspectRatioIntersection(main?: AspectRatio, subset?: AspectRatio): AspectRatio | undefined;
declare function createAspectRatio(aspectRatio?: RawAspectRatio): AspectRatio;
declare function getTransitionStyle(transitions: CropperTransitions | undefined): string;
declare function isConsistentSize(size: Size, restrictions: Partial<SizeRestrictions>): boolean;
declare function isConsistentPosition(coordinates: Coordinates, restrictions: PositionRestrictions): boolean;
declare function getCloserSize(candidates: Size[], reference: Size, sizeRestrictions: Partial<SizeRestrictions> | ((size: Size) => Partial<SizeRestrictions>), aspectRatio: RawAspectRatio | ((size: Size) => RawAspectRatio)): Size | null;
export { diff, getCenter, getOppositeSide, sizeDistance, applyDirections, inverseMove, applyMove, coordinatesToPositionRestrictions, applyScale, ratio, maxScale, minScale, getBrokenRatio, fitToSizeRestrictions, getIntersections, resizeToSizeRestrictions, rotateSize, rotatePoint, positionToSizeRestrictions, mergePositionRestrictions, fitToPositionRestrictions, moveToPositionRestrictions, aspectRatioIntersection, createAspectRatio, getTransitionStyle, isConsistentSize, isConsistentPosition, getCloserSize };
