import { TextStyleModel } from '../appearance-model';
import { Size } from '../../primitives/size';
import { DrawingElement } from './drawing-element';
import { SubTextElement, TextBounds } from '../../rendering/canvas-interface';
/**
 * @hidden
 * TextElement is used to display text/annotations
 */
export declare class TextElement extends DrawingElement {
    /** @private */
    freeTextSelectorWidth: number;
    /** @private */
    isShapeLabel: boolean;
    /**
     * set the id for each element
     */
    constructor();
    /**
     * sets or gets the image source
     */
    private textContent;
    /** @private */
    canMeasure: boolean;
    /** @private */
    canConsiderBounds: boolean;
    /** @private */
    doWrap: boolean;
    /**
     * gets the content for the text element
     *
     * @private
     * @returns {string} - string
     */
    /**
    * sets the content for the text element
    *
    * @param {string} value - value
    * @private
    */
    content: string;
    private textNodes;
    /**
     * sets the content for the text element
     *
     * @private
     * @returns {SubTextElement[]} - Array of SubTextElement
     */
    /**
    * gets the content for the text element
    *
    * @param {SubTextElement[]} value - array of SubTextElement
    * @private
    */
    childNodes: SubTextElement[];
    private textWrapBounds;
    /**
     * gets the wrapBounds for the text
     *
     * @private
     * @returns {TextBounds} - TextBounds
     */
    /**
    * sets the wrapBounds for the text
    *
    * @param {TextBounds} value - value
    * @private
    */
    wrapBounds: TextBounds;
    /**
     * Measures the minimum space that is required to render the element
     *
     * @private
     * @returns {void} - void
     */
    refreshTextElement(): void;
    /**
     * Defines the appearance of the text element
     */
    style: TextStyleModel;
    /**
     * Measures the minimum size that is required for the text element
     *
     * @param {Size} availableSize - availableSize
     * @private
     * @returns {Size} - Size
     */
    measure(availableSize: Size): Size;
    /**
     * Arranges the text element
     *
     * @param {Size} desiredSize - desiredSize
     * @private
     * @returns {Size} - Size
     */
    arrange(desiredSize: Size): Size;
}
