import BaseNode from './BaseNode'; import Tick from '../tick/Tick'; export default Decorator; declare namespace Decorator { /** * Configuration options for creating a Decorator node. */ interface IConfig extends BaseNode.IConfig { /** * Child node id or instance. */ child?: string | BaseNode; } } /** * Base class for decorator nodes. */ declare class Decorator extends BaseNode { /** * Create a Decorator node. * * @param config - Configuration options. * @param nodePool - Node pool for resolving ids. */ constructor( config?: Decorator.IConfig, nodePool?: BaseNode.NodePoolType ); /** * Child node instance. */ child: BaseNode | null; /** * Destroy the node. */ destroy(): void; /** * Add a child node. * * @param node - Node id or instance. * @param nodePool - Node pool for resolving ids. * @returns This Decorator instance. */ addChild( node: string | BaseNode, nodePool?: BaseNode.NodePoolType ): this; /** * Chain a child node. * * @param node - Node id or instance. * @param nodePool - Node pool for resolving ids. * @returns This Decorator instance. */ chainChild( node: string | BaseNode, nodePool?: BaseNode.NodePoolType ): this; /** * Check if child is running. * * @param tick - Tick instance. * @returns True if child is running. */ isChildRunning(tick: Tick): boolean; /** * Abort child nodes. * * @param tick - Tick instance. */ abortChildren(tick: Tick): void; /** * Open child node. * * @param tick - Tick instance. * @returns This Decorator instance. */ openChild(tick: Tick): this; }