---@meta

---@class cc.SpriteBatchNode :cc.Node@all parent class: Node,TextureProtocol
local SpriteBatchNode = {}
cc.SpriteBatchNode = SpriteBatchNode

---*  Append the child. <br>
---* param sprite A Sprite.
---@param sprite cc.Sprite
---@return self
function SpriteBatchNode:appendChild(sprite) end
---*
---@param reorder boolean
---@return self
function SpriteBatchNode:reorderBatch(reorder) end
---*
---@return cc.Texture2D
function SpriteBatchNode:getTexture() end
---*
---@param texture cc.Texture2D
---@return self
function SpriteBatchNode:setTexture(texture) end
---*  Removes a child given a certain index. It will also cleanup the running actions depending on the cleanup parameter.<br>
---* param index A certain index.<br>
---* param doCleanup Whether or not to cleanup the running actions.<br>
---* warning Removing a child from a SpriteBatchNode is very slow.
---@param index int
---@param doCleanup boolean
---@return self
function SpriteBatchNode:removeChildAtIndex(index, doCleanup) end
---*  Remove a sprite from Atlas. <br>
---* param sprite A Sprite.
---@param sprite cc.Sprite
---@return self
function SpriteBatchNode:removeSpriteFromAtlas(sprite) end
---*
---@param child cc.Sprite
---@param z int
---@param aTag int
---@return self
function SpriteBatchNode:addSpriteWithoutQuad(child, z, aTag) end
---*  Get the nearest index from the sprite in z.<br>
---* param sprite The parent sprite.<br>
---* param z Z order for drawing priority.<br>
---* return Index.
---@param sprite cc.Sprite
---@param z int
---@return int
function SpriteBatchNode:atlasIndexForChild(sprite, z) end
---*  Increase the Atlas Capacity.
---@return self
function SpriteBatchNode:increaseAtlasCapacity() end
---*  Get the Min image block index,in all child. <br>
---* param sprite The parent sprite.<br>
---* return Index.
---@param sprite cc.Sprite
---@return int
function SpriteBatchNode:lowestAtlasIndexInChild(sprite) end
---* lua NA
---@return cc.BlendFunc
function SpriteBatchNode:getBlendFunc() end
---*  initializes a SpriteBatchNode with a texture2d and capacity of children.<br>
---* The capacity will be increased in 33% in runtime if it runs out of space.
---@param tex cc.Texture2D
---@param capacity int
---@return boolean
function SpriteBatchNode:initWithTexture(tex, capacity) end
---*  Sets the TextureAtlas object. <br>
---* param textureAtlas The TextureAtlas object.
---@param textureAtlas cc.TextureAtlas
---@return self
function SpriteBatchNode:setTextureAtlas(textureAtlas) end
---*  reserves capacity for the batch node.<br>
---* If the current capacity is bigger, nothing happens.<br>
---* otherwise, a new capacity is allocated
---@param newCapacity int
---@return self
function SpriteBatchNode:reserveCapacity(newCapacity) end
---* js NA
---@param cleanup boolean
---@return self
function SpriteBatchNode:removeAllChildrenWithCleanup(cleanup) end
---*  Inserts a quad at a certain index into the texture atlas. The Sprite won't be added into the children array.<br>
---* This method should be called only when you are dealing with very big AtlasSprite and when most of the Sprite won't be updated.<br>
---* For example: a tile map (TMXMap) or a label with lots of characters (LabelBMFont).
---@param sprite cc.Sprite
---@param index int
---@return self
function SpriteBatchNode:insertQuadFromSprite(sprite, index) end
---*  initializes a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.<br>
---* The capacity will be increased in 33% in runtime if it runs out of space.<br>
---* The file will be loaded using the TextureMgr.<br>
---* js init<br>
---* lua init
---@param fileImage string
---@param capacity int
---@return boolean
function SpriteBatchNode:initWithFile(fileImage, capacity) end
---* code<br>
---* When this function bound into js or lua,the parameter will be changed.<br>
---* In js: var setBlendFunc(var src, var dst).<br>
---* endcode<br>
---* lua NA
---@param blendFunc cc.BlendFunc
---@return self
function SpriteBatchNode:setBlendFunc(blendFunc) end
---*  Rebuild index with a sprite all child. <br>
---* param parent The parent sprite.<br>
---* param index The child index.<br>
---* return Index.
---@param parent cc.Sprite
---@param index int
---@return int
function SpriteBatchNode:rebuildIndexInOrder(parent, index) end
---*  Returns the TextureAtlas object. <br>
---* return The TextureAtlas object.
---@return cc.TextureAtlas
function SpriteBatchNode:getTextureAtlas() end
---*  Get the Max image block index,in all child.<br>
---* param sprite The parent sprite.<br>
---* return Index.
---@param sprite cc.Sprite
---@return int
function SpriteBatchNode:highestAtlasIndexInChild(sprite) end
---*  Creates a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and capacity of children.<br>
---* The capacity will be increased in 33% in runtime if it runs out of space.<br>
---* The file will be loaded using the TextureMgr.<br>
---* param fileImage A file image (.png, .jpeg, .pvr, etc).<br>
---* param capacity The capacity of children.<br>
---* return Return an autorelease object.
---@param fileImage string
---@param capacity int
---@return self
function SpriteBatchNode:create(fileImage, capacity) end
---*  Creates a SpriteBatchNode with a texture2d and capacity of children.<br>
---* The capacity will be increased in 33% in runtime if it runs out of space.<br>
---* param tex A texture2d.<br>
---* param capacity The capacity of children.<br>
---* return Return an autorelease object.
---@param tex cc.Texture2D
---@param capacity int
---@return self
function SpriteBatchNode:createWithTexture(tex, capacity) end
---@overload fun(cc.Node:cc.Node,int:int,int2:string):self
---@overload fun(cc.Node:cc.Node,int:int,int:int):self
---@param child cc.Node
---@param zOrder int
---@param tag int
---@return self
function SpriteBatchNode:addChild(child, zOrder, tag) end
---* js NA
---@param renderer cc.Renderer
---@param transform mat4_table
---@param flags unsigned_int
---@return self
function SpriteBatchNode:draw(renderer, transform, flags) end
---* js NA
---@return string
function SpriteBatchNode:getDescription() end
---* js NA
---@param renderer cc.Renderer
---@param parentTransform mat4_table
---@param parentFlags unsigned_int
---@return self
function SpriteBatchNode:visit(renderer, parentTransform, parentFlags) end
---*
---@return self
function SpriteBatchNode:sortAllChildren() end
---*
---@param child cc.Node
---@param cleanup boolean
---@return self
function SpriteBatchNode:removeChild(child, cleanup) end
---*
---@return boolean
function SpriteBatchNode:init() end
---* Set ProgramState
---@param programState cc.backend.ProgramState
---@return self
function SpriteBatchNode:setProgramState(programState) end
---*
---@param child cc.Node
---@param zOrder int
---@return self
function SpriteBatchNode:reorderChild(child, zOrder) end
---* js ctor
---@return self
function SpriteBatchNode:SpriteBatchNode() end
