import { DrawingElement } from '../core/elements/drawing-element';
import { Rect } from '../primitives/rect';
import { PointModel } from '../primitives/point-model';
import { TextAlign, TextWrap, WhiteSpace, TextDecoration } from '../enum/enum';
import { TextAttributes } from '../rendering/canvas-interface';
import { Size } from '../primitives/size';
/**
 * @private
 * @returns {string} - string
 */
export declare function randomId(): string;
/**
 * @hidden
 * expandTabSpace interface
 */
interface expandTabSpace {
    expandedString: string;
    width: number;
}
/**
 * @param {DrawingElement} ele - ele
 * @private
 * @returns {Rect} - Rect
 */
export declare function cornersPointsBeforeRotation(ele: DrawingElement): Rect;
/**
 * @param {Size} size - size
 * @param {number} angle - angle
 * @private
 * @returns {Size} - Size
 */
export declare function rotateSize(size: Size, angle: number): Size;
/**
 * @param {DrawingElement} element - element
 * @private
 * @returns {Rect} - Rect
 */
export declare function getBounds(element: DrawingElement): Rect;
/**
 * @param {TextAlign} value - value
 * @private
 * @returns {string} - string
 */
export declare function textAlignToString(value: TextAlign): string;
/**
 * @param {TextWrap | TextDecoration} value - value
 * @private
 * @returns {string} - string
 */
export declare function wordBreakToString(value: TextWrap | TextDecoration): string;
/**
 * @param {string} textContent - textContent
 * @param {TextAttributes} options - options
 * @private
 * @returns {number} - number
 */
export declare function bBoxText(textContent: string, options: TextAttributes): number;
/**
 * @param {string} text - text
 * @param {number} tabSize - tabSize
 * @private
 * @returns {string} - Rect
 */
export declare function expandTabsAsSpaces(text: string, tabSize?: number): string;
/**
 * @param {string} textContent - textContent
 * @param {TextAttributes} options - options
 * @private
 * @returns {number} - number
 */
export declare function bBoxTextBlazor(textContent: string, options: TextAttributes): number;
/**
 * @param {SVGTextElement} textEl - textEl
 * @param {string} input - input
 * @param {any} startX - startX
 * @private
 * @returns {expandTabSpace} - expandTabSpace
 */
export declare function expandTabsForSvg(textEl: SVGTextElement, input: string, { startX, tabSizeSpaces }?: any): expandTabSpace;
/**
 * @param {string} textContent - textContent
 * @param {TextAttributes} options - options
 * @private
 * @returns {number} - number
 */
export declare function bBoxTextHeight(textContent: string, options: TextAttributes): number;
/**
 * @param {number} i - i
 * @param {number} j - j
 * @private
 * @returns {number} - number
 */
export declare function middleElement(i: number, j: number): number;
/**
 * @param {WhiteSpace} value - value
 * @param {TextWrap} wrap - wrap
 * @private
 * @returns {string} - string
 */
export declare function whiteSpaceToString(value: WhiteSpace, wrap: TextWrap): string;
/**
 * @param {number} angle - angle
 * @param {number} pivotX - pivotX
 * @param {number} pivotY - pivotY
 * @param {PointModel} point - point
 * @private
 * @returns {PointModel} - PointModel
 */
export declare function rotatePoint(angle: number, pivotX: number, pivotY: number, point: PointModel): PointModel;
/**
 * @param {PointModel} topLeft - topLeft
 * @param {DrawingElement} obj - obj
 * @private
 * @returns {PointModel} - PointModel
 */
export declare function getOffset(topLeft: PointModel, obj: DrawingElement): PointModel;
export {};
