import { CanvasHorizontalAlign } from './types'; /** * Generate a pseudo-random number in an given interval */ export declare function random(min: number, max: number): number; /** * Create a new canvas with a 2D context */ export declare function create2DContext(width: number, height: number, options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D; /** * Clear the complete canvas context */ export declare function clearContext(context: CanvasRenderingContext2D): void; /** * Change context size */ export declare function changeSize(context: CanvasRenderingContext2D, width: number, height: number): void; /** * Round a number to given niceness * @example * ``` * nice(0, 25) // 0 * nice(25, 25) // 25 * nice(27, 25) // 50 * nice(1456, 25) // 1475 * ``` */ export declare function nice(value: number, niceness: number): number; /** * Invert color mask, any non-transparent color is considered to be mask */ export declare function invertMask(context: CanvasRenderingContext2D): void; export declare type Point2D = { x: number; y: number; }; /** * Rotate a point counter-clockwise around an origin point */ export declare function rotatePoint(point: Point2D, origin: Point2D, angleRadians: number): Point2D; /** * Convert angle in degrees to radians */ export declare function toRadians(value: number): number; /** * Calculate top/left x and y position for a point based on text align and baseline * NOTE: Axis y is inverted (↓ is +) */ export declare function calculatePosition(x: number, y: number, width: number, height: number, textAlign: CanvasTextAlign, textBaseline: CanvasHorizontalAlign): Point2D; export declare type BoundingBox = { x: number; y: number; width: number; height: number; }; /** * Calculate bounding box based on given points */ export declare function getBoundingBox(...points: Point2D[]): BoundingBox; export declare function calculateMiddlePosition(point: Point2D, width: number, height: number): Point2D; /** * Calculate the actual text position based on horizontal/vertical alignment and rotation * When rotated, it returns the bounding box * NOTE: Axis y is inverted (↓ is +) */ export declare function getTextPosition(x: number, y: number, textSize: TextMetrics, textAlign: CanvasTextAlign, textBaseline: CanvasHorizontalAlign, angleRadians: number): BoundingBox; //# sourceMappingURL=utils.d.ts.map