import { Collection } from "@aurigma/design-atoms-model/Collection";
import { EventObject } from "@aurigma/design-atoms-model/EventObject";
import { LayoutItem, Item } from "@aurigma/design-atoms-model/Product/Items";
import { ItemHandler } from "../ItemHandler";
import { LayoutItemHandler } from "../LayoutItemHandler";
import { History } from "../../History/History";
export declare class AutoLayoutHandler {
    private _item;
    private _itemHandlers;
    private _itemHandler;
    private _history;
    private _layoutEvent;
    private _orderedItemHandlers;
    private _initialized;
    private _disposed;
    constructor(_item: LayoutItem, _itemHandlers: Collection<ItemHandler>, _itemHandler: LayoutItemHandler, _history: History);
    dispose(): void;
    getLayoutEvent(): EventObject<boolean>;
    onItemRemoved(data: {
        item: Item;
        index: number;
    }): void;
    onItemHandlersCollectionChanged(): void;
    _init(): Promise<void>;
    protected _onItemHandlerAdded(data?: {
        item: ItemHandler;
        index: number;
    }): void;
    protected _onItemHandlerRemoved(data?: {
        item: ItemHandler;
        index: number;
    }): void;
    protected _onChildItemHandlerChanging: (sender: Item) => void;
    protected _onChildItemHandlerPropertyChanged: (sender: ItemHandler, propertyName?: string) => Promise<void>;
    protected _onItemPropertyChanged: (sender: LayoutItem, propertyName: string) => void;
    private _updateItemsOrder;
    private _initSortedItemHandlers;
    private _validateItemsOrder;
    private _getSortedItemHandlers;
    getOrderedItems(): Item[];
    private _ignoreLayoutApply;
    set ignoreLayoutApply(value: boolean);
    applyLayout(fromCenter?: boolean): void;
    _filterHiddenItems: (itemHandler: ItemHandler) => boolean;
    private _applyLayoutImpl;
    private _getSourceRectangleByAnchorPoint;
    private _getAnchorPoint;
    private _applyAnchor;
    private _setItemHandlerPosition;
    private _setItemHandlerRectangle;
    private _getPositionRectOffset;
    private _getItemHandlerPositionRect;
    private _getOriginalPoint;
}
