/**
 * Coordinates of a point in an image with the top-left corner being the reference point. The point is a [column, row] array.
 */
export type ArrayPoint = [column: number, row: number];
/**
 * Coordinates of a point in an image with the top-left corner being the reference point.
 */
export interface Point {
    /**
     * Point row.
     *
     */
    row: number;
    /**
     * Point column.
     *
     */
    column: number;
}
/**
 * Calculates a new point that is the difference p1 - p2.
 * @param p1 - First point.
 * @param p2 - Second Point.
 * @returns Difference between the two points.
 */
export declare function difference(p1: Point, p2: Point): Point;
/**
 * Calculates a new point that is the sum p1 + p2.
 * @param p1 - First point.
 * @param p2 - Second Point.
 * @returns Sum of the two points.
 */
export declare function sum(p1: Point, p2: Point): Point;
/**
 * Normalize a point (more precisely the vector from the origin to the point).
 * @param point - Point to normalize.
 * @returns - Normalized point.
 */
export declare function normalize(point: Point): Point;
/**
 * Rotate an array of points by an angle in radians.
 * The rotation is clockwise and the reference is (0,0).
 * @param radians - Angle in radians.
 * @param points - Source points.
 * @returns The points after rotation.
 */
export declare function rotate(radians: number, points: readonly Point[]): Point[];
/**
 * Dot product of 2 points assuming vectors starting from (0,0).
 * @param p1 - First point.
 * @param p2 - Second point.
 * @returns Dot product between the two vectors.
 */
export declare function dot(p1: Point, p2: Point): number;
/**
 * Round the coordinates of the point.
 * @param point - The point.
 * @returns Rounded coordinates of the point.
 */
export declare function round(point: Point): Point;
/**
 * Sort an array of points by column then row.
 * @param points - Array of points to sort.
 * @returns Sorted points.
 */
export declare function sortByColumnRow(points: Point[]): Point[];
//# sourceMappingURL=points.d.ts.map