import { RectangleItem } from "./RectangleItem";
import { Color } from "../../Colors";
import { StrokeSettings } from "./StrokeSettings";
import { ShadowSettings } from "./ShadowSettings";
import { OpenTypeFeature } from "./OpenTypeFeature";
import { TextPermissions } from "./TextPermissions";
import { TextAlignment } from "./TextEnums";
import { INotifyPropertyChanged } from "../../INotifyPropertyChanged";
import { EventWithSenderArg } from "../../EventObject";
import { Collection } from "../../Collection";
import { InStringPlaceholder } from "./InStringPlaceholder";
import { ModelComponent } from "../ModelComponent";
import { IFontSettings } from "../Interfaces";
import { TextViolationSettings } from "./TextViolationSettings";
export declare class BaseTextItem extends RectangleItem {
    private _text;
    private _font;
    private _originalText;
    private _underline;
    private _color;
    private _alignment;
    private _tracking;
    private _leading;
    private _checkTextCrop;
    private _overlapLinesEnabled;
    private _textPermissions;
    private _verticalScale;
    private _horizontalScale;
    private _stroke;
    private _shadow;
    private _previewScale;
    private _placeholders;
    private _displayText;
    private _colorPalette;
    private _baselineShift;
    private _overprintText;
    values: BaseTextItem.BaseTextValue[];
    private _characterLimit;
    private _maxLineLength;
    private _maxLineCount;
    isTextPlaceholder: boolean;
    textColorForAbnormalRendering: import("../../Colors").RgbColor;
    constructor(text?: string, fontPostScriptName?: string, fontSize?: number);
    get characterLimit(): number;
    set characterLimit(value: number);
    get maxLineCount(): number;
    set maxLineCount(value: number);
    get maxLineLength(): number;
    set maxLineLength(value: number);
    get previewScale(): number;
    set previewScale(value: number);
    get stroke(): StrokeSettings;
    set stroke(value: StrokeSettings);
    get shadow(): ShadowSettings;
    set shadow(value: ShadowSettings);
    get horizontalScale(): number;
    set horizontalScale(value: number);
    get verticalScale(): number;
    set verticalScale(value: number);
    get checkTextCrop(): boolean;
    set checkTextCrop(value: boolean);
    get overlapLinesEnabled(): boolean;
    set overlapLinesEnabled(value: boolean);
    get alignment(): TextAlignment;
    set alignment(value: TextAlignment);
    get tracking(): number;
    set tracking(value: number);
    get leading(): number;
    set leading(value: number);
    get originalText(): string;
    set originalText(value: string);
    get underline(): boolean;
    set underline(value: boolean);
    get font(): BaseTextItem.FontSettings;
    set font(value: BaseTextItem.FontSettings);
    get text(): string;
    set text(value: string);
    get color(): Color;
    set color(value: Color);
    get baselineShift(): number;
    set baselineShift(value: number);
    get overprintText(): boolean;
    set overprintText(value: boolean);
    listStyles: string;
    getUpdatedText(text: string): string;
    get placeholders(): Collection<InStringPlaceholder>;
    get colorPalette(): Collection<Color>;
    static type: string;
    type: string;
    protected _canSetIsVariable(): boolean;
    get previewFontSize(): number;
    set previewFontSize(value: number);
    get previewLeading(): number;
    set previewLeading(value: number);
    applyPermissionsConstrain(): void;
    get textPermissions(): TextPermissions;
    set textPermissions(value: TextPermissions);
    get violationSettings(): TextViolationSettings;
    set violationSettings(value: TextViolationSettings);
    protected _setViolationSettings(value: TextViolationSettings, skipTypeCheck?: boolean): void;
    private _subscribeFontPropertyChanged;
    private _unsubscribeFontPropertyChanged;
    private _onFontPropertyChanged;
    private _subscribeShadowPropertyChanged;
    private _unsubscribeShadowPropertyChanged;
    private _onShadowPropertyChanged;
    private _subscribeStrokePropertyChanged;
    private _unsubscribeStrokePropertyChanged;
    private _onStrokePropertyChanged;
    getSimplifiedObject(omitProperties?: string[] | string): Object;
    private _replaceInStringPlaceholders;
    private _replaceInStringPlaceholdersValueInPlainText;
    private _originalTextDom;
    private _replaceInStringPlaceholdersValueInRichText;
    protected _copy(source: BaseTextItem, destination: BaseTextItem, generateNewIds: boolean, appropriateParentContainer: boolean): void;
    equals(other: BaseTextItem): boolean;
    isEmptyText(): boolean;
    isEmptyXmlText(): boolean;
    isEmpty(): boolean;
}
export declare module BaseTextItem {
    class FontSettings extends ModelComponent implements INotifyPropertyChanged<FontSettings, string>, IFontSettings {
        private _fauxBold;
        private _fauxItalic;
        private _allCaps;
        private _openTypeFeatures;
        private _postScriptName;
        private _size;
        constructor(postScriptName: string, size?: number);
        clone(): FontSettings;
        get fauxBold(): boolean;
        set fauxBold(value: boolean);
        get fauxItalic(): boolean;
        set fauxItalic(value: boolean);
        get allCaps(): boolean;
        set allCaps(value: boolean);
        get openTypeFeatures(): OpenTypeFeature[];
        set openTypeFeatures(value: OpenTypeFeature[]);
        get postScriptName(): string;
        set postScriptName(value: string);
        get size(): number;
        set size(value: number);
        protected $_propertyChanged: EventWithSenderArg<FontSettings, string>;
        addPropertyChanged(listener: (sender: FontSettings, eventArgs: string) => void): void;
        removePropertyChanged(listener: (sender: FontSettings, eventArgs: string) => void): void;
        static equals(a: FontSettings, b: FontSettings): boolean;
        equals(other: FontSettings): boolean;
        getSimplifiedObject(): {
            allCaps: boolean;
            fauxBold: boolean;
            fauxItalic: boolean;
            openTypeFeatures: OpenTypeFeature[];
            postScriptName: string;
            size: number;
        };
    }
    class BaseTextValue {
        name: string;
        text: string;
        constructor(name: string, text: string);
        equals(other: BaseTextValue): boolean;
        clone(): BaseTextValue;
    }
}
