import { TextAlign, TextVerticalAlign, ImageLike, Dictionary, MapToType, FontWeight, FontStyle } from '../core/types'; import TSpan from './TSpan'; import ZRImage from './Image'; import Rect from './shape/Rect'; import BoundingRect from '../core/BoundingRect'; import { MatrixArray } from '../core/matrix'; import Displayable, { DisplayableStatePropNames, DisplayableProps } from './Displayable'; import { ZRenderType } from '../zrender'; import Animator from '../animation/Animator'; import Transformable from '../core/Transformable'; import { ElementCommonState } from '../Element'; import { GroupLike } from './Group'; export interface TextStylePropsPart { text?: string; fill?: string; stroke?: string; strokeNoScale?: boolean; opacity?: number; fillOpacity?: number; strokeOpacity?: number; lineWidth?: number; lineDash?: false | number[]; lineDashOffset?: number; borderDash?: false | number[]; borderDashOffset?: number; font?: string; textFont?: string; fontStyle?: FontStyle; fontWeight?: FontWeight; fontFamily?: string; fontSize?: number | string; align?: TextAlign; verticalAlign?: TextVerticalAlign; lineHeight?: number; width?: number | string; height?: number; tag?: string; textShadowColor?: string; textShadowBlur?: number; textShadowOffsetX?: number; textShadowOffsetY?: number; backgroundColor?: string | { image: ImageLike | string; }; padding?: number | number[]; margin?: number; borderColor?: string; borderWidth?: number; borderRadius?: number | number[]; shadowColor?: string; shadowBlur?: number; shadowOffsetX?: number; shadowOffsetY?: number; } export interface TextStyleProps extends TextStylePropsPart { text?: string; x?: number; y?: number; width?: number; rich?: Dictionary; overflow?: 'break' | 'breakAll' | 'truncate' | 'none'; lineOverflow?: 'truncate'; ellipsis?: string; placeholder?: string; truncateMinChar?: number; } export interface TextProps extends DisplayableProps { style?: TextStyleProps; zlevel?: number; z?: number; z2?: number; culling?: boolean; cursor?: string; } export declare type TextState = Pick & ElementCommonState; export declare type DefaultTextStyle = Pick & { autoStroke?: boolean; }; export declare const DEFAULT_TEXT_ANIMATION_PROPS: MapToType; interface ZRText { animate(key?: '', loop?: boolean): Animator; animate(key: 'style', loop?: boolean): Animator; getState(stateName: string): TextState; ensureState(stateName: string): TextState; states: Dictionary; stateProxy: (stateName: string) => TextState; } declare class ZRText extends Displayable implements GroupLike { type: string; style: TextStyleProps; overlap: 'hidden' | 'show' | 'blur'; innerTransformable: Transformable; isTruncated: boolean; private _children; private _childCursor; private _defaultStyle; constructor(opts?: TextProps); childrenRef(): (ZRImage | Rect | TSpan)[]; update(): void; updateTransform(): void; getLocalTransform(m?: MatrixArray): MatrixArray; getComputedTransform(): MatrixArray; private _updateSubTexts; addSelfToZr(zr: ZRenderType): void; removeSelfFromZr(zr: ZRenderType): void; getBoundingRect(): BoundingRect; setDefaultTextStyle(defaultTextStyle: DefaultTextStyle): void; setTextContent(textContent: never): void; protected _mergeStyle(targetStyle: TextStyleProps, sourceStyle: TextStyleProps): TextStyleProps; private _mergeRich; getAnimationStyleProps(): MapToType; private _getOrCreateChild; private _updatePlainTexts; private _updateRichTexts; private _placeToken; private _renderBackground; static makeFont(style: TextStylePropsPart): string; } export declare function parseFontSize(fontSize: number | string): string; export declare function hasSeparateFont(style: Pick): string | number | true; export declare function normalizeTextStyle(style: TextStyleProps): TextStyleProps; export default ZRText;