import { IContentItemData } from "./IContentItemData";
import { IFontSettingsData } from "./IFontSettingsData";
import { ITextPermissionsData } from "./ITextPermissionsData";
/**
* A structure defining the basic text parameters.
* @example
* ```json
* {
*    "defaultItemsConfig": {
*        "text": {
*            "font": {
*                "postScriptName": "Impact",
*                "size": 33,
*                "fauxBold": true,
*                "fauxItalic": true
*            },
*            "color": "rgb(30,30,30)",
*            "shadow": {
*                "color": "rgb(255,0,0)",
*                "size": 0.4,
*                "angle": 45,
*                "distance": 2
*            },
*            "stroke": {
*                "size": 0.3
*            },
*            "overflowStrategy": "FitToWidth",
*            "textPermissions": {
*                "allowChangeFontColor": false,
*                "allowChangeShadow": false,
*                "allowChangeStroke": false
*            }
*        }
*    }
* }
* ```
* @public
*/
export interface IBaseTextItemData<TTextAlignment, TStrokeSettings, TShadowSettings> extends IContentItemData {
    /** The default content for new text elements. It is an empty string for text with rich formatting and `"Text"` for plain text. */
    text?: string;
    /** The font parameters. */
    font?: IFontSettingsData;
    /** The text alignment. */
    alignment?: TTextAlignment;
    /** Enables the underline. The default value is `false`. */
    underline?: boolean;
    /** The text color. The default value is `"rgba(0,0,0,1)"`. */
    color?: string;
    /** The spacing between characters, in points. The default value is `0`. */
    tracking?: number;
    /** The spacing between base lines, in points. */
    leading?: number;
    /** The spacing between base lines on proof images, in points. */
    previewLeading?: number;
    /** Allows you to scale text horizontally. The default value is `1`. */
    horizontalScale?: number;
    /** Allows you to scale text vertically. The default value is `1`. */
    verticalScale?: number;
    /** The text scaling on proof images. */
    previewScale?: number;
    /** The stroke parameters. */
    stroke?: TStrokeSettings;
    /** The shadow parameters. */
    shadow?: TShadowSettings;
    /** Defines permissions for new text elements. */
    textPermissions?: ITextPermissionsData;
    overlapLinesEnabled?: boolean;
    checkTextCrop?: boolean;
    overprintText?: boolean;
}
