import { IBaseTextItemData } from "./IBaseTextItemData";
import { IParagraphSettingsData } from "./IParagraphSettingsData";
import { OverflowStrategy } from "./OverflowStrategy";
import { ShrinkMode } from "./ShrinkMode";
import { VerticalAlignmentType } from "./VerticalAlignmentType";
/**
* A structure defining the basic parameters of bounded text.
* @example
* ```json
* {
*    "defaultItemsConfig": {
*        "boundedText": {
*            "isVertical": true,
*            "verticalAlignment": "center",
*            "overflowStrategy": "fitToWidth",
*            "tracking": 12,
*            "maxLineCount": 2,
*            "maxLineLength": 20
*        }
*    }
* }
* ```
* @public
*/
export interface IBoundedTextItemData<TTextAlignment, TStrokeSettings, TShadowSettings> extends IBaseTextItemData<TTextAlignment, TStrokeSettings, TShadowSettings> {
    /** The spacing between an item and wrapping text, in points. The default value is `7`. */
    wrappingMargin?: number;
    /** The default parameters of paragraphs. */
    paragraphSettings?: IParagraphSettingsData;
    /** Defines how the vertical bounded text is aligned. The default value is `"top"`. */
    verticalAlignment?: VerticalAlignmentType;
    /** Limits the number of characters that the user can enter in the Rich text editor. By default, this number is not limited. */
    characterLimit?: number;
    /** Enables the vertical orientation of bounded text. The default value is `false`. */
    isVertical?: boolean;
    /** The maximum length of text lines which the user is allowed to enter into a specific point text or bounded text element. By default, this number is not limited. */
    maxLineLength?: number;
    /** The maximum number of lines which the user is allowed to enter into a specific point text or bounded text element. By default, this number is not limited. */
    maxLineCount?: number;
    /** The copyfitting strategy applied to a bounded text element when it overflows. By default, this property is `"clip"`. */
    overflowStrategy?: OverflowStrategy;
    /** A mode defining how a bounded text element shrinks to its bounds when it overflows. By default, this property is `"size"`. */
    textShrinkMode?: ShrinkMode;
}
