---@meta ---@class cc.Node :cc.Ref local Node={ } cc.Node=Node ---@overload fun(cc.Node:cc.Node,int:int):self ---@overload fun(cc.Node:cc.Node):self ---@overload fun(cc.Node:cc.Node,int:int,string2:int):self ---@overload fun(cc.Node:cc.Node,int:int,string:string):self ---@param child cc.Node ---@param localZOrder int ---@param name string ---@return self function Node:addChild (child,localZOrder,name) end ---@overload fun(string0:cc.Component):self ---@overload fun(string:string):self ---@param name string ---@return boolean function Node:removeComponent (name) end ---* ---@param physicsBody cc.PhysicsBody ---@return self function Node:setPhysicsBody (physicsBody) end ---* Get the callback of event ExitTransitionDidStart.
---* return std::function ---@return function function Node:getOnExitTransitionDidStartCallback () end ---* Gets the description string. It makes debugging easier.
---* return A string
---* js NA
---* lua NA ---@return string function Node:getDescription () end ---* Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
---* The difference between `setRotationalSkew()` and `setSkew()` is that the first one simulate Flash's skew functionality,
---* while the second one uses the real skew function.
---* 0 is the default rotation angle.
---* Positive values rotate node clockwise, and negative values for anti-clockwise.
---* param rotationY The Y rotation in degrees.
---* warning The physics body doesn't support this.
---* js setRotationY ---@param rotationY float ---@return self function Node:setRotationSkewY (rotationY) end ---* If you want the opacity affect the color property, then set to true.
---* param value A boolean value. ---@param value boolean ---@return self function Node:setOpacityModifyRGB (value) end ---* Change node's cascadeOpacity property.
---* param cascadeOpacityEnabled True to enable cascadeOpacity, false otherwise. ---@param cascadeOpacityEnabled boolean ---@return self function Node:setCascadeOpacityEnabled (cascadeOpacityEnabled) end ---@overload fun():self ---@overload fun():self ---@return array_table function Node:getChildren () end ---* Set the callback of event onExit.
---* param callback A std::function callback. ---@param callback function ---@return self function Node:setOnExitCallback (callback) end ---* Sets the ActionManager object that is used by all actions.
---* warning If you set a new ActionManager, then previously created actions will be removed.
---* param actionManager A ActionManager object that is used by all actions. ---@param actionManager cc.ActionManager ---@return self function Node:setActionManager (actionManager) end ---* Converts a local Vec2 to world space coordinates.The result is in Points.
---* treating the returned/received node point as anchor relative.
---* param nodePoint A given coordinate.
---* return A point in world space coordinates, anchor relative. ---@param nodePoint vec2_table ---@return vec2_table function Node:convertToWorldSpaceAR (nodePoint) end ---* Gets whether the anchor point will be (0,0) when you position this node.
---* see `setIgnoreAnchorPointForPosition(bool)`
---* return true if the anchor point will be (0,0) when you position this node. ---@return boolean function Node:isIgnoreAnchorPointForPosition () end ---* Gets a child from the container with its name.
---* param name An identifier to find the child node.
---* return a Node object whose name equals to the input parameter.
---* since v3.2 ---@param name string ---@return self function Node:getChildByName (name) end ---* Update the displayed opacity of node with it's parent opacity;
---* param parentOpacity The opacity of parent node. ---@param parentOpacity unsigned_char ---@return self function Node:updateDisplayedOpacity (parentOpacity) end ---* ---@return boolean function Node:init () end ---* get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true ---@return unsigned short function Node:getCameraMask () end ---* Sets the rotation (angle) of the node in degrees.
---* 0 is the default rotation angle.
---* Positive values rotate node clockwise, and negative values for anti-clockwise.
---* param rotation The rotation of the node in degrees. ---@param rotation float ---@return self function Node:setRotation (rotation) end ---* Changes the scale factor on Z axis of this node
---* The Default value is 1.0 if you haven't changed it before.
---* param scaleZ The scale factor on Z axis.
---* warning The physics body doesn't support this. ---@param scaleZ float ---@return self function Node:setScaleZ (scaleZ) end ---* Sets the scale (y) of the node.
---* It is a scaling factor that multiplies the height of the node and its children.
---* param scaleY The scale factor on Y axis.
---* warning The physics body doesn't support this. ---@param scaleY float ---@return self function Node:setScaleY (scaleY) end ---* Sets the scale (x) of the node.
---* It is a scaling factor that multiplies the width of the node and its children.
---* param scaleX The scale factor on X axis.
---* warning The physics body doesn't support this. ---@param scaleX float ---@return self function Node:setScaleX (scaleX) end ---* Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
---* The difference between `setRotationalSkew()` and `setSkew()` is that the first one simulate Flash's skew functionality,
---* while the second one uses the real skew function.
---* 0 is the default rotation angle.
---* Positive values rotate node clockwise, and negative values for anti-clockwise.
---* param rotationX The X rotation in degrees which performs a horizontal rotational skew.
---* warning The physics body doesn't support this.
---* js setRotationX ---@param rotationX float ---@return self function Node:setRotationSkewX (rotationX) end ---* Removes all components ---@return self function Node:removeAllComponents () end ---* ---@param z int ---@return self function Node:_setLocalZOrder (z) end ---* Modify the camera mask for current node.
---* If applyChildren is true, then it will modify the camera mask of its children recursively.
---* param mask A unsigned short bit for mask.
---* param applyChildren A boolean value to determine whether the mask bit should apply to its children or not. ---@param mask unsigned short ---@param applyChildren boolean ---@return self function Node:setCameraMask (mask,applyChildren) end ---* Returns a tag that is used to identify the node easily.
---* return An integer that identifies the node.
---* Please use `getTag()` instead. ---@return int function Node:getTag () end ---* ---@return cc.AffineTransform function Node:getNodeToWorldAffineTransform () end ---* Returns the world affine transform matrix. The matrix is in Pixels.
---* return transformation matrix, in pixels. ---@return mat4_table function Node:getNodeToWorldTransform () end ---* Returns the position (X,Y,Z) in its parent's coordinate system.
---* return The position (X, Y, and Z) in its parent's coordinate system.
---* js NA ---@return vec3_table function Node:getPosition3D () end ---* Removes a child from the container. It will also cleanup all running actions depending on the cleanup parameter.
---* param child The child node which will be removed.
---* param cleanup True if all running actions and callbacks on the child node will be cleanup, false otherwise. ---@param child cc.Node ---@param cleanup boolean ---@return self function Node:removeChild (child,cleanup) end ---* Converts a Vec2 to world space coordinates. The result is in Points.
---* param nodePoint A given coordinate.
---* return A point in world space coordinates. ---@param nodePoint vec2_table ---@return vec2_table function Node:convertToWorldSpace (nodePoint) end ---* Returns the Scene that contains the Node.
---* It returns `nullptr` if the node doesn't belong to any Scene.
---* This function recursively calls parent->getScene() until parent is a Scene object. The results are not cached. It is that the user caches the results in case this functions is being used inside a loop.
---* return The Scene that contains the node. ---@return cc.Scene function Node:getScene () end ---* Get the event dispatcher of scene.
---* return The event dispatcher of scene. ---@return cc.EventDispatcher function Node:getEventDispatcher () end ---* Changes the X skew angle of the node in degrees.
---* The difference between `setRotationalSkew()` and `setSkew()` is that the first one simulate Flash's skew functionality
---* while the second one uses the real skew function.
---* This angle describes the shear distortion in the X direction.
---* Thus, it is the angle between the Y coordinate and the left edge of the shape
---* The default skewX angle is 0. Positive values distort the node in a CW direction.
---* param skewX The X skew angle of the node in degrees.
---* warning The physics body doesn't support this. ---@param skewX float ---@return self function Node:setSkewX (skewX) end ---* Changes the Y skew angle of the node in degrees.
---* The difference between `setRotationalSkew()` and `setSkew()` is that the first one simulate Flash's skew functionality
---* while the second one uses the real skew function.
---* This angle describes the shear distortion in the Y direction.
---* Thus, it is the angle between the X coordinate and the bottom edge of the shape.
---* The default skewY angle is 0. Positive values distort the node in a CCW direction.
---* param skewY The Y skew angle of the node in degrees.
---* warning The physics body doesn't support this. ---@param skewY float ---@return self function Node:setSkewY (skewY) end ---* Set the callback of event onEnter.
---* param callback A std::function callback. ---@param callback function ---@return self function Node:setOnEnterCallback (callback) end ---* Removes all actions from the running action list by its flags.
---* param flags A flag field that removes actions based on bitwise AND. ---@param flags unsigned_int ---@return self function Node:stopActionsByFlags (flags) end ---* ---@param position vec2_table ---@return self function Node:setNormalizedPosition (position) end ---* convenience methods which take a Touch instead of Vec2.
---* param touch A given touch.
---* return A point in world space coordinates. ---@param touch cc.Touch ---@return vec2_table function Node:convertTouchToNodeSpace (touch) end ---@overload fun(boolean:boolean):self ---@overload fun():self ---@param cleanup boolean ---@return self function Node:removeAllChildrenWithCleanup (cleanup) end ---* Set the callback of event EnterTransitionDidFinish.
---* param callback A std::function callback. ---@param callback function ---@return self function Node:setOnEnterTransitionDidFinishCallback (callback) end ---* ---@param programState cc.backend.ProgramState ---@return self function Node:setProgramState (programState) end ---@overload fun(cc.Node:cc.Node):self ---@overload fun():self ---@param ancestor cc.Node ---@return cc.AffineTransform function Node:getNodeToParentAffineTransform (ancestor) end ---* Whether cascadeOpacity is enabled or not.
---* return A boolean value. ---@return boolean function Node:isCascadeOpacityEnabled () end ---* Sets the parent node.
---* param parent A pointer to the parent node. ---@param parent cc.Node ---@return self function Node:setParent (parent) end ---* Returns a string that is used to identify the node.
---* return A string that identifies the node.
---* since v3.2 ---@return string function Node:getName () end ---* Resumes all scheduled selectors, actions and event listeners.
---* This method is called internally by onEnter. ---@return self function Node:resume () end ---* Returns the rotation (X,Y,Z) in degrees.
---* return The rotation of the node in 3d.
---* js NA ---@return vec3_table function Node:getRotation3D () end ---@overload fun(cc.Node:cc.Node):self ---@overload fun():self ---@param ancestor cc.Node ---@return mat4_table function Node:getNodeToParentTransform (ancestor) end ---* converts a Touch (world coordinates) into a local coordinate. This method is AR (Anchor Relative).
---* param touch A given touch.
---* return A point in world space coordinates, anchor relative. ---@param touch cc.Touch ---@return vec2_table function Node:convertTouchToNodeSpaceAR (touch) end ---* Converts a Vec2 to node (local) space coordinates. The result is in Points.
---* param worldPoint A given coordinate.
---* return A point in node (local) space coordinates. ---@param worldPoint vec2_table ---@return vec2_table function Node:convertToNodeSpace (worldPoint) end ---* Sets the position (x,y) using values between 0 and 1.
---* The positions in pixels is calculated like the following:
---* code pseudo code
---* void setNormalizedPosition(Vec2 pos) {
---* Size s = getParent()->getContentSize();
---* _position = pos * s;
---* }
---* endcode
---* param position The normalized position (x,y) of the node, using value between 0 and 1. ---@param position vec2_table ---@return self function Node:setPositionNormalized (position) end ---* Pauses all scheduled selectors, actions and event listeners.
---* This method is called internally by onExit. ---@return self function Node:pause () end ---* If node opacity will modify the RGB color value, then you should override this method and return true.
---* return A boolean value, true indicates that opacity will modify color; false otherwise. ---@return boolean function Node:isOpacityModifyRGB () end ---@overload fun(float:float,float:float):self ---@overload fun(float0:vec2_table):self ---@param x float ---@param y float ---@return self function Node:setPosition (x,y) end ---* Removes an action from the running action list by its tag.
---* param tag A tag that indicates the action to be removed. ---@param tag int ---@return self function Node:stopActionByTag (tag) end ---* Reorders a child according to a new z value.
---* param child An already added child node. It MUST be already added.
---* param localZOrder Z order for drawing priority. Please refer to setLocalZOrder(int). ---@param child cc.Node ---@param localZOrder int ---@return self function Node:reorderChild (child,localZOrder) end ---* Sets the 'z' coordinate in the position. It is the OpenGL Z vertex value.
---* The OpenGL depth buffer and depth testing are disabled by default. You need to turn them on.
---* In order to use this property correctly.
---* `setPositionZ()` also sets the `setGlobalZValue()` with the positionZ as value.
---* see `setGlobalZValue()`
---* param positionZ OpenGL Z vertex of this node.
---* js setVertexZ ---@param positionZ float ---@return self function Node:setPositionZ (positionZ) end ---* Sets the rotation (X,Y,Z) in degrees.
---* Useful for 3d rotations.
---* warning The physics body doesn't support this.
---* param rotation The rotation of the node in 3d.
---* js NA ---@param rotation vec3_table ---@return self function Node:setRotation3D (rotation) end ---* Gets/Sets x or y coordinate individually for position.
---* These methods are used in Lua and Javascript Bindings
---* Sets the x coordinate of the node in its parent's coordinate system.
---* param x The x coordinate of the node. ---@param x float ---@return self function Node:setPositionX (x) end ---* Sets the transformation matrix manually.
---* param transform A given transformation matrix. ---@param transform mat4_table ---@return self function Node:setNodeToParentTransform (transform) end ---* Returns the anchor point in percent.
---* see `setAnchorPoint(const Vec2&)`
---* return The anchor point of node. ---@return vec2_table function Node:getAnchorPoint () end ---* Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).
---* Composable actions are counted as 1 action. Example:
---* If you are running 1 Sequence of 7 actions, it will return 1.
---* If you are running 7 Sequences of 2 actions, it will return 7.
---* return The number of actions that are running plus the ones that are schedule to run. ---@return int function Node:getNumberOfRunningActions () end ---* Calls children's updateTransform() method recursively.
---* This method is moved from Sprite, so it's no longer specific to Sprite.
---* As the result, you apply SpriteBatchNode's optimization on your customed Node.
---* e.g., `batchNode->addChild(myCustomNode)`, while you can only addChild(sprite) before. ---@return self function Node:updateTransform () end ---* Determines if the node is visible.
---* see `setVisible(bool)`
---* return true if the node is visible, false if the node is hidden. ---@return boolean function Node:isVisible () end ---* Returns the amount of children.
---* return The amount of children. ---@return int function Node:getChildrenCount () end ---* Converts a Vec2 to node (local) space coordinates. The result is in Points.
---* treating the returned/received node point as anchor relative.
---* param worldPoint A given coordinate.
---* return A point in node (local) space coordinates, anchor relative. ---@param worldPoint vec2_table ---@return vec2_table function Node:convertToNodeSpaceAR (worldPoint) end ---* Adds a component.
---* param component A given component.
---* return True if added success. ---@param component cc.Component ---@return boolean function Node:addComponent (component) end ---* Executes an action, and returns the action that is executed.
---* This node becomes the action's target. Refer to Action::getTarget().
---* warning Actions don't retain their target.
---* param action An Action pointer. ---@param action cc.Action ---@return cc.Action function Node:runAction (action) end ---@overload fun():self ---@overload fun(cc.Renderer:cc.Renderer,mat4_table:mat4_table,unsigned_int:unsigned_int):self ---@param renderer cc.Renderer ---@param parentTransform mat4_table ---@param parentFlags unsigned_int ---@return self function Node:visit (renderer,parentTransform,parentFlags) end ---* Returns the rotation of the node in degrees.
---* see `setRotation(float)`
---* return The rotation of the node in degrees. ---@return float function Node:getRotation () end ---* ---@return cc.PhysicsBody function Node:getPhysicsBody () end ---* Returns the anchorPoint in absolute pixels.
---* warning You can only read it. If you wish to modify it, use anchorPoint instead.
---* see `getAnchorPoint()`
---* return The anchor point in absolute pixels. ---@return vec2_table function Node:getAnchorPointInPoints () end ---* Removes a child from the container by tag value. It will also cleanup all running actions depending on the cleanup parameter.
---* param name A string that identifies a child node.
---* param cleanup True if all running actions and callbacks on the child node will be cleanup, false otherwise. ---@param name string ---@param cleanup boolean ---@return self function Node:removeChildByName (name,cleanup) end ---* Sets a Scheduler object that is used to schedule all "updates" and timers.
---* warning If you set a new Scheduler, then previously created timers/update are going to be removed.
---* param scheduler A Scheduler object that is used to schedule all "update" and timers. ---@param scheduler cc.Scheduler ---@return self function Node:setScheduler (scheduler) end ---* Stops and removes all actions from the running action list . ---@return self function Node:stopAllActions () end ---* Returns the X skew angle of the node in degrees.
---* see `setSkewX(float)`
---* return The X skew angle of the node in degrees. ---@return float function Node:getSkewX () end ---* Returns the Y skew angle of the node in degrees.
---* see `setSkewY(float)`
---* return The Y skew angle of the node in degrees. ---@return float function Node:getSkewY () end ---* Get the callback of event EnterTransitionDidFinish.
---* return std::function ---@return function function Node:getOnEnterTransitionDidFinishCallback () end ---* Query node's displayed color.
---* return A Color3B color value. ---@return color3b_table function Node:getDisplayedColor () end ---* Gets an action from the running action list by its tag.
---* see `setTag(int)`, `getTag()`.
---* return The action object with the given tag. ---@param tag int ---@return cc.Action function Node:getActionByTag (tag) end ---* Changes the name that is used to identify the node easily.
---* param name A string that identifies the node.
---* since v3.2 ---@param name string ---@return self function Node:setName (name) end ---* Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live".
---* param delta In seconds. ---@param delta float ---@return self function Node:update (delta) end ---* Return the node's display opacity.
---* The difference between opacity and displayedOpacity is:
---* The displayedOpacity is what's the final rendering opacity of node.
---* return A GLubyte value. ---@return unsigned_char function Node:getDisplayedOpacity () end ---* Gets the local Z order of this node.
---* see `setLocalZOrder(int)`
---* return The local (relative to its siblings) Z order. ---@return int function Node:getLocalZOrder () end ---@overload fun():self ---@overload fun():self ---@return cc.Scheduler function Node:getScheduler () end ---* ---@return cc.AffineTransform function Node:getParentToNodeAffineTransform () end ---* Returns the normalized position.
---* return The normalized position. ---@return vec2_table function Node:getPositionNormalized () end ---* Change the color of node.
---* param color A Color3B color value. ---@param color color3b_table ---@return self function Node:setColor (color) end ---* Returns whether or not the node is "running".
---* If the node is running it will accept event callbacks like onEnter(), onExit(), update().
---* return Whether or not the node is running. ---@return boolean function Node:isRunning () end ---@overload fun():self ---@overload fun():self ---@return self function Node:getParent () end ---* Gets position Z coordinate of this node.
---* see setPositionZ(float)
---* return The position Z coordinate of this node.
---* js getVertexZ ---@return float function Node:getPositionZ () end ---* Gets the y coordinate of the node in its parent's coordinate system.
---* return The y coordinate of the node. ---@return float function Node:getPositionY () end ---* Gets the x coordinate of the node in its parent's coordinate system.
---* return The x coordinate of the node. ---@return float function Node:getPositionX () end ---* Removes a child from the container by tag value. It will also cleanup all running actions depending on the cleanup parameter.
---* param tag An integer number that identifies a child node.
---* param cleanup True if all running actions and callbacks on the child node will be cleanup, false otherwise.
---* Please use `removeChildByName` instead. ---@param tag int ---@param cleanup boolean ---@return self function Node:removeChildByTag (tag,cleanup) end ---* Sets the y coordinate of the node in its parent's coordinate system.
---* param y The y coordinate of the node. ---@param y float ---@return self function Node:setPositionY (y) end ---* Update node's displayed color with its parent color.
---* param parentColor A Color3B color value. ---@param parentColor color3b_table ---@return self function Node:updateDisplayedColor (parentColor) end ---* Sets whether the node is visible.
---* The default value is true, a node is default to visible.
---* param visible true if the node is visible, false if the node is hidden. ---@param visible boolean ---@return self function Node:setVisible (visible) end ---* Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
---* The matrix is in Pixels.
---* return The transformation matrix. ---@return mat4_table function Node:getParentToNodeTransform () end ---* Checks whether a lambda function is scheduled.
---* param key key of the callback
---* return Whether the lambda function selector is scheduled.
---* js NA
---* lua NA ---@param key string ---@return boolean function Node:isScheduled (key) end ---* Defines the order in which the nodes are renderer.
---* Nodes that have a Global Z Order lower, are renderer first.
---* In case two or more nodes have the same Global Z Order, the order is not guaranteed.
---* The only exception if the Nodes have a Global Z Order == 0. In that case, the Scene Graph order is used.
---* By default, all nodes have a Global Z Order = 0. That means that by default, the Scene Graph order is used to render the nodes.
---* Global Z Order is useful when you need to render nodes in an order different than the Scene Graph order.
---* Limitations: Global Z Order can't be used by Nodes that have SpriteBatchNode as one of their ancestors.
---* And if ClippingNode is one of the ancestors, then "global Z order" will be relative to the ClippingNode.
---* see `setLocalZOrder()`
---* see `setVertexZ()`
---* since v3.0
---* param globalZOrder The global Z order value. ---@param globalZOrder float ---@return self function Node:setGlobalZOrder (globalZOrder) end ---@overload fun(float:float,float:float):self ---@overload fun(float:float):self ---@param scaleX float ---@param scaleY float ---@return self function Node:setScale (scaleX,scaleY) end ---* Gets a child from the container with its tag.
---* param tag An identifier to find the child node.
---* return a Node object whose tag equals to the input parameter.
---* Please use `getChildByName()` instead. ---@param tag int ---@return self function Node:getChildByTag (tag) end ---* Returns the scale factor on Z axis of this node
---* see `setScaleZ(float)`
---* return The scale factor on Z axis. ---@return float function Node:getScaleZ () end ---* Returns the scale factor on Y axis of this node
---* see `setScaleY(float)`
---* return The scale factor on Y axis. ---@return float function Node:getScaleY () end ---* Returns the scale factor on X axis of this node
---* see setScaleX(float)
---* return The scale factor on X axis. ---@return float function Node:getScaleX () end ---* LocalZOrder is the 'key' used to sort the node relative to its siblings.
---* The Node's parent will sort all its children based on the LocalZOrder value.
---* If two nodes have the same LocalZOrder, then the node that was added first to the children's array will be in front of the other node in the array.
---* Also, the Scene Graph is traversed using the "In-Order" tree traversal algorithm ( http:en.wikipedia.org/wiki/Tree_traversal#In-order )
---* And Nodes that have LocalZOrder values < 0 are the "left" subtree
---* While Nodes with LocalZOrder >=0 are the "right" subtree.
---* see `setGlobalZOrder`
---* see `setVertexZ`
---* param localZOrder The local Z order value. ---@param localZOrder int ---@return self function Node:setLocalZOrder (localZOrder) end ---* ---@return cc.AffineTransform function Node:getWorldToNodeAffineTransform () end ---* If you want node's color affect the children node's color, then set it to true.
---* Otherwise, set it to false.
---* param cascadeColorEnabled A boolean value. ---@param cascadeColorEnabled boolean ---@return self function Node:setCascadeColorEnabled (cascadeColorEnabled) end ---* Change node opacity.
---* param opacity A GLubyte opacity value. ---@param opacity unsigned_char ---@return self function Node:setOpacity (opacity) end ---* Stops all running actions and schedulers ---@return self function Node:cleanup () end ---* / @{/ @name component functions
---* Gets a component by its name.
---* param name A given name of component.
---* return The Component by name. ---@param name string ---@return cc.Component function Node:getComponent (name) end ---* Returns the untransformed size of the node.
---* see `setContentSize(const Size&)`
---* return The untransformed size of the node. ---@return size_table function Node:getContentSize () end ---* Removes all actions from the running action list by its tag.
---* param tag A tag that indicates the action to be removed. ---@param tag int ---@return self function Node:stopAllActionsByTag (tag) end ---* Query node's color value.
---* return A Color3B color value. ---@return color3b_table function Node:getColor () end ---* Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system.
---* return An AABB (axis-aligned bounding-box) in its parent's coordinate system ---@return rect_table function Node:getBoundingBox () end ---* Sets whether the anchor point will be (0,0) when you position this node.
---* This is an internal method, only used by Layer and Scene. Don't call it outside framework.
---* The default value is false, while in Layer and Scene are true.
---* param ignore true if anchor point will be (0,0) when you position this node. ---@param ignore boolean ---@return self function Node:setIgnoreAnchorPointForPosition (ignore) end ---* Set event dispatcher for scene.
---* param dispatcher The event dispatcher of scene. ---@param dispatcher cc.EventDispatcher ---@return self function Node:setEventDispatcher (dispatcher) end ---* Returns the Node's Global Z Order.
---* see `setGlobalZOrder(int)`
---* return The node's global Z order ---@return float function Node:getGlobalZOrder () end ---@overload fun():self ---@overload fun(cc.Renderer:cc.Renderer,mat4_table:mat4_table,unsigned_int:unsigned_int):self ---@param renderer cc.Renderer ---@param transform mat4_table ---@param flags unsigned_int ---@return self function Node:draw (renderer,transform,flags) end ---* Returns a user assigned Object.
---* Similar to UserData, but instead of holding a void* it holds an object.
---* The UserObject will be retained once in this method,
---* and the previous UserObject (if existed) will be released.
---* The UserObject will be released in Node's destructor.
---* param userObject A user assigned Object. ---@param userObject cc.Ref ---@return self function Node:setUserObject (userObject) end ---@overload fun(boolean:boolean):self ---@overload fun():self ---@param cleanup boolean ---@return self function Node:removeFromParentAndCleanup (cleanup) end ---* Sets the position (X, Y, and Z) in its parent's coordinate system.
---* param position The position (X, Y, and Z) in its parent's coordinate system.
---* js NA ---@param position vec3_table ---@return self function Node:setPosition3D (position) end ---* Returns the numbers of actions that are running plus the ones that are
---* schedule to run (actions in actionsToAdd and actions arrays) with a
---* specific tag.
---* Composable actions are counted as 1 action. Example:
---* If you are running 1 Sequence of 7 actions, it will return 1.
---* If you are running 7 Sequences of 2 actions, it will return 7.
---* param tag The tag that will be searched.
---* return The number of actions that are running plus the
---* ones that are schedule to run with specific tag. ---@param tag int ---@return int function Node:getNumberOfRunningActionsByTag (tag) end ---* Sorts the children array once before drawing, instead of every time when a child is added or reordered.
---* This approach can improve the performance massively.
---* note Don't call this manually unless a child added needs to be removed in the same frame. ---@return self function Node:sortAllChildren () end ---* ---@return cc.backend.ProgramState function Node:getProgramState () end ---* Returns the inverse world affine transform matrix. The matrix is in Pixels.
---* return The transformation matrix. ---@return mat4_table function Node:getWorldToNodeTransform () end ---* Gets the scale factor of the node, when X and Y have the same scale factor.
---* warning Assert when `_scaleX != _scaleY`
---* see setScale(float)
---* return The scale factor of the node. ---@return float function Node:getScale () end ---* Return the node's opacity.
---* return A GLubyte value. ---@return unsigned_char function Node:getOpacity () end ---* !!! ONLY FOR INTERNAL USE
---* Sets the arrival order when this node has a same ZOrder with other children.
---* A node which called addChild subsequently will take a larger arrival order,
---* If two children have the same Z order, the child with larger arrival order will be drawn later.
---* warning This method is used internally for localZOrder sorting, don't change this manually
---* param orderOfArrival The arrival order. ---@return self function Node:updateOrderOfArrival () end ---* ---@return vec2_table function Node:getNormalizedPosition () end ---* Set the callback of event ExitTransitionDidStart.
---* param callback A std::function callback. ---@param callback function ---@return self function Node:setOnExitTransitionDidStartCallback (callback) end ---* Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
---* see `setRotationSkewX(float)`
---* return The X rotation in degrees.
---* js getRotationX ---@return float function Node:getRotationSkewX () end ---* Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
---* see `setRotationSkewY(float)`
---* return The Y rotation in degrees.
---* js getRotationY ---@return float function Node:getRotationSkewY () end ---* Changes the tag that is used to identify the node easily.
---* Please refer to getTag for the sample code.
---* param tag A integer that identifies the node.
---* Please use `setName()` instead. ---@param tag int ---@return self function Node:setTag (tag) end ---* Query whether cascadeColor is enabled or not.
---* return Whether cascadeColor is enabled or not. ---@return boolean function Node:isCascadeColorEnabled () end ---* Stops and removes an action from the running action list.
---* param action The action object to be removed. ---@param action cc.Action ---@return self function Node:stopAction (action) end ---@overload fun():cc.ActionManager ---@overload fun():cc.ActionManager ---@return cc.ActionManager function Node:getActionManager () end ---* Allocates and initializes a node.
---* return A initialized node which is marked as "autorelease". ---@return self function Node:create () end ---* Gets count of nodes those are attached to scene graph. ---@return int function Node:getAttachedNodeCount () end ---* ---@return self function Node:Node () end