import { TreeItem } from '@zeainc/zea-engine';
import Change from '../Change.js';
import { AppData } from '../../../types/types.js';
/**
 * Class representing a TreeItems removal Change,
 * taking into account that it would remove all the specified items ti their children
 *
 * @extends Change
 */
declare class TreeItemsRemoveChange extends Change {
    private items;
    private itemOwners;
    private itemPaths;
    private itemIndices;
    /**
     * Creates an instance of TreeItemsRemoveChange.
     *
     * @param items - List of TreeItems
     * @param appData - The appData value
     */
    constructor(items: Array<TreeItem>, appData: AppData);
    /**
     * Restores all items removed in the change, reattaching them to their old owners.
     */
    undo(): void;
    /**
     * Executes initial change to remove items from their owners.
     */
    redo(): void;
    /**
     * Serializes current change data as a JSON object, so this action can be stored/replicated somewhere else.
     *
     * @param appData - The appData value
     * @return {object} - JSON Object representation of current change
     * @memberof TreeItemsRemoveChange
     */
    toJSON(context?: Record<any, any>): Record<string, any>;
    /**
     * Restores Change action from a JSON object.
     *
     * @param j - The JSON object with Change data.
     * @param appData - The appData value
     * @memberof TreeItemsRemoveChange
     */
    fromJSON(j: Record<string, any>, context: Record<any, any>): void;
}
export { TreeItemsRemoveChange };
//# sourceMappingURL=TreeItemsRemoveChange.d.ts.map