import type { QCanvasViewer } from './qcanvas-viewer'; import type { IFontMetrics } from './text-metrics'; declare enum QTextWrapMode { Default = 0, Clip = 1, Ellipsis = 2 } interface QTextOptions { left?: number; top?: number; maxWidth?: number; fontFamily?: string; fontSize?: number; fontWeight?: string; align?: string; verticalAlign?: string; padding?: number; letterSpacing?: number; wrap?: QTextWrapMode; color?: string; fontStyle?: string; angle?: number; name?: string; strokeWidth?: number; strokeColor?: string; } interface QChar { left: number; top: number; char: string; width: number; heigh: number; font: string; fontSize: number; isEllipsis: boolean; scale: number; index: number; } declare class QText { left: number; top: number; width?: number; height?: number; text: string; name: string; fontSize: number; fontFamily: string; color: string; letterSpacing: number; maxLineWidth: number; wrap: QTextWrapMode; fontStyle: 'normal' | 'italic' | 'oblique' | 'initial' | 'inherit'; textAlign: 'center' | 'end' | 'left' | 'right' | 'start'; textBaseline: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'; scaleX: number; scaleY: number; angle: number; active: boolean; padding: number; fontWeight: string; chars: QChar[]; borderColor: string; borderWidth: number; strokeWidth?: number; strokeColor?: string; fontProperties: IFontMetrics; fontVariant: string; private viewer; private originX; private originY; private ellipsis; constructor(text: string, options: QTextOptions); update(): void; render(): void; init(viewer: QCanvasViewer): void; getLayout(): { x: number; y: number; width: number; height: number; }; private updateDimension; private configTextStyle; private getFontDesc; private configTextLayout; private setRenderTransform; private renderText; private drawCharsInTextBox; private addEllipsisToChars; private splitStringIntoChars; private createCharsFromText; private addOffsetToChars; private clipCharsWithTextBox; private cloneChars; private replaceCharWithEllipsis; private findEllipsisPositionAndReplaceCharsFromLeft; private findEllipsisPositionAndReplaceCharsFromRight; private drawCharsFromLeft; private drawBorders; } export { QText, QTextOptions, QTextWrapMode };