import Sizer from '../sizer/Sizer'; import Tree from './tree/Tree'; export default Trees; declare namespace Trees { /** * Configuration options for creating a trees container. */ interface IConfig extends Sizer.IConfig { /** * Base tree configuration used when creating tree items. */ tree: Tree.IConfig, } } /** * Sizer container that manages a list of tree components. */ declare class Trees extends Sizer { /** * Create a trees container. * * @param scene - Scene that owns this component. * @param config - Optional trees configuration. */ constructor( scene: Phaser.Scene, config?: Trees.IConfig ); /** * Add a tree using default configuration. * * @returns Created tree instance. */ addTree(): Tree; /** * Add a tree with custom config or node key. * * @param config - Tree config or node key string. * @returns Created tree instance. */ addTree( config?: Tree.IAddTreeConfig | string ): Tree; /** * Insert a tree at target index. * * @param index - Insertion index. * @param config - Tree config or node key string. * @returns Created tree instance. */ insertTree( index: number, config?: Tree.IAddTreeConfig | string ): Tree; /** * Remove a tree by instance or node key. * * @param tree - Tree instance or node key. * @param destroyChild - Set to true to destroy removed tree object. * @returns This component instance. */ removeTree( tree: Tree | string, destroyChild?: boolean ): this; /** * Remove all trees. * * @param destroyChild - Set to true to destroy removed tree objects. * @returns This component instance. */ removeAllTrees( destroyChild?: boolean ): this; /** * Get a tree by node key. * * @param nodeKey - Node key of tree root. * @returns Matched tree instance. */ getTree( nodeKey: string ): Tree; /** * Get all trees. * * @param out - Optional output array. * @returns Tree list. */ getTrees( out?: Phaser.GameObjects.GameObject[] ): Tree[]; /** * Get a node game object by node key. * * @param nodeKey - Node key. * @returns Matched node game object. */ getNode( nodeKey: string ): Phaser.GameObjects.GameObject; }