---@class ccb.Program :cc.Ref local Program={ } ccb.Program=Program ---* Get maximum vertex location.
---* return Maximum vertex locaiton. ---@return int function Program:getMaxVertexLocation () end ---* Get maximum fragment location.
---* return Maximum fragment location. ---@return int function Program:getMaxFragmentLocation () end ---* Get fragment shader.
---* Fragment shader. ---@return string function Program:getFragmentShader () end ---* Get uniform buffer size in bytes that can hold all the uniforms.
---* param stage Specifies the shader stage. The symbolic constant can be either VERTEX or FRAGMENT.
---* return The uniform buffer size in bytes. ---@param stage int ---@return unsigned_int function Program:getUniformBufferSize (stage) end ---@overload fun(string0:int):self ---@overload fun(string:string):self ---@param uniform string ---@return cc.backend.UniformLocation function Program:getUniformLocation (uniform) end ---* Get engine built-in program type.
---* return The built-in program type. ---@return int function Program:getProgramType () end ---* Get active vertex attributes.
---* return Active vertex attributes. key is active attribute name, Value is corresponding attribute info. ---@return map_table function Program:getActiveAttributes () end ---@overload fun(string0:int):self ---@overload fun(string:string):self ---@param name string ---@return int function Program:getAttributeLocation (name) end ---* Get vertex shader.
---* return Vertex shader. ---@return string function Program:getVertexShader () end ---* Get engine built-in program.
---* param type Specifies the built-in program type. ---@param type int ---@return cc.backend.Program function Program:getBuiltinProgram (type) end