import { CanvasNodeTooltipConfig, CanvasNodeTooltipProps } from '../utils/portalHoverEvents'; import { CanvasTextOverflow } from '../utils/textOverflow'; import { DrawBatcher } from '../core/DrawBatcher'; import { CanvasNode } from '../core/CanvasNode'; export type CanvasTextOverflowMode = 'visible' | 'hidden'; export type CanvasTextAutoTooltip = boolean | (CanvasNodeTooltipProps & { enabled?: boolean; text?: string | ((fullText: string) => string | null); mouseEnterDelay?: number; mouseLeaveDelay?: number; }); export interface CanvasTextOptions { font?: string; fontSize?: number; lineHeightPx?: number; color?: string; wordWrap?: boolean; lineHeight?: number; overflow?: CanvasTextOverflowMode; textOverflow?: CanvasTextOverflow; ellipsis?: string; maxLines?: number; autoTooltip?: CanvasTextAutoTooltip; } export declare class CanvasText extends CanvasNode { text: string; font: string; color: string; fontSize: number | undefined; lineHeightPx: number | undefined; wordWrap: boolean; lineHeight: number; overflow: CanvasTextOverflowMode; textOverflow: CanvasTextOverflow; ellipsis: string; maxLines: number | undefined; autoTooltip: CanvasTextAutoTooltip | undefined; private lastMeasureKey; private cachedLines; private cachedLinesKey; private lastPaintedTextWidth; constructor(id: string, text: string, options?: CanvasTextOptions); measure(ctx: CanvasRenderingContext2D): void; private measureWordWrap; private measureSingleLineClamp; private measureSingleLine; protected getLastPaintedTextWidth(): number; getTooltip(): CanvasNodeTooltipConfig | undefined; private computeIsTruncated; private getResolvedMaxLines; private isSingleLineClampEnabled; private isMultilineClampEnabled; onPaint(batcher: DrawBatcher, ctx: CanvasRenderingContext2D): void; private paintMultiline; private paintSingleLine; } export declare function invalidateTextCache(): void;