import { TreeItem } from '@zeainc/zea-engine';
import Change from '../Change.js';
import { SelectionManager } from '../../index.js';
/**
 * Class representing an `Add TreeItem` Change. Meaning that this should be called when you add a new `TreeItem` to the scene.
 *
 * @extends Change
 */
declare class TreeItemAddChange extends Change {
    treeItem: TreeItem;
    owner: TreeItem;
    prevSelection: Set<TreeItem>;
    selectionManager: SelectionManager;
    treeItemIndex: number;
    /**
     * Creates an instance of TreeItemAddChange.
     *
     * @param treeItem -
     * @param owner -
     * @param selectionManager -
     */
    constructor(treeItem: TreeItem, owner: TreeItem, selectionManager: SelectionManager);
    /**
     * Removes the newly added TreeItem from its owner.
     */
    undo(): void;
    /**
     * Restores undone `TreeItem`.
     */
    redo(): void;
    /**
     * Serializes `TreeItem` like instanced class into a JSON object.
     *
     * @param context - The context treeItem
     * @return {object} - JSON object
     */
    toJSON(context: Record<any, any>): Record<string, any>;
    /**
     * Reconstructs `TreeItem` like parameter from JSON object.
     *
     * @param j -The j treeItem
     * @param context - The context treeItem
     */
    fromJSON(j: Record<any, any>, context: Record<any, any>): void;
    /**
     * Removes reference of the `TreeItem` from current change.
     */
    destroy(): void;
}
export { TreeItemAddChange };
//# sourceMappingURL=TreeItemAddChange.d.ts.map