declare module 'troika-three-text' { import { Mesh, Color, Vector2 } from 'three'; // eslint-disable-next-line @typescript-eslint/no-empty-interface interface TroikaTextRenderInfo { // } class Text extends Mesh { public text: string; public anchorX: number | `${number}%` | 'left' | 'center' | 'right'; public anchorY: number | `${number}%` | 'top' | 'top-baseline' | 'top-cap' | 'top-ex' | 'middle' | 'bottom-baseline' | 'bottom'; public curveRadius: number; public direction: 'auto' | 'ltf' | 'rtl'; public font: string; public fontSize: number; public letterSpacing: number; public lineHeight: number | 'normal'; public maxWidth: number; public overflowWrap: 'normal' | 'break-word'; public textAlign: 'left' | 'center' | 'right'; public textIndent: number; public whiteSpace: 'normal' | 'nowrap'; public color: string | number | Color | null; public colorRanges: { [id: string]: string | number | Color }; public outlineWidth: number | `${number}%`; public outlineColor: string | number | Color; public outlineOpacity: number; public outlineBlur: number | `${number}%`; public outlineOffsetX: number | `${number}%`; public outlineOffsetY: number | `${number}%`; public strokeWidth: number | `${number}%`; public strokeColor: string | number | Color; public strokeOpacity: number; public fillOpacity: number; public depthOffset: number; public clipRect: [minX: number, minY: number, maxX: number, maxY: number] | null; public orientation: string; public glyphGeometryDetail: number; public sdfGlyphSize: number | null; public gpuAccelerateSDF: boolean; public debugSDF: boolean; public sync(callback?: () => void): void; public dispose(): void; public localPositionToTextCoords(position: Vector2, target?: Vector2): Vector2; public worldPositionToTextCoords(position: Vector2, target?: Vector2): Vector2; // TODO textRenderInfo } function preloadFont( options: { font?: string; characters?: string | string[]; sdfGlyphSize?: number; }, callback: () => void ): void; interface TextCaret { x: number; y: number; height: number; charIndex: number; } function getCaretAtPoint(textRenderInfo: TroikaTextRenderInfo, x: number, y: number): TextCaret | null; function getSelectionRects(textRenderInfo: TroikaTextRenderInfo, start: number, end: number): { left: number; right: number; top: number; bottom: number }[] | null; }