import { AdditionalConverter } from "./AdditionalConverter";
import { Product } from "@aurigma/design-atoms-model/Product/Product";
import { Surface } from "@aurigma/design-atoms-model/Product/Surface";
import { SurfaceMockup } from "@aurigma/design-atoms-model/Product/SurfaceMockup";
import { MockupContainer, Container, SurfaceContainer } from "@aurigma/design-atoms-model/Product/Container";
import { SizeF, RectangleF, PointF, Path, RotatedRectangleF } from "@aurigma/design-atoms-model/Math";
import { SafetyLine } from "@aurigma/design-atoms-model/Product/SafetyLine";
import { CropMark, CropMarkText } from "@aurigma/design-atoms-model/Product/CropMark";
import { PrintArea } from "@aurigma/design-atoms-model/Product/PrintArea";
import { ItemMask } from "@aurigma/design-atoms-model/Product/ItemMask";
import { BaseItem, RectangleItem, EllipseItem, ShapeItem, BaseTextItem, PlainTextItem, ImageItem, BoundedTextItem, CurvedTextItem, PathBoundedTextItem, BarcodeItem, PlaceholderItem, LineItem, DashedLineItem, AutoScaledTextItem, ThemeBinding, SmartItem, InStringPlaceholder, GroupItem, ArchedTextItem, EncodingOptions, LayoutItem } from "@aurigma/design-atoms-model/Product/Items";
import { Transform } from "@aurigma/design-atoms-model/Math/Transform";
import { ManipulationPermissions, ContentPermissions, BarcodePermissions, TextPermissions, ImagePermissions, ItemPermissions, FrontendPermissions, ShapePermissions, PathBoundedTextPermissions, PlaceholderPermissions, VisualizationPermissions, LinePermissions } from "@aurigma/design-atoms-model/Product/Items";
import { ParagraphSettings } from "@aurigma/design-atoms-model/Product/Items/ParagraphSettings";
import { StrokeSettings } from "@aurigma/design-atoms-model/Product/Items/StrokeSettings";
import { ShadowSettings } from "@aurigma/design-atoms-model/Product/Items/ShadowSettings";
import { Collection } from "@aurigma/design-atoms-model/Collection";
import { WatermarkConfig } from "@aurigma/design-atoms-model/Configuration/WatermarkConfig";
import { InteractiveZone, Watermark } from "@aurigma/design-atoms-model/Product";
import { GroupItemPermissions } from "@aurigma/design-atoms-model/Product/Items/GroupItemPermissions";
import { ClipartItem, ColorGroup } from "@aurigma/design-atoms-model/Product/Items/ClipartItem";
import { DefaultLayoutSettings } from "@aurigma/design-atoms-model/Product/Items/LayoutItem";
import { ViolationSettings } from "@aurigma/design-atoms-model/Product/Items/ViolationSettings";
import { Palette } from "@aurigma/design-atoms-model/Colors/Palette";
import { Swatch } from "@aurigma/design-atoms-model/Colors/Swatch";
import { Color, RgbColor } from "@aurigma/design-atoms-model/Colors";
export declare class ProductParser {
    private _additionalConverters;
    constructor(additionalConverters?: Array<AdditionalConverter>);
    parseProduct(rawProduct: Object): Product;
    readonly parsePalette: (rawPalette: Object) => Palette;
    readonly parseSwatch: (rawSwatch: Object) => Swatch;
    parseColor(rawColor: any): Color;
    parseRgbColor(rawColor: any): RgbColor;
    readonly parseSurface: (rawSurface: Object) => Surface;
    parseWatermarkConfig(rawConfig: any): WatermarkConfig;
    parseWatermark(rawWatermark: any): Watermark;
    parseMockup(rawMockup: Object): SurfaceMockup;
    readonly parseMockupContainer: (rawContainer: Object) => MockupContainer;
    readonly parseInteractiveZone: (rawActivityZone: Object) => InteractiveZone;
    readonly parseSurfaceContainer: (rawContainer: Object) => SurfaceContainer;
    readonly parseContainer: (rawContainer: Object, emptyContainer?: Container, converters?: PropertyConverter[]) => Container;
    parseCollection<T>(rawCollection: any[], parseCollectionItem: (raw: any) => T, targetCollection: Collection<T>): void;
    readonly parseSafetyLine: (rawSafetyLine: Object) => SafetyLine;
    readonly parseCropMark: (rawCropMark: Object) => CropMark;
    readonly parseCropMarkText: (rawCropMarkText: Object) => CropMarkText;
    readonly parsePrintArea: (rawPrintArea: Object) => PrintArea;
    private _parseMargin;
    parseRectangleF(rawRectangle: Object): RectangleF;
    parsePointF(rawPoint: Object): PointF;
    parseSizeF(rawSize: Object): SizeF;
    parsePath(rawPath: Object): Path;
    parsePaths(rawPaths: Object): Path[];
    readonly parseItem: (rawItem: Object) => BaseItem;
    parseSmartItem(rawSmartItem: Object): SmartItem;
    parsePlainTextItem(rawPlainText: Object, baseConverters: PropertyConverter[]): PlainTextItem;
    parseArchedTextItem(rawArchedText: Object, baseConverters: PropertyConverter[]): ArchedTextItem;
    parseAutoScaledTextItem(rawAutoScaledText: Object, baseConverters: PropertyConverter[]): AutoScaledTextItem;
    parseBoundedTextItem(rawBoundedText: Object, baseConverters: PropertyConverter[]): BoundedTextItem;
    parsePathBoundedTextItem(rawBoundedText: Object, baseConverters: PropertyConverter[]): PathBoundedTextItem;
    parseCurvedTextItem(rawCurvedText: Object, baseConverters: PropertyConverter[]): CurvedTextItem;
    private _getBaseTextItemConverters;
    parseImageItem(rawImage: Object, baseConverters: PropertyConverter[]): ImageItem;
    parseBarcodeItem(rawBarcode: Object, baseConverters: PropertyConverter[]): BarcodeItem;
    parseEncodingOptions: (raw: Object) => EncodingOptions;
    parsePlaceholderItem(rawPlaceholder: Object, baseConverters: PropertyConverter[]): PlaceholderItem;
    parseGroupItem(rawGroupItem: Object, baseConverters: PropertyConverter[]): GroupItem;
    parseClipartItem(rawClipartItem: Object, baseConverters: PropertyConverter[]): ClipartItem;
    parseLayoutItem(rawLayoutItem: Object, baseConverters: PropertyConverter[]): LayoutItem;
    parseContentPermissions(rawContentPermissions: Object, baseConverters: PropertyConverter[]): ContentPermissions;
    parseEllipseItem(rawEllipse: Object, baseConverters: PropertyConverter[]): EllipseItem;
    parseRectangleItem(rawRectangle: Object, baseConverters: PropertyConverter[]): RectangleItem;
    parseShapeItem(rawShape: Object, baseConverters: PropertyConverter[]): ShapeItem;
    readonly parseLineItem: (rawLine: Object, baseConverters: PropertyConverter[]) => LineItem;
    parseDashedLineItem(rawLine: Object, baseConverters: PropertyConverter[]): DashedLineItem;
    parseThemeBinding(rawThemeBinding: any): ThemeBinding;
    parseMask(rawMask: any): ItemMask;
    parseRotatedRectangle: (rawRectangle: Object) => RotatedRectangleF;
    parseTransform(rawTransform: Object): Transform;
    parseFontSettings(rawSettings: Object, destTextItem: BaseTextItem): BaseTextItem.FontSettings;
    parseManipulationPermissions(rawPerms: Object): ManipulationPermissions;
    parseFrontendPermissions(rawPerms: Object): FrontendPermissions;
    parseVisualizationPermissions(rawPerms: Object): VisualizationPermissions;
    parseViolationSettings: (rawPerms: Object) => ViolationSettings;
    parseColorGroup(rawPerms: Object): ColorGroup;
    parseItemPermissions(rawPerms: Object): ItemPermissions;
    readonly parsePlaceholderPermissions: (rawPerms: Object) => PlaceholderPermissions;
    readonly parseLayoutSettings: (rawPerms: Object) => DefaultLayoutSettings & Object;
    readonly parseGroupItemPermissions: (rawPerms: Object) => GroupItemPermissions;
    parseTextPermissions(rawPerms: Object): TextPermissions;
    parsePathBoundedTextPermissions(rawPerms: Object): PathBoundedTextPermissions;
    parseShapePermissions(rawPerms: Object): ShapePermissions;
    readonly parseLinePermissions: (rawPerms: Object) => LinePermissions;
    parseImagePermissions(rawPerms: Object): ImagePermissions;
    parseBarcodePermissions: (rawPerms: Object) => BarcodePermissions;
    parseImageSource(rawImageSource: Object): ImageItem.ImageSource;
    parseParagraphSettings(rawSettings: Object): ParagraphSettings;
    parseStrokeSettings(rawSettings: Object): StrokeSettings;
    parseShadowSettings(rawSettings: Object): ShadowSettings;
    parseInStringPlaceholder(rawSettings: Object): InStringPlaceholder;
    private _setConvertedArray;
    private _getImageConverters;
    private _parseOverlayEffect;
    private _parseImageItemValue;
    private _parseTextItemValue;
    private _getShapeConverters;
    private _getGroupConverters;
    private _getLineConverters;
    private _getDashedLineConverters;
    private _parseModelComponent;
    private _doesVersionMatch;
    private _parseObject;
}
export declare class PropertyConverter {
    property: string;
    convert: Function;
    setByConverter: boolean;
    constructor(rawPropertyName: string, convertFunc: Function, isSetByConvertFunc?: boolean);
}
