import { Item } from "@aurigma/design-atoms-model/Product/Items/Item";
import { PlaceholderItem } from "@aurigma/design-atoms-model/Product/Items/PlaceholderItem";
import { ImageItem } from "@aurigma/design-atoms-model/Product/Items/ImageItem";
import { BarcodeItem } from "@aurigma/design-atoms-model/Product/Items";
import { BaseTextItem } from "@aurigma/design-atoms-model/Product/Items/BaseTextItem";
import { ImagePermissions } from "@aurigma/design-atoms-model/Product/Items/ImagePermissions";
import { ImageMetaData } from "@aurigma/design-atoms-model/Product/Items/ImageMetaData";
import { BarcodePermissions, BarcodeData, OverlayEffect } from "@aurigma/design-atoms-model/Product/Items";
import { Canvas } from "../Canvas";
import { ItemHandler, BaseRectangleItemHandler } from "../ItemHandlers";
import { Color } from "@aurigma/design-atoms-model/Colors";
import { ImageEffect } from "@aurigma/design-atoms-model/Product/Items/ImageEffect";
import { ProductHandler } from "../Services/ProductHandler";
import { VariableItemHelper } from "../Services/VariableItemHelper";
import { Product } from "@aurigma/design-atoms-model/Product";
import { RotatedRectangleF, PointF } from "@aurigma/design-atoms-model/Math";
import { CommandManager } from "../Commands/CommandManager";
import { IDesignAtomsApiClient } from "../Services/IDesignAtomsApiClient";
import { ICanvas } from "../ICanvas";
import { IColorData } from "@aurigma/design-atoms-text/Model";
import { IColorPreviewService } from "../Services";
export declare class ItemUtils {
    private static _designAtomsApiClient;
    static set designAtomsApiClient(designAtomsApiClient: IDesignAtomsApiClient);
    static isBgContainerItem(item: Item): boolean;
    static isFgContainerItem(item: Item): boolean;
    static isImage(item: Item): item is ImageItem | PlaceholderItem;
    static isEmptyPlaceholder(item: Item): boolean;
    static isDataMatrixBarcode(item: Item): boolean;
    static isQrCode(item: Item): boolean;
    static isLinearBarcode(item: Item): boolean;
    static isVariableItem(item: Item): boolean;
    static isMultiValueItem(item: Item): boolean;
    static isTextType(type: any): boolean;
    static getAllowTextFormatting(textItem?: BaseTextItem, defaultValue?: boolean): boolean;
    static allowMoveHorizontal(item: Item): boolean;
    static allowMoveVertical(item: Item): boolean;
    static allowManipulate(item: Item): boolean;
    static clearImageContent(placeHolder: PlaceholderItem): void;
    static getImageItem(item: PlaceholderItem | ImageItem): ImageItem;
    static getImagePermissions(item: PlaceholderItem | ImageItem): ImagePermissions;
    static getImageSizeInPoints(source: ImageItem.ImageSource): {
        width: number;
        height: number;
    };
    static getContentEffect(item: PlaceholderItem): ImageEffect;
    static getAllowChangeContent(item: PlaceholderItem | ImageItem | BarcodeItem): boolean;
    static getImageMetaDataFromFile(appDomainUrl: string, filePath: string, userId?: string): Promise<any>;
    static getImageMetaDataFromDesignImage(appDomainUrl: string, designImageName: string): Promise<any>;
    static getImageMetadataFromRemoteFile(appDomainUrl: string, url: string): Promise<any>;
    static getTextFromRichTextItem(item: BaseTextItem): string;
    static getMaxFontSize(textItem: BaseTextItem): number;
    static getBarcodeItem(item: PlaceholderItem | BarcodeItem): BarcodeItem;
    static getBarcodePermissions(item: PlaceholderItem | BarcodeItem): BarcodePermissions;
    static getImageUrlFromImageMetadata(imageMetadata: ImageMetaData, canvas: Canvas, width?: number, height?: number, keepProportions?: boolean): string;
    static setOverlayEffectColor: (item: ImageItem | PlaceholderItem, color: Color) => void;
    static applyOverlayEffect: (item: ImageItem | PlaceholderItem, overlayEffect: OverlayEffect) => void;
    private static _getItemOverlayEffect;
    static updateItems(items: Item[], productHandler: ProductHandler, canvas: Canvas, options?: UpdateItemsOptions): void;
    private static _updateItem;
    private static _updateImageItem;
    private static _updatePlaceholderItem;
    private static _hidePlaceholderButtonWhileImageLoad;
    static getItemBoundsForViolationCheck(handler: ItemHandler): import("@aurigma/design-atoms-model").RectangleF;
    static createCloneName(item: string | Item, variableItemHelper: VariableItemHelper, productHandler: ProductHandler): string;
    static createImageContentForPlaceholder(placeholder: PlaceholderItem, metadata: ImageMetaData | BarcodeData, productHandler: ProductHandler, hiResOutputDpi?: number): ImageItem | BarcodeItem;
    static positionItemInArea(productHandler: ProductHandler, item: Item, boundsWidth: number, boundsHeight: number, ignoreRotate?: boolean, targetRegion?: RotatedRectangleF, oldCenterPoint?: PointF, relativeToPrintArea?: boolean): any;
    static rotateItems(productHandler: ProductHandler, items: Item[], rotateCenter: PointF, angle: number): void;
    static changeItemsContent(product: Product, productHandler: ProductHandler, commandManager: CommandManager, oldItems: Item[], newItems: Item[], replaceAll: boolean): void;
    private static _replaceContentFromOldToNewItems;
    static getEmptyPlaceholdersFromProduct(product: Product, skipLinked?: boolean): PlaceholderItem[];
    static waitForItemsUpdated(items: Item[], canvas: ICanvas): Promise<void>;
    static isTextItemHandlerReady(item: Item, productHandler: ProductHandler): boolean;
    static alignHandlerToRect(itemHandler: BaseRectangleItemHandler, rectangle: RotatedRectangleF, item: Item): void;
    static isRotated(item: Item, contentAngle: number): boolean;
    static getColorPalette(item: BaseTextItem, colorPreviewService: IColorPreviewService): Promise<IColorData[]>;
}
export declare type UpdateItemsOptions = {
    addToHistory?: boolean;
    updatePhase?: UpdatePhase;
    redraw?: boolean;
};
export declare enum UpdatePhase {
    InProgress = 0,
    Final = 1
}
