import { PositionRecord as PositionRecordType } from '../../customTypings/index.d';
/**
* @desc Represent a position comprised of X and Y coordinates
* avoid reading directly, use the Size module api
* Do not mutate it manually, use the Size module api
* @example
Create a Position
* const position = Position.create(100, 200);
* @example Read from Position
* const x = Size.getXCoordinate(position);
* @example transform a Position
* const position = Size.setXCoordinate(100, position);
* @typedef {Immutable.Record} PositionRecord
*/
/**
* given a parameter check if it is a PositionRecord
* @param {*} position
* @return {bool}
*/
export declare function isPosition(position: PositionRecordType): boolean;
/**
* given a parameter check if it is a PositionRecord, if not throw in developpement
* @param {*} position
* @return {bool}
*/
export declare function isPositionElseThrow(position: PositionRecordType): boolean;
/**
* given a PositionRecord return X coordinate
* @param {PositionRecord} position
* @return {number}
*/
export declare function getXCoordinate(position: PositionRecordType): any;
/**
* given a number and a PositionRecord return updated PositionRecord
* @function
* @param {number} x
* @param {PositionRecord} position
* @return {PositionRecord}
*/
export declare const setXCoordinate: import("lodash").CurriedFunction2;
/**
* given a PositionRecord return the Y coordinate
* @param {PositionRecord} position
* @return {number}
*/
export declare function getYCoordinate(position: PositionRecordType): any;
/**
* given a number and a PositionRecord return updated PositionRecord
* @param {number} y
* @param {PositionRecord} position
* @return {PositionRecord}
*/
export declare const setYCoordinate: import("lodash").CurriedFunction2;
/**
* given x and y coordinate return a PositionRecord
* @param {number} x
* @param {number} y
* @return {PositionRecord}
*/
export declare const create: import("lodash").CurriedFunction2;