import type { UICanvasRenderingContext2D } from "../../miscellaneous/canvas"; import type { UITextSpan } from "../../miscellaneous/text-span/UITextSpan"; import { UITextStyle } from "../../miscellaneous/text-style/UITextStyle"; import type { UITextStyleConfig } from "../../miscellaneous/text-style/UITextStyle.Internal"; import type { UIChunkMetrics, UITextChunk, UITextLine, UITextSize } from "./UIText.Interfaces"; /** * Applies font of a resolved style to a canvas context. * Shared by measuring and rendering so both stay in sync. * @param context Canvas context to configure * @param textStyle Resolved text style */ export declare function applyFontStyle(context: UICanvasRenderingContext2D, textStyle: UITextStyleConfig): void; /** * Splits text into renderable chunks. * @param text Text to split * @returns Array of words, spaces, and newlines */ export declare function splitTextIntoChunks(text: string): string[]; /** * Measures single text chunk. * @param context Canvas context for measurement * @param text Chunk text * @param textStyle Resolved text style * @returns Chunk metrics */ export declare function measureTextChunk(context: UICanvasRenderingContext2D, text: string, textStyle: UITextStyleConfig): UIChunkMetrics; /** * Builds text lines with word wrapping. * @param maxWidth Maximum line width in pixels * @param textChunks Measured text chunks * @returns Array of text lines */ export declare function buildTextLines(maxWidth: number, textChunks: UITextChunk[]): UITextLine[]; /** * Calculates total text size from lines. * The box spans from the ascent of the first line to the descent of the last one. * @param lines Text lines * @returns Total width and height */ export declare function calculateTextSize(lines: UITextLine[]): UITextSize; /** * Builds measured text chunks from spans. * @param context Canvas context for measurement * @param textSpans Text spans with styles * @param commonStyle Fallback style * @param isRTL Whether the paragraph reads right to left * @returns Measured text chunks */ export declare function buildTextChunks(context: UICanvasRenderingContext2D, textSpans: UITextSpan[], commonStyle: UITextStyle, isRTL: boolean): UITextChunk[]; /** * Calculates text layout parameters. * @param textChunks Measured text chunks * @param maxLineWidth Maximum line width in pixels * @returns Lines and total size */ export declare function calculateTextContentParameters(textChunks: UITextChunk[], maxLineWidth: number): { lines: UITextLine[]; size: UITextSize; };