---@meta
---@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