import { BoundingBox, Color } from "@galacean/engine-math";
import { Entity } from "../../Entity";
import { RenderContext } from "../../RenderPipeline/RenderContext";
import { Renderer } from "../../Renderer";
import { TransformModifyFlags } from "../../Transform";
import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
import { FontStyle } from "../enums/FontStyle";
import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
import { TextHorizontalAlignment, TextVerticalAlignment } from "../enums/TextAlignment";
import { OverflowMode } from "../enums/TextOverflow";
import { Font } from "./Font";
import { ITextRenderer } from "./ITextRenderer";
/**
 * Renders a text for 2D graphics.
 */
export declare class TextRenderer extends Renderer implements ITextRenderer {
    private static _tempVec20;
    private static _tempVec30;
    private static _tempVec31;
    private static _textureProperty;
    private static _textTextureSizeProperty;
    private static _outlineColorProperty;
    private static _outlineWidthProperty;
    private static _worldPositions;
    private static _charRenderInfos;
    private _textChunks;
    private _color;
    private _text;
    private _width;
    private _height;
    private _localBounds;
    private _font;
    private _fontSize;
    private _fontStyle;
    private _lineSpacing;
    private _characterSpacing;
    private _horizontalAlignment;
    private _verticalAlignment;
    private _enableWrapping;
    private _overflowMode;
    private _outlineColor;
    private _outlineWidth;
    /**
     * Rendering color for the Text.
     */
    get color(): Color;
    set color(value: Color);
    /**
     * Rendering string for the Text.
     */
    get text(): string;
    set text(value: string);
    /**
     * The width of the TextRenderer (in 3D world coordinates).
     */
    get width(): number;
    set width(value: number);
    /**
     * The height of the TextRenderer (in 3D world coordinates).
     */
    get height(): number;
    set height(value: number);
    /**
     * The font of the Text.
     */
    get font(): Font;
    set font(value: Font);
    /**
     * The font size of the Text.
     */
    get fontSize(): number;
    set fontSize(value: number);
    /**
     * The style of the font.
     */
    get fontStyle(): FontStyle;
    set fontStyle(value: FontStyle);
    /**
     * The space between two lines, in em (ratio of fontSize).
     */
    get lineSpacing(): number;
    set lineSpacing(value: number);
    /**
     * The space between two characters, in em (ratio of fontSize).
     */
    get characterSpacing(): number;
    set characterSpacing(value: number);
    /**
     * The horizontal alignment.
     */
    get horizontalAlignment(): TextHorizontalAlignment;
    set horizontalAlignment(value: TextHorizontalAlignment);
    /**
     * The vertical alignment.
     */
    get verticalAlignment(): TextVerticalAlignment;
    set verticalAlignment(value: TextVerticalAlignment);
    /**
     * Whether wrap text to next line when exceeds the width of the container.
     */
    get enableWrapping(): boolean;
    set enableWrapping(value: boolean);
    /**
     * The overflow mode.
     */
    get overflowMode(): OverflowMode;
    set overflowMode(value: OverflowMode);
    /**
     * The outline width in pixels. 0 means outline is disabled. Clamped to [0, 8].
     */
    get outlineWidth(): number;
    set outlineWidth(value: number);
    /**
     * The outline color. Only effective when outlineWidth > 0.
     */
    get outlineColor(): Color;
    set outlineColor(value: Color);
    /**
     * Interacts with the masks.
     */
    get maskInteraction(): SpriteMaskInteraction;
    set maskInteraction(value: SpriteMaskInteraction);
    /**
     * The mask layer the sprite renderer belongs to.
     */
    get maskLayer(): SpriteMaskLayer;
    set maskLayer(value: SpriteMaskLayer);
    /**
     * The bounding volume of the TextRenderer.
     */
    get bounds(): BoundingBox;
    constructor(entity: Entity);
    protected _updateBounds(worldBounds: BoundingBox): void;
    protected _render(context: RenderContext): void;
    private _resetSubFont;
    private _updatePosition;
    private _updateColor;
    private _updateLocalData;
    protected _onTransformChanged(bit: TransformModifyFlags): void;
    private _isTextNoVisible;
    private _buildChunk;
    private _freeTextChunks;
    private _onColorChanged;
    private _onOutlineColorChanged;
}
