import { Container, Surface } from "@aurigma/design-atoms-model";
import { IPreviewContainersSource } from "./Interfaces/IPreviewContainersSource";
import { IItemsComparer } from "./Interfaces/IItemsComparer";
export declare class AutoPreviewContainersSource implements IPreviewContainersSource {
    private readonly _sourceSurface;
    private readonly _itemsComparer;
    private readonly _previewContainers;
    private readonly _previewContainersChanged;
    private readonly _debounceUpdateContainers;
    private _blockUpdate;
    constructor(sourceSurface: Surface, itemsComparer: IItemsComparer);
    private get _sourceContainers();
    getPreviewContainers(): Container[];
    addPreviewContainersChanged(listener: (data: any) => any): void;
    removePreviewContainersChanged(listener: (data: any) => any): void;
    ensureUpdatedAndExecuteAsync(asyncCallback: () => Promise<void>): Promise<void>;
    private _subscribeToContainersChanged;
    private _subscribeToItemCollectionsChanged;
    private _subscribeToContainerItemCollectionChanged;
    private _unsubscribeFromContainerItemCollectionChanged;
    private _subscribeToItemsChanged;
    private _unsubscribeFromItemsChanged;
    private _onContainerItemAdded;
    private _onContainerItemRemoved;
    private _onContainerItemMoved;
    private _subscribeToItemChanged;
    private _unsubscribeFromItemChanged;
    private _onItemChanged;
    private _updateContainers;
    private _updateContainer;
    private _patchCollection;
}
