import { Matrix } from 'mathjs'; export declare type Margins = { left: number; right: number; top: number; bottom: number; }; export declare type Vec2 = number[]; export declare const isVec2: (x: any) => x is Vec2; export declare type Vec3 = number[]; export declare const isVec3: (x: any) => x is Vec3; export declare type Vec4 = number[]; export declare const isVec4: (x: any) => x is Vec4; export declare type Vec2H = number[]; export declare const isVec2H: (x: any) => x is Vec2H; export declare const homogenizeVec2: (v: Vec2) => Vec2H; export declare const Vec2HToVector: (v: Vec2H) => Matrix; export declare const pointIsInEllipse: (pt: Vec2 | Vec2H, center: Vec2 | Vec2H, xRadius: number, yRadius?: number) => boolean; export declare type RectangularRegion = { xmin: number; xmax: number; ymin: number; ymax: number; }; export declare const isRectangularRegion: (x: any) => x is RectangularRegion; export declare const rectsAreEqual: (a: RectangularRegion, b: RectangularRegion) => boolean; export declare const getWidth: (region: RectangularRegion) => number; export declare const getHeight: (region: RectangularRegion) => number; export declare const getCenter: (region: RectangularRegion) => Vec2; export declare const getRectFromPointPair: (pointA: Vec2, pointB: Vec2) => Vec4; export declare const pointSpanToRegion: (pointSpan: Vec4) => RectangularRegion; export declare const rectangularRegionsIntersect: (r1: RectangularRegion, r2: RectangularRegion) => boolean; export declare const pointInRect: (point: Vec2, rect: RectangularRegion) => boolean; export declare const getBoundingBoxForEllipse: (point: Vec2, xRadius: number, yRadius: number) => RectangularRegion; export declare type TransformationMatrix = Vec3[]; export declare const isTransformationMatrix: (x: any) => x is TransformationMatrix; export declare const toTransformationMatrix: (x: Matrix) => TransformationMatrix; export declare const getBasePixelTransformationMatrix: (pixelSpaceWidth: number, pixelSpaceHeight: number, newTargetSystem?: RectangularRegion) => { matrix: TransformationMatrix; coords: RectangularRegion; }; export declare const getTransformationMatrix: (newSystem: RectangularRegion, targetRangeInCurrentSystem: RectangularRegion) => TransformationMatrix; export declare const getInverseTransformationMatrix: (t: TransformationMatrix) => TransformationMatrix; export declare const getUpdatedTransformationMatrix: (newSystem: RectangularRegion, targetRangeInCurrentSystem: RectangularRegion, oldTransform: TransformationMatrix) => TransformationMatrix; export declare const transformXY: (tmatrix: TransformationMatrix, x: number, y: number) => Vec2H; export declare const transformPoint: (tmatrix: TransformationMatrix, point: Vec2H) => Vec2H; export declare const transformPoints: (tmatrix: TransformationMatrix, points: Vec2[]) => Vec2[]; export declare const transformRect: (tmatrix: TransformationMatrix, rect: RectangularRegion) => RectangularRegion; export declare const transformDistance: (tmatrix: TransformationMatrix, xyDist: Vec2) => Vec2; export declare const isNumber: (x: any) => x is number; export declare const isString: (x: any) => x is string;