import { BaseProductCommand } from "./BaseProductCommand";
import { IHistoryArgs } from "../ModelUpdateCommand";
import { OriginPointType } from "../../Services/ItemsDataApplierInterfaces";
import { ProductHandler } from "../../Services/ProductHandler";
import { Canvas } from "../../Canvas";
import { ResizeRectangleType } from "../../Utils/Math";
import { CommandManager } from "../CommandManager";
import { Product, PrintArea, Surface } from "@aurigma/design-atoms-model/Product";
import { Item } from "@aurigma/design-atoms-model/Product/Items";
export declare class ResizeCommand extends BaseProductCommand<IResizeArgs | IExternalResizeArgs, void> {
    private _productHandler;
    private _commandManager;
    private _canvas?;
    private _convertedArgs;
    constructor(historyArgs: IHistoryArgs, product: Product, args: IResizeArgs | IExternalResizeArgs, _productHandler: ProductHandler, _commandManager: CommandManager, _canvas?: Canvas);
    _executeCommandBody: () => Promise<void>;
    private get _items();
    private _resizeProduct;
    private _resizeSurface;
    private _resizeMockupContainer;
    private _resizeContainer;
    private _getTranslateMatrixRelativeToPrintArea;
    private _resizeItems;
    private _resizeItem;
    private _getItemsMatrix;
    private _getTranslateMatrixForOriginalMode;
    private _getResizeOptions;
    private get _defaultResizeOptions();
    private _getItemsBounds;
    private _resizePrintAreaBounds;
    private _resizePrintArea;
    private _getMatrixForPrintArea;
    private _resizeSurfaceByPrintArea;
    private _getTransformMatrix;
    private _getScaleMultiplier;
    private _convertExternalConfig;
    redo(): Promise<void>;
    undo(): Promise<void>;
}
export interface IResizeArgs {
    target: Product | Surface[] | Item[] | PrintArea;
    width: number | string;
    height: number | string;
    containerOptions?: {
        [key: string]: IContainerResizeOptions;
    };
    defaultOptions?: IContainerResizeOptions;
}
export interface IExternalResizeArgs {
    targetType: "product" | "surfaces" | "items" | "printArea";
    targetIds: string[];
    width: number | string;
    height: number | string;
    containerOptions?: {
        [key: string]: IContainerResizeOptions;
    };
    defaultOptions?: IContainerResizeOptions;
}
export interface IContainerResizeOptions {
    resize?: ResizeRectangleType;
    originX?: OriginPointType;
    originY?: OriginPointType;
    resetPlaceholderContent?: boolean;
}
