summaryrefslogtreecommitdiff
path: root/tools/ReiLua_API.lua
diff options
context:
space:
mode:
authorIndrajith K L2025-11-03 19:52:16 +0530
committerGitHub2025-11-03 19:52:16 +0530
commit5dbff50ca2c10d7b3ba01fbd1a8d99259706e288 (patch)
tree39fddf62f7f3c8e52ac87e0f1dd2b2b7b9285f16 /tools/ReiLua_API.lua
parent02d6be119fa130121a04799e81aff203472b6233 (diff)
parente19bddd8d7b77e6aa173b8138b31679415afb3fa (diff)
downloadreilua-enhanced-5dbff50ca2c10d7b3ba01fbd1a8d99259706e288.tar.gz
reilua-enhanced-5dbff50ca2c10d7b3ba01fbd1a8d99259706e288.tar.bz2
reilua-enhanced-5dbff50ca2c10d7b3ba01fbd1a8d99259706e288.zip
Merge pull request #2 from cooljith91112/chore/re-organize-files
chore: fix build scripts and update project organization
Diffstat (limited to 'tools/ReiLua_API.lua')
-rw-r--r--tools/ReiLua_API.lua9054
1 files changed, 9054 insertions, 0 deletions
diff --git a/tools/ReiLua_API.lua b/tools/ReiLua_API.lua
new file mode 100644
index 0000000..1ba8b71
--- /dev/null
+++ b/tools/ReiLua_API.lua
@@ -0,0 +1,9054 @@
+-- Put this file into your project folder to provide annotations when using Lua language server.
+
+RL={}
+
+-- Functions.
+
+---This function will be called after window has been initialized. Should be used as the main init point.
+function RL.init() end
+---This function will be called every frame during execution. It will get time duration from last frame on argument 'delta'
+---@param delta number
+function RL.update( delta ) end
+---This function will be called every frame after update and it should have all rendering related functions. Note: Engine will call Raylib functions 'BeginDrawing()' before this function call and 'EndDrawing()' after it. You can still use RL.BeginDrawing() and RL.EndDrawing() manually from anywhere.
+function RL.draw() end
+---This function will be called on events input. Content of event table is determined by event type.
+---@param event table
+function RL.event( event ) end
+---This function can be used for custom log message handling.
+---@param logLevel integer
+---@param message string
+function RL.log( logLevel, message ) end
+---This function will be called on program close. Cleanup could be done here.
+function RL.exit() end
+---This function will be called before InitWindow. Note! Only place where you should call InitWindow manually. Doesn't have OpenGL context at this point.
+function RL.config() end
+
+-- Defines - System/Window config flags
+
+---Set to try enabling V-Sync on GPU
+RL.FLAG_VSYNC_HINT=64
+---Set to run program in fullscreen
+RL.FLAG_FULLSCREEN_MODE=2
+---Set to allow resizable window
+RL.FLAG_WINDOW_RESIZABLE=4
+---Set to disable window decoration (frame and buttons)
+RL.FLAG_WINDOW_UNDECORATED=8
+---Set to hide window
+RL.FLAG_WINDOW_HIDDEN=128
+---Set to minimize window (iconify)
+RL.FLAG_WINDOW_MINIMIZED=512
+---Set to maximize window (expanded to monitor)
+RL.FLAG_WINDOW_MAXIMIZED=1024
+---Set to window non focused
+RL.FLAG_WINDOW_UNFOCUSED=2048
+---Set to window always on top
+RL.FLAG_WINDOW_TOPMOST=4096
+---Set to allow windows running while minimized
+RL.FLAG_WINDOW_ALWAYS_RUN=256
+---Set to allow transparent framebuffer
+RL.FLAG_WINDOW_TRANSPARENT=16
+---Set to support HighDPI
+RL.FLAG_WINDOW_HIGHDPI=8192
+---Set to support mouse passthrough, only supported when FLAG_WINDOW_UNDECORATED
+RL.FLAG_WINDOW_MOUSE_PASSTHROUGH=16384
+---Set to try enabling MSAA 4X
+RL.FLAG_MSAA_4X_HINT=32
+---Set to try enabling interlaced video format (for V3D)
+RL.FLAG_INTERLACED_HINT=65536
+
+-- Defines - Trace log level
+
+---Display all logs
+RL.LOG_ALL=0
+---Trace logging, intended for internal use only
+RL.LOG_TRACE=1
+---Debug logging, used for internal debugging, it should be disabled on release builds
+RL.LOG_DEBUG=2
+---Info logging, used for program execution info
+RL.LOG_INFO=3
+---Warning logging, used on recoverable failures
+RL.LOG_WARNING=4
+---Error logging, used on unrecoverable failures
+RL.LOG_ERROR=5
+---Fatal logging, used to abort program: exit(EXIT_FAILURE)
+RL.LOG_FATAL=6
+---Disable logging
+RL.LOG_NONE=7
+
+-- Defines - Keyboard keys (US keyboard layout)
+
+---Key: NULL, used for no key pressed
+RL.KEY_NULL=0
+---Key: '
+RL.KEY_APOSTROPHE=39
+---Key: ,
+RL.KEY_COMMA=44
+---Key: -
+RL.KEY_MINUS=45
+---Key: .
+RL.KEY_PERIOD=46
+---Key: /
+RL.KEY_SLASH=47
+---Key: 0
+RL.KEY_ZERO=48
+---Key: 1
+RL.KEY_ONE=49
+---Key: 2
+RL.KEY_TWO=50
+---Key: 3
+RL.KEY_THREE=51
+---Key: 4
+RL.KEY_FOUR=52
+---Key: 5
+RL.KEY_FIVE=53
+---Key: 6
+RL.KEY_SIX=54
+---Key: 7
+RL.KEY_SEVEN=55
+---Key: 8
+RL.KEY_EIGHT=56
+---Key: 9
+RL.KEY_NINE=57
+---Key: ;
+RL.KEY_SEMICOLON=59
+---Key: =
+RL.KEY_EQUAL=61
+---Key: A | a
+RL.KEY_A=65
+---Key: B | b
+RL.KEY_B=66
+---Key: C | c
+RL.KEY_C=67
+---Key: D | d
+RL.KEY_D=68
+---Key: E | e
+RL.KEY_E=69
+---Key: F | f
+RL.KEY_F=70
+---Key: G | g
+RL.KEY_G=71
+---Key: H | h
+RL.KEY_H=72
+---Key: I | i
+RL.KEY_I=73
+---Key: J | j
+RL.KEY_J=74
+---Key: K | k
+RL.KEY_K=75
+---Key: L | l
+RL.KEY_L=76
+---Key: M | m
+RL.KEY_M=77
+---Key: N | n
+RL.KEY_N=78
+---Key: O | o
+RL.KEY_O=79
+---Key: P | p
+RL.KEY_P=80
+---Key: Q | q
+RL.KEY_Q=81
+---Key: R | r
+RL.KEY_R=82
+---Key: S | s
+RL.KEY_S=83
+---Key: T | t
+RL.KEY_T=84
+---Key: U | u
+RL.KEY_U=85
+---Key: V | v
+RL.KEY_V=86
+---Key: W | w
+RL.KEY_W=87
+---Key: X | x
+RL.KEY_X=88
+---Key: Y | y
+RL.KEY_Y=89
+---Key: Z | z
+RL.KEY_Z=90
+---Key: [
+RL.KEY_LEFT_BRACKET=91
+---Key: '\'
+RL.KEY_BACKSLASH=92
+---Key: ]
+RL.KEY_RIGHT_BRACKET=93
+---Key: `
+RL.KEY_GRAVE=96
+---Key: Space
+RL.KEY_SPACE=32
+---Key: Esc
+RL.KEY_ESCAPE=256
+---Key: Enter
+RL.KEY_ENTER=257
+---Key: Tab
+RL.KEY_TAB=258
+---Key: Backspace
+RL.KEY_BACKSPACE=259
+---Key: Ins
+RL.KEY_INSERT=260
+---Key: Del
+RL.KEY_DELETE=261
+---Key: Cursor right
+RL.KEY_RIGHT=262
+---Key: Cursor left
+RL.KEY_LEFT=263
+---Key: Cursor down
+RL.KEY_DOWN=264
+---Key: Cursor up
+RL.KEY_UP=265
+---Key: Page up
+RL.KEY_PAGE_UP=266
+---Key: Page down
+RL.KEY_PAGE_DOWN=267
+---Key: Home
+RL.KEY_HOME=268
+---Key: End
+RL.KEY_END=269
+---Key: Caps lock
+RL.KEY_CAPS_LOCK=280
+---Key: Scroll down
+RL.KEY_SCROLL_LOCK=281
+---Key: Num lock
+RL.KEY_NUM_LOCK=282
+---Key: Print screen
+RL.KEY_PRINT_SCREEN=283
+---Key: Pause
+RL.KEY_PAUSE=284
+---Key: F1
+RL.KEY_F1=290
+---Key: F2
+RL.KEY_F2=291
+---Key: F3
+RL.KEY_F3=292
+---Key: F4
+RL.KEY_F4=293
+---Key: F5
+RL.KEY_F5=294
+---Key: F6
+RL.KEY_F6=295
+---Key: F7
+RL.KEY_F7=296
+---Key: F8
+RL.KEY_F8=297
+---Key: F9
+RL.KEY_F9=298
+---Key: F10
+RL.KEY_F10=299
+---Key: F11
+RL.KEY_F11=300
+---Key: F12
+RL.KEY_F12=301
+---Key: Shift left
+RL.KEY_LEFT_SHIFT=340
+---Key: Control left
+RL.KEY_LEFT_CONTROL=341
+---Key: Alt left
+RL.KEY_LEFT_ALT=342
+---Key: Super left
+RL.KEY_LEFT_SUPER=343
+---Key: Shift right
+RL.KEY_RIGHT_SHIFT=344
+---Key: Control right
+RL.KEY_RIGHT_CONTROL=345
+---Key: Alt right
+RL.KEY_RIGHT_ALT=346
+---Key: Super right
+RL.KEY_RIGHT_SUPER=347
+---Key: KB menu
+RL.KEY_KB_MENU=348
+---Key: Keypad 0
+RL.KEY_KP_0=320
+---Key: Keypad 1
+RL.KEY_KP_1=321
+---Key: Keypad 2
+RL.KEY_KP_2=322
+---Key: Keypad 3
+RL.KEY_KP_3=323
+---Key: Keypad 4
+RL.KEY_KP_4=324
+---Key: Keypad 5
+RL.KEY_KP_5=325
+---Key: Keypad 6
+RL.KEY_KP_6=326
+---Key: Keypad 7
+RL.KEY_KP_7=327
+---Key: Keypad 8
+RL.KEY_KP_8=328
+---Key: Keypad 9
+RL.KEY_KP_9=329
+---Key: Keypad .
+RL.KEY_KP_DECIMAL=330
+---Key: Keypad /
+RL.KEY_KP_DIVIDE=331
+---Key: Keypad *
+RL.KEY_KP_MULTIPLY=332
+---Key: Keypad -
+RL.KEY_KP_SUBTRACT=333
+---Key: Keypad +
+RL.KEY_KP_ADD=334
+---Key: Keypad Enter
+RL.KEY_KP_ENTER=335
+---Key: Keypad =
+RL.KEY_KP_EQUAL=336
+---Key: Android back button
+RL.KEY_BACK=4
+---Key: Android menu button
+RL.KEY_MENU=5
+---Key: Android volume up button
+RL.KEY_VOLUME_UP=24
+---Key: Android volume down button
+RL.KEY_VOLUME_DOWN=25
+
+-- Defines - Mouse buttons
+
+---Mouse button left
+RL.MOUSE_BUTTON_LEFT=0
+---Mouse button right
+RL.MOUSE_BUTTON_RIGHT=1
+---Mouse button middle (pressed wheel)
+RL.MOUSE_BUTTON_MIDDLE=2
+---Mouse button side (advanced mouse device)
+RL.MOUSE_BUTTON_SIDE=3
+---Mouse button extra (advanced mouse device)
+RL.MOUSE_BUTTON_EXTRA=4
+---Mouse button forward (advanced mouse device)
+RL.MOUSE_BUTTON_FORWARD=5
+---Mouse button back (advanced mouse device)
+RL.MOUSE_BUTTON_BACK=6
+
+-- Defines - Mouse cursor
+
+---Default pointer shape
+RL.MOUSE_CURSOR_DEFAULT=0
+---Arrow shape
+RL.MOUSE_CURSOR_ARROW=1
+---Text writing cursor shape
+RL.MOUSE_CURSOR_IBEAM=2
+---Cross shape
+RL.MOUSE_CURSOR_CROSSHAIR=3
+---Pointing hand cursor
+RL.MOUSE_CURSOR_POINTING_HAND=4
+---Horizontal resize/move arrow shape
+RL.MOUSE_CURSOR_RESIZE_EW=5
+---Vertical resize/move arrow shape
+RL.MOUSE_CURSOR_RESIZE_NS=6
+---Top-left to bottom-right diagonal resize/move arrow shape
+RL.MOUSE_CURSOR_RESIZE_NWSE=7
+---The top-right to bottom-left diagonal resize/move arrow shape
+RL.MOUSE_CURSOR_RESIZE_NESW=8
+---The omnidirectional resize/move cursor shape
+RL.MOUSE_CURSOR_RESIZE_ALL=9
+---The operation-not-allowed shape
+RL.MOUSE_CURSOR_NOT_ALLOWED=10
+
+-- Defines - Gamepad buttons
+
+---Unknown button, just for error checking
+RL.GAMEPAD_BUTTON_UNKNOWN=0
+---Gamepad left DPAD up button
+RL.GAMEPAD_BUTTON_LEFT_FACE_UP=1
+---Gamepad left DPAD right button
+RL.GAMEPAD_BUTTON_LEFT_FACE_RIGHT=2
+---Gamepad left DPAD down button
+RL.GAMEPAD_BUTTON_LEFT_FACE_DOWN=3
+---Gamepad left DPAD left button
+RL.GAMEPAD_BUTTON_LEFT_FACE_LEFT=4
+---Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)
+RL.GAMEPAD_BUTTON_RIGHT_FACE_UP=5
+---Gamepad right button right (i.e. PS3: Square, Xbox: X)
+RL.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT=6
+---Gamepad right button down (i.e. PS3: Cross, Xbox: A)
+RL.GAMEPAD_BUTTON_RIGHT_FACE_DOWN=7
+---Gamepad right button left (i.e. PS3: Circle, Xbox: B)
+RL.GAMEPAD_BUTTON_RIGHT_FACE_LEFT=8
+---Gamepad top/back trigger left (first), it could be a trailing button
+RL.GAMEPAD_BUTTON_LEFT_TRIGGER_1=9
+---Gamepad top/back trigger left (second), it could be a trailing button
+RL.GAMEPAD_BUTTON_LEFT_TRIGGER_2=10
+---Gamepad top/back trigger right (one), it could be a trailing button
+RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_1=11
+---Gamepad top/back trigger right (second), it could be a trailing button
+RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_2=12
+---Gamepad center buttons, left one (i.e. PS3: Select)
+RL.GAMEPAD_BUTTON_MIDDLE_LEFT=13
+---Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)
+RL.GAMEPAD_BUTTON_MIDDLE=14
+---Gamepad center buttons, right one (i.e. PS3: Start)
+RL.GAMEPAD_BUTTON_MIDDLE_RIGHT=15
+---Gamepad joystick pressed button left
+RL.GAMEPAD_BUTTON_LEFT_THUMB=16
+---Gamepad joystick pressed button right
+RL.GAMEPAD_BUTTON_RIGHT_THUMB=17
+
+-- Defines - Gamepad axis
+
+---Gamepad left stick X axis
+RL.GAMEPAD_AXIS_LEFT_X=0
+---Gamepad left stick Y axis
+RL.GAMEPAD_AXIS_LEFT_Y=1
+---Gamepad right stick X axis
+RL.GAMEPAD_AXIS_RIGHT_X=2
+---Gamepad right stick Y axis
+RL.GAMEPAD_AXIS_RIGHT_Y=3
+---Gamepad back trigger left, pressure level: [1..-1]
+RL.GAMEPAD_AXIS_LEFT_TRIGGER=4
+---Gamepad back trigger right, pressure level: [1..-1]
+RL.GAMEPAD_AXIS_RIGHT_TRIGGER=5
+
+-- Defines - Material map index
+
+---Albedo material (same as: MATERIAL_MAP_DIFFUSE)
+RL.MATERIAL_MAP_ALBEDO=0
+---Metalness material (same as: MATERIAL_MAP_SPECULAR)
+RL.MATERIAL_MAP_METALNESS=1
+---Normal material
+RL.MATERIAL_MAP_NORMAL=2
+---Roughness material
+RL.MATERIAL_MAP_ROUGHNESS=3
+---Ambient occlusion material
+RL.MATERIAL_MAP_OCCLUSION=4
+---Emission material
+RL.MATERIAL_MAP_EMISSION=5
+---Heightmap material
+RL.MATERIAL_MAP_HEIGHT=6
+---Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+RL.MATERIAL_MAP_CUBEMAP=7
+---Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+RL.MATERIAL_MAP_IRRADIANCE=8
+---Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)
+RL.MATERIAL_MAP_PREFILTER=9
+---Brdf material
+RL.MATERIAL_MAP_BRDF=10
+---Diffuce material (same as: MATERIAL_MAP_ALBEDO)
+RL.MATERIAL_MAP_DIFFUSE=0
+---Specular material (same as: MATERIAL_MAP_METALNESS)
+RL.MATERIAL_MAP_SPECULAR=1
+
+-- Defines - Shader location index
+
+---Shader location: vertex attribute: position
+RL.SHADER_LOC_VERTEX_POSITION=0
+---Shader location: vertex attribute: texcoord01
+RL.SHADER_LOC_VERTEX_TEXCOORD01=1
+---Shader location: vertex attribute: texcoord02
+RL.SHADER_LOC_VERTEX_TEXCOORD02=2
+---Shader location: vertex attribute: normal
+RL.SHADER_LOC_VERTEX_NORMAL=3
+---Shader location: vertex attribute: tangent
+RL.SHADER_LOC_VERTEX_TANGENT=4
+---Shader location: vertex attribute: color
+RL.SHADER_LOC_VERTEX_COLOR=5
+---Shader location: matrix uniform: model-view-projection
+RL.SHADER_LOC_MATRIX_MVP=6
+---Shader location: matrix uniform: view (camera transform)
+RL.SHADER_LOC_MATRIX_VIEW=7
+---Shader location: matrix uniform: projection
+RL.SHADER_LOC_MATRIX_PROJECTION=8
+---Shader location: matrix uniform: model (transform)
+RL.SHADER_LOC_MATRIX_MODEL=9
+---Shader location: matrix uniform: normal
+RL.SHADER_LOC_MATRIX_NORMAL=10
+---Shader location: vector uniform: view
+RL.SHADER_LOC_VECTOR_VIEW=11
+---Shader location: vector uniform: diffuse color
+RL.SHADER_LOC_COLOR_DIFFUSE=12
+---Shader location: vector uniform: specular color
+RL.SHADER_LOC_COLOR_SPECULAR=13
+---Shader location: vector uniform: ambient color
+RL.SHADER_LOC_COLOR_AMBIENT=14
+---Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)
+RL.SHADER_LOC_MAP_ALBEDO=15
+---Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)
+RL.SHADER_LOC_MAP_METALNESS=16
+---Shader location: sampler2d texture: normal
+RL.SHADER_LOC_MAP_NORMAL=17
+---Shader location: sampler2d texture: roughness
+RL.SHADER_LOC_MAP_ROUGHNESS=18
+---Shader location: sampler2d texture: occlusion
+RL.SHADER_LOC_MAP_OCCLUSION=19
+---Shader location: sampler2d texture: emission
+RL.SHADER_LOC_MAP_EMISSION=20
+---Shader location: sampler2d texture: height
+RL.SHADER_LOC_MAP_HEIGHT=21
+---Shader location: samplerCube texture: cubemap
+RL.SHADER_LOC_MAP_CUBEMAP=22
+---Shader location: samplerCube texture: irradiance
+RL.SHADER_LOC_MAP_IRRADIANCE=23
+---Shader location: samplerCube texture: prefilter
+RL.SHADER_LOC_MAP_PREFILTER=24
+---Shader location: sampler2d texture: brdf
+RL.SHADER_LOC_MAP_BRDF=25
+---Shader location: vertex attribute: boneIds
+RL.SHADER_LOC_VERTEX_BONEIDS=26
+---Shader location: vertex attribute: boneWeights
+RL.SHADER_LOC_VERTEX_BONEWEIGHTS=27
+---Shader location: array of matrices uniform: boneMatrices
+RL.SHADER_LOC_BONE_MATRICES=28
+---Shader location: sampler2d texture: diffuce (same as: SHADER_LOC_MAP_ALBEDO)
+RL.SHADER_LOC_MAP_DIFFUSE=15
+---Shader location: sampler2d texture: specular (same as: SHADER_LOC_MAP_METALNESS)
+RL.SHADER_LOC_MAP_SPECULAR=16
+
+-- Defines - Shader uniform data type
+
+---Shader uniform type: float
+RL.SHADER_UNIFORM_FLOAT=0
+---Shader uniform type: vec2 (2 float)
+RL.SHADER_UNIFORM_VEC2=1
+---Shader uniform type: vec3 (3 float)
+RL.SHADER_UNIFORM_VEC3=2
+---Shader uniform type: vec4 (4 float)
+RL.SHADER_UNIFORM_VEC4=3
+---Shader uniform type: int
+RL.SHADER_UNIFORM_INT=4
+---Shader uniform type: ivec2 (2 int)
+RL.SHADER_UNIFORM_IVEC2=5
+---Shader uniform type: ivec3 (3 int)
+RL.SHADER_UNIFORM_IVEC3=6
+---Shader uniform type: ivec4 (4 int)
+RL.SHADER_UNIFORM_IVEC4=7
+---Shader uniform type: sampler2d
+RL.SHADER_UNIFORM_SAMPLER2D=8
+
+-- Defines - Shader attribute data types
+
+---Shader attribute type: float
+RL.SHADER_ATTRIB_FLOAT=0
+---Shader attribute type: vec2 (2 float)
+RL.SHADER_ATTRIB_VEC2=1
+---Shader attribute type: vec3 (3 float)
+RL.SHADER_ATTRIB_VEC3=2
+---Shader attribute type: vec4 (4 float)
+RL.SHADER_ATTRIB_VEC4=3
+
+-- Defines - Pixel formats
+
+---8 bit per pixel (no alpha)
+RL.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE=1
+---8*2 bpp (2 channels)
+RL.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA=2
+---16 bpp
+RL.PIXELFORMAT_UNCOMPRESSED_R5G6B5=3
+---24 bpp
+RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8=4
+---16 bpp (1 bit alpha)
+RL.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1=5
+---16 bpp (4 bit alpha)
+RL.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4=6
+---32 bpp
+RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8=7
+---32 bpp (1 channel - float)
+RL.PIXELFORMAT_UNCOMPRESSED_R32=8
+---32*3 bpp (3 channels - float)
+RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32=9
+---32*4 bpp (4 channels - float)
+RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32=10
+---4 bpp (no alpha)
+RL.PIXELFORMAT_COMPRESSED_DXT1_RGB=14
+---4 bpp (1 bit alpha)
+RL.PIXELFORMAT_COMPRESSED_DXT1_RGBA=15
+---8 bpp
+RL.PIXELFORMAT_COMPRESSED_DXT3_RGBA=16
+---8 bpp
+RL.PIXELFORMAT_COMPRESSED_DXT5_RGBA=17
+---4 bpp
+RL.PIXELFORMAT_COMPRESSED_ETC1_RGB=18
+---4 bpp
+RL.PIXELFORMAT_COMPRESSED_ETC2_RGB=19
+---8 bpp
+RL.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA=20
+---4 bpp
+RL.PIXELFORMAT_COMPRESSED_PVRT_RGB=21
+---4 bpp
+RL.PIXELFORMAT_COMPRESSED_PVRT_RGBA=22
+---8 bpp
+RL.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA=23
+---2 bpp
+RL.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA=24
+
+-- Defines - Texture parameters: filter mode
+
+---No filter, just pixel approximation
+RL.TEXTURE_FILTER_POINT=0
+---Linear filtering
+RL.TEXTURE_FILTER_BILINEAR=1
+---Trilinear filtering (linear with mipmaps)
+RL.TEXTURE_FILTER_TRILINEAR=2
+---Anisotropic filtering 4x
+RL.TEXTURE_FILTER_ANISOTROPIC_4X=3
+---Anisotropic filtering 8x
+RL.TEXTURE_FILTER_ANISOTROPIC_8X=4
+---Anisotropic filtering 16x
+RL.TEXTURE_FILTER_ANISOTROPIC_16X=5
+
+-- Defines - Texture parameters: wrap mode
+
+---Repeats texture in tiled mode
+RL.TEXTURE_WRAP_REPEAT=0
+---Clamps texture to edge pixel in tiled mode
+RL.TEXTURE_WRAP_CLAMP=1
+---Mirrors and repeats the texture in tiled mode
+RL.TEXTURE_WRAP_MIRROR_REPEAT=2
+---Mirrors and clamps to border the texture in tiled mode
+RL.TEXTURE_WRAP_MIRROR_CLAMP=3
+
+-- Defines - Cubemap layouts
+
+---Automatically detect layout type
+RL.CUBEMAP_LAYOUT_AUTO_DETECT=0
+---Layout is defined by a vertical line with faces
+RL.CUBEMAP_LAYOUT_LINE_VERTICAL=1
+---Layout is defined by a horizontal line with faces
+RL.CUBEMAP_LAYOUT_LINE_HORIZONTAL=2
+---Layout is defined by a 3x4 cross with cubemap faces
+RL.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR=3
+---Layout is defined by a 4x3 cross with cubemap faces
+RL.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE=4
+
+-- Defines - Font type, defines generation method
+
+---Default font generation, anti-aliased
+RL.FONT_DEFAULT=0
+---Bitmap font generation, no anti-aliasing
+RL.FONT_BITMAP=1
+---SDF font generation, requires external shader
+RL.FONT_SDF=2
+
+-- Defines - Color blending modes (pre-defined)
+
+---Blend textures considering alpha (default)
+RL.BLEND_ALPHA=0
+---Blend textures adding colors
+RL.BLEND_ADDITIVE=1
+---Blend textures multiplying colors
+RL.BLEND_MULTIPLIED=2
+---Blend textures adding colors (alternative)
+RL.BLEND_ADD_COLORS=3
+---Blend textures subtracting colors (alternative)
+RL.BLEND_SUBTRACT_COLORS=4
+---Blend premultiplied textures considering alpha
+RL.BLEND_ALPHA_PREMULTIPLY=5
+---Blend textures using custom src/dst factors (use rlSetBlendFactors())
+RL.BLEND_CUSTOM=6
+---Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate())
+RL.BLEND_CUSTOM_SEPARATE=7
+
+-- Defines - Gesture
+
+---No gesture
+RL.GESTURE_NONE=0
+---Tap gesture
+RL.GESTURE_TAP=1
+---Double tap gesture
+RL.GESTURE_DOUBLETAP=2
+---Hold gesture
+RL.GESTURE_HOLD=4
+---Drag gesture
+RL.GESTURE_DRAG=8
+---Swipe right gesture
+RL.GESTURE_SWIPE_RIGHT=16
+---Swipe left gesture
+RL.GESTURE_SWIPE_LEFT=32
+---Swipe up gesture
+RL.GESTURE_SWIPE_UP=64
+---Swipe down gesture
+RL.GESTURE_SWIPE_DOWN=128
+---Pinch in gesture
+RL.GESTURE_PINCH_IN=256
+---Pinch out gesture
+RL.GESTURE_PINCH_OUT=512
+
+-- Defines - Camera system modes
+
+---Custom camera
+RL.CAMERA_CUSTOM=0
+---Free camera
+RL.CAMERA_FREE=1
+---Orbital camera
+RL.CAMERA_ORBITAL=2
+---First person camera
+RL.CAMERA_FIRST_PERSON=3
+---Third person camera
+RL.CAMERA_THIRD_PERSON=4
+
+-- Defines - Camera projection
+
+---Perspective projection
+RL.CAMERA_PERSPECTIVE=0
+---Orthographic projection
+RL.CAMERA_ORTHOGRAPHIC=1
+
+-- Defines - N-patch layout
+
+---Npatch layout: 3x3 tiles
+RL.NPATCH_NINE_PATCH=0
+---Npatch layout: 1x3 tiles
+RL.NPATCH_THREE_PATCH_VERTICAL=1
+---Npatch layout: 3x1 tiles
+RL.NPATCH_THREE_PATCH_HORIZONTAL=2
+
+-- Defines - Colors
+
+---Light Gray
+RL.LIGHTGRAY={200,200,200,255}
+---Gray
+RL.GRAY={130,130,130,255}
+---Dark Gray
+RL.DARKGRAY={80,80,80,255}
+---Yellow
+RL.YELLOW={253,249,0,255}
+---Gold
+RL.GOLD={255,203,0,255}
+---Orange
+RL.ORANGE={255,161,0,255}
+---Pink
+RL.PINK={255,109,194,255}
+---Red
+RL.RED={230,41,55,255}
+---Maroon
+RL.MAROON={190,33,55,255}
+---Green
+RL.GREEN={0,228,48,255}
+---Lime
+RL.LIME={0,158,47,255}
+---Dark Green
+RL.DARKGREEN={0,117,44,255}
+---Sky Blue
+RL.SKYBLUE={102,191,255,255}
+---Blue
+RL.BLUE={0,121,241,255}
+---Dark Blue
+RL.DARKBLUE={0,82,172,255}
+---Purple
+RL.PURPLE={200,122,255,255}
+---Violet
+RL.VIOLET={135,60,190,255}
+---Dark Purple
+RL.DARKPURPLE={112,31,126,255}
+---Beige
+RL.BEIGE={211,176,131,255}
+---Brown
+RL.BROWN={127,106,79,255}
+---Dark Brown
+RL.DARKBROWN={76,63,47,255}
+---White
+RL.WHITE={255,255,255,255}
+---Black
+RL.BLACK={0,0,0,255}
+---Blank (Transparent)
+RL.BLANK={0,0,0,0}
+---Magenta
+RL.MAGENTA={255,0,255,255}
+---My own White (raylib logo)
+RL.RAYWHITE={245,245,245,255}
+
+-- Defines - Math
+
+---Pi
+RL.PI=3.1415927410126
+---Epsilon
+RL.EPSILON=9.9999999747524e-07
+---Degrees to radians
+RL.DEG2RAD=0.017453292384744
+---Radians to degrees
+RL.RAD2DEG=57.295776367188
+
+-- Defines - Gui control state
+
+RL.STATE_NORMAL=0
+RL.STATE_FOCUSED=1
+RL.STATE_PRESSED=2
+RL.STATE_DISABLED=3
+
+-- Defines - Gui control text alignment
+
+RL.TEXT_ALIGN_LEFT=0
+RL.TEXT_ALIGN_CENTER=1
+RL.TEXT_ALIGN_RIGHT=2
+
+-- Defines - Gui control text alignment vertical
+
+RL.TEXT_ALIGN_TOP=0
+RL.TEXT_ALIGN_MIDDLE=1
+RL.TEXT_ALIGN_BOTTOM=2
+
+-- Defines - Gui control text wrap mode
+
+RL.TEXT_WRAP_NONE=0
+RL.TEXT_WRAP_CHAR=1
+RL.TEXT_WRAP_WORD=2
+
+-- Defines - Gui controls
+
+RL.DEFAULT=0
+---Used also for: LABELBUTTON
+RL.LABEL=1
+RL.BUTTON=2
+---Used also for: TOGGLEGROUP
+RL.TOGGLE=3
+---Used also for: SLIDERBAR
+RL.SLIDER=4
+RL.PROGRESSBAR=5
+RL.CHECKBOX=6
+RL.COMBOBOX=7
+RL.DROPDOWNBOX=8
+---Used also for: TEXTBOXMULTI
+RL.TEXTBOX=9
+RL.VALUEBOX=10
+---Uses: BUTTON, VALUEBOX
+RL.SPINNER=11
+RL.LISTVIEW=12
+RL.COLORPICKER=13
+RL.SCROLLBAR=14
+RL.STATUSBAR=15
+
+-- Defines - Gui base properties for every control
+
+RL.BORDER_COLOR_NORMAL=0
+RL.BASE_COLOR_NORMAL=1
+RL.TEXT_COLOR_NORMAL=2
+RL.BORDER_COLOR_FOCUSED=3
+RL.BASE_COLOR_FOCUSED=4
+RL.TEXT_COLOR_FOCUSED=5
+RL.BORDER_COLOR_PRESSED=6
+RL.BASE_COLOR_PRESSED=7
+RL.TEXT_COLOR_PRESSED=8
+RL.BORDER_COLOR_DISABLED=9
+RL.BASE_COLOR_DISABLED=10
+RL.TEXT_COLOR_DISABLED=11
+RL.BORDER_WIDTH=12
+RL.TEXT_PADDING=13
+RL.TEXT_ALIGNMENT=14
+
+-- Defines - Gui extended properties depend on control
+
+---Text size (glyphs max height)
+RL.TEXT_SIZE=16
+---Text spacing between glyphs
+RL.TEXT_SPACING=17
+---Line control color
+RL.LINE_COLOR=18
+---Background color
+RL.BACKGROUND_COLOR=19
+---Text spacing between lines
+RL.TEXT_LINE_SPACING=20
+---Text vertical alignment inside text bounds (after border and padding)
+RL.TEXT_ALIGNMENT_VERTICAL=21
+---Text wrap-mode inside text bounds
+RL.TEXT_WRAP_MODE=22
+
+-- Defines - Gui Toggle/ToggleGroup
+
+---ToggleGroup separation between toggles
+RL.GROUP_PADDING=16
+
+-- Defines - Gui Slider/SliderBar
+
+---Slider size of internal bar
+RL.SLIDER_WIDTH=16
+---Slider/SliderBar internal bar padding
+RL.SLIDER_PADDING=17
+
+-- Defines - Gui ProgressBar
+
+---ProgressBar internal padding
+RL.PROGRESS_PADDING=16
+
+-- Defines - Gui ScrollBar
+
+RL.ARROWS_SIZE=16
+RL.ARROWS_VISIBLE=17
+---(SLIDERBAR, SLIDER_PADDING)
+RL.SCROLL_SLIDER_PADDING=18
+RL.SCROLL_SLIDER_SIZE=19
+RL.SCROLL_PADDING=20
+RL.SCROLL_SPEED=21
+
+-- Defines - Gui CheckBox
+
+---CheckBox internal check padding
+RL.CHECK_PADDING=16
+
+-- Defines - Gui ComboBox
+
+---ComboBox right button width
+RL.COMBO_BUTTON_WIDTH=16
+---ComboBox button separation
+RL.COMBO_BUTTON_SPACING=17
+
+-- Defines - Gui DropdownBox
+
+---DropdownBox arrow separation from border and items
+RL.ARROW_PADDING=16
+---DropdownBox items separation
+RL.DROPDOWN_ITEMS_SPACING=17
+
+-- Defines - Gui TextBox/TextBoxMulti/ValueBox/Spinner
+
+---TextBox in read-only mode: 0-text editable, 1-text no-editable
+RL.TEXT_READONLY=16
+
+-- Defines - Gui Spinner
+
+---Spinner left/right buttons width
+RL.SPIN_BUTTON_WIDTH=16
+---Spinner buttons separation
+RL.SPIN_BUTTON_SPACING=17
+
+-- Defines - Gui ListView
+
+---ListView items height
+RL.LIST_ITEMS_HEIGHT=16
+---ListView items separation
+RL.LIST_ITEMS_SPACING=17
+---ListView scrollbar size (usually width)
+RL.SCROLLBAR_WIDTH=18
+---ListView scrollbar side (0-left, 1-right)
+RL.SCROLLBAR_SIDE=19
+
+-- Defines - Gui ColorPicker
+
+RL.COLOR_SELECTOR_SIZE=16
+---ColorPicker right hue bar width
+RL.HUEBAR_WIDTH=17
+---ColorPicker right hue bar separation from panel
+RL.HUEBAR_PADDING=18
+---ColorPicker right hue bar selector height
+RL.HUEBAR_SELECTOR_HEIGHT=19
+---ColorPicker right hue bar selector overflow
+RL.HUEBAR_SELECTOR_OVERFLOW=20
+
+-- Defines - Gui Icons enumeration
+
+RL.ICON_NONE=0
+RL.ICON_FOLDER_FILE_OPEN=1
+RL.ICON_FILE_SAVE_CLASSIC=2
+RL.ICON_FOLDER_OPEN=3
+RL.ICON_FOLDER_SAVE=4
+RL.ICON_FILE_OPEN=5
+RL.ICON_FILE_SAVE=6
+RL.ICON_FILE_EXPORT=7
+RL.ICON_FILE_ADD=8
+RL.ICON_FILE_DELETE=9
+RL.ICON_FILETYPE_TEXT=10
+RL.ICON_FILETYPE_AUDIO=11
+RL.ICON_FILETYPE_IMAGE=12
+RL.ICON_FILETYPE_PLAY=13
+RL.ICON_FILETYPE_VIDEO=14
+RL.ICON_FILETYPE_INFO=15
+RL.ICON_FILE_COPY=16
+RL.ICON_FILE_CUT=17
+RL.ICON_FILE_PASTE=18
+RL.ICON_CURSOR_HAND=19
+RL.ICON_CURSOR_POINTER=20
+RL.ICON_CURSOR_CLASSIC=21
+RL.ICON_PENCIL=22
+RL.ICON_PENCIL_BIG=23
+RL.ICON_BRUSH_CLASSIC=24
+RL.ICON_BRUSH_PAINTER=25
+RL.ICON_WATER_DROP=26
+RL.ICON_COLOR_PICKER=27
+RL.ICON_RUBBER=28
+RL.ICON_COLOR_BUCKET=29
+RL.ICON_TEXT_T=30
+RL.ICON_TEXT_A=31
+RL.ICON_SCALE=32
+RL.ICON_RESIZE=33
+RL.ICON_FILTER_POINT=34
+RL.ICON_FILTER_BILINEAR=35
+RL.ICON_CROP=36
+RL.ICON_CROP_ALPHA=37
+RL.ICON_SQUARE_TOGGLE=38
+RL.ICON_SYMMETRY=39
+RL.ICON_SYMMETRY_HORIZONTAL=40
+RL.ICON_SYMMETRY_VERTICAL=41
+RL.ICON_LENS=42
+RL.ICON_LENS_BIG=43
+RL.ICON_EYE_ON=44
+RL.ICON_EYE_OFF=45
+RL.ICON_FILTER_TOP=46
+RL.ICON_FILTER=47
+RL.ICON_TARGET_POINT=48
+RL.ICON_TARGET_SMALL=49
+RL.ICON_TARGET_BIG=50
+RL.ICON_TARGET_MOVE=51
+RL.ICON_CURSOR_MOVE=52
+RL.ICON_CURSOR_SCALE=53
+RL.ICON_CURSOR_SCALE_RIGHT=54
+RL.ICON_CURSOR_SCALE_LEFT=55
+RL.ICON_UNDO=56
+RL.ICON_REDO=57
+RL.ICON_REREDO=58
+RL.ICON_MUTATE=59
+RL.ICON_ROTATE=60
+RL.ICON_REPEAT=61
+RL.ICON_SHUFFLE=62
+RL.ICON_EMPTYBOX=63
+RL.ICON_TARGET=64
+RL.ICON_TARGET_SMALL_FILL=65
+RL.ICON_TARGET_BIG_FILL=66
+RL.ICON_TARGET_MOVE_FILL=67
+RL.ICON_CURSOR_MOVE_FILL=68
+RL.ICON_CURSOR_SCALE_FILL=69
+RL.ICON_CURSOR_SCALE_RIGHT_FILL=70
+RL.ICON_CURSOR_SCALE_LEFT_FILL=71
+RL.ICON_UNDO_FILL=72
+RL.ICON_REDO_FILL=73
+RL.ICON_REREDO_FILL=74
+RL.ICON_MUTATE_FILL=75
+RL.ICON_ROTATE_FILL=76
+RL.ICON_REPEAT_FILL=77
+RL.ICON_SHUFFLE_FILL=78
+RL.ICON_EMPTYBOX_SMALL=79
+RL.ICON_BOX=80
+RL.ICON_BOX_TOP=81
+RL.ICON_BOX_TOP_RIGHT=82
+RL.ICON_BOX_RIGHT=83
+RL.ICON_BOX_BOTTOM_RIGHT=84
+RL.ICON_BOX_BOTTOM=85
+RL.ICON_BOX_BOTTOM_LEFT=86
+RL.ICON_BOX_LEFT=87
+RL.ICON_BOX_TOP_LEFT=88
+RL.ICON_BOX_CENTER=89
+RL.ICON_BOX_CIRCLE_MASK=90
+RL.ICON_POT=91
+RL.ICON_ALPHA_MULTIPLY=92
+RL.ICON_ALPHA_CLEAR=93
+RL.ICON_DITHERING=94
+RL.ICON_MIPMAPS=95
+RL.ICON_BOX_GRID=96
+RL.ICON_GRID=97
+RL.ICON_BOX_CORNERS_SMALL=98
+RL.ICON_BOX_CORNERS_BIG=99
+RL.ICON_FOUR_BOXES=100
+RL.ICON_GRID_FILL=101
+RL.ICON_BOX_MULTISIZE=102
+RL.ICON_ZOOM_SMALL=103
+RL.ICON_ZOOM_MEDIUM=104
+RL.ICON_ZOOM_BIG=105
+RL.ICON_ZOOM_ALL=106
+RL.ICON_ZOOM_CENTER=107
+RL.ICON_BOX_DOTS_SMALL=108
+RL.ICON_BOX_DOTS_BIG=109
+RL.ICON_BOX_CONCENTRIC=110
+RL.ICON_BOX_GRID_BIG=111
+RL.ICON_OK_TICK=112
+RL.ICON_CROSS=113
+RL.ICON_ARROW_LEFT=114
+RL.ICON_ARROW_RIGHT=115
+RL.ICON_ARROW_DOWN=116
+RL.ICON_ARROW_UP=117
+RL.ICON_ARROW_LEFT_FILL=118
+RL.ICON_ARROW_RIGHT_FILL=119
+RL.ICON_ARROW_DOWN_FILL=120
+RL.ICON_ARROW_UP_FILL=121
+RL.ICON_AUDIO=122
+RL.ICON_FX=123
+RL.ICON_WAVE=124
+RL.ICON_WAVE_SINUS=125
+RL.ICON_WAVE_SQUARE=126
+RL.ICON_WAVE_TRIANGULAR=127
+RL.ICON_CROSS_SMALL=128
+RL.ICON_PLAYER_PREVIOUS=129
+RL.ICON_PLAYER_PLAY_BACK=130
+RL.ICON_PLAYER_PLAY=131
+RL.ICON_PLAYER_PAUSE=132
+RL.ICON_PLAYER_STOP=133
+RL.ICON_PLAYER_NEXT=134
+RL.ICON_PLAYER_RECORD=135
+RL.ICON_MAGNET=136
+RL.ICON_LOCK_CLOSE=137
+RL.ICON_LOCK_OPEN=138
+RL.ICON_CLOCK=139
+RL.ICON_TOOLS=140
+RL.ICON_GEAR=141
+RL.ICON_GEAR_BIG=142
+RL.ICON_BIN=143
+RL.ICON_HAND_POINTER=144
+RL.ICON_LASER=145
+RL.ICON_COIN=146
+RL.ICON_EXPLOSION=147
+RL.ICON_1UP=148
+RL.ICON_PLAYER=149
+RL.ICON_PLAYER_JUMP=150
+RL.ICON_KEY=151
+RL.ICON_DEMON=152
+RL.ICON_TEXT_POPUP=153
+RL.ICON_GEAR_EX=154
+RL.ICON_CRACK=155
+RL.ICON_CRACK_POINTS=156
+RL.ICON_STAR=157
+RL.ICON_DOOR=158
+RL.ICON_EXIT=159
+RL.ICON_MODE_2D=160
+RL.ICON_MODE_3D=161
+RL.ICON_CUBE=162
+RL.ICON_CUBE_FACE_TOP=163
+RL.ICON_CUBE_FACE_LEFT=164
+RL.ICON_CUBE_FACE_FRONT=165
+RL.ICON_CUBE_FACE_BOTTOM=166
+RL.ICON_CUBE_FACE_RIGHT=167
+RL.ICON_CUBE_FACE_BACK=168
+RL.ICON_CAMERA=169
+RL.ICON_SPECIAL=170
+RL.ICON_LINK_NET=171
+RL.ICON_LINK_BOXES=172
+RL.ICON_LINK_MULTI=173
+RL.ICON_LINK=174
+RL.ICON_LINK_BROKE=175
+RL.ICON_TEXT_NOTES=176
+RL.ICON_NOTEBOOK=177
+RL.ICON_SUITCASE=178
+RL.ICON_SUITCASE_ZIP=179
+RL.ICON_MAILBOX=180
+RL.ICON_MONITOR=181
+RL.ICON_PRINTER=182
+RL.ICON_PHOTO_CAMERA=183
+RL.ICON_PHOTO_CAMERA_FLASH=184
+RL.ICON_HOUSE=185
+RL.ICON_HEART=186
+RL.ICON_CORNER=187
+RL.ICON_VERTICAL_BARS=188
+RL.ICON_VERTICAL_BARS_FILL=189
+RL.ICON_LIFE_BARS=190
+RL.ICON_INFO=191
+RL.ICON_CROSSLINE=192
+RL.ICON_HELP=193
+RL.ICON_FILETYPE_ALPHA=194
+RL.ICON_FILETYPE_HOME=195
+RL.ICON_LAYERS_VISIBLE=196
+RL.ICON_LAYERS=197
+RL.ICON_WINDOW=198
+RL.ICON_HIDPI=199
+RL.ICON_FILETYPE_BINARY=200
+RL.ICON_HEX=201
+RL.ICON_SHIELD=202
+RL.ICON_FILE_NEW=203
+RL.ICON_FOLDER_ADD=204
+RL.ICON_ALARM=205
+RL.ICON_CPU=206
+RL.ICON_ROM=207
+RL.ICON_STEP_OVER=208
+RL.ICON_STEP_INTO=209
+RL.ICON_STEP_OUT=210
+RL.ICON_RESTART=211
+RL.ICON_BREAKPOINT_ON=212
+RL.ICON_BREAKPOINT_OFF=213
+RL.ICON_BURGER_MENU=214
+RL.ICON_CASE_SENSITIVE=215
+RL.ICON_REG_EXP=216
+RL.ICON_FOLDER=217
+RL.ICON_FILE=218
+RL.ICON_SAND_TIMER=219
+
+-- Defines - Light type
+
+---Directional light
+RL.LIGHT_DIRECTIONAL=0
+---Point light
+RL.LIGHT_POINT=1
+
+-- Defines - RLGL Default internal render batch elements limits
+
+---Default internal render batch elements limits
+RL.RL_DEFAULT_BATCH_BUFFER_ELEMENTS=8192
+---Default number of batch buffers (multi-buffering)
+RL.RL_DEFAULT_BATCH_BUFFERS=1
+---Default number of batch draw calls (by state changes: mode, texture)
+RL.RL_DEFAULT_BATCH_DRAWCALLS=256
+---Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture())
+RL.RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS=4
+
+-- Defines - RLGL Internal Matrix stack
+
+---Maximum size of internal Matrix stack
+RL.RL_MAX_MATRIX_STACK_SIZE=32
+
+-- Defines - RLGL Shader limits
+
+---Maximum number of shader locations supported
+RL.RL_MAX_SHADER_LOCATIONS=32
+
+-- Defines - RLGL Projection matrix culling
+
+---Default projection matrix near cull distance
+RL.RL_CULL_DISTANCE_NEAR=0.01
+---Default projection matrix far cull distance
+RL.RL_CULL_DISTANCE_FAR=1000
+
+-- Defines - RLGL Texture parameters
+
+---GL_TEXTURE_WRAP_S
+RL.RL_TEXTURE_WRAP_S=10242
+---GL_TEXTURE_WRAP_T
+RL.RL_TEXTURE_WRAP_T=10243
+---GL_TEXTURE_MAG_FILTER
+RL.RL_TEXTURE_MAG_FILTER=10240
+---GL_TEXTURE_MIN_FILTER
+RL.RL_TEXTURE_MIN_FILTER=10241
+---GL_NEAREST
+RL.RL_TEXTURE_FILTER_NEAREST=9728
+---GL_LINEAR
+RL.RL_TEXTURE_FILTER_LINEAR=9729
+---GL_NEAREST_MIPMAP_NEAREST
+RL.RL_TEXTURE_FILTER_MIP_NEAREST=9984
+---GL_NEAREST_MIPMAP_LINEAR
+RL.RL_TEXTURE_FILTER_NEAREST_MIP_LINEAR=9986
+---GL_LINEAR_MIPMAP_NEAREST
+RL.RL_TEXTURE_FILTER_LINEAR_MIP_NEAREST=9985
+---GL_LINEAR_MIPMAP_LINEAR
+RL.RL_TEXTURE_FILTER_MIP_LINEAR=9987
+---Anisotropic filter (custom identifier)
+RL.RL_TEXTURE_FILTER_ANISOTROPIC=12288
+---Texture mipmap bias, percentage ratio (custom identifier)
+RL.RL_TEXTURE_MIPMAP_BIAS_RATIO=16384
+---GL_REPEAT
+RL.RL_TEXTURE_WRAP_REPEAT=10497
+---GL_CLAMP_TO_EDGE
+RL.RL_TEXTURE_WRAP_CLAMP=33071
+---GL_MIRRORED_REPEAT
+RL.RL_TEXTURE_WRAP_MIRROR_REPEAT=33648
+---GL_MIRROR_CLAMP_EXT
+RL.RL_TEXTURE_WRAP_MIRROR_CLAMP=34626
+
+-- Defines - RLGL Matrix modes (equivalent to OpenGL)
+
+---GL_MODELVIEW
+RL.RL_MODELVIEW=5888
+---GL_PROJECTION
+RL.RL_PROJECTION=5889
+---GL_TEXTURE
+RL.RL_TEXTURE=5890
+
+-- Defines - RLGL Primitive assembly draw modes
+
+---GL_LINES
+RL.RL_LINES=1
+---GL_TRIANGLES
+RL.RL_TRIANGLES=4
+---GL_QUADS
+RL.RL_QUADS=7
+
+-- Defines - RLGL GL equivalent data types
+
+---GL_UNSIGNED_BYTE
+RL.RL_UNSIGNED_BYTE=5121
+---GL_FLOAT
+RL.RL_FLOAT=5126
+
+-- Defines - RLGL GL buffer usage hint
+
+---GL_STREAM_DRAW
+RL.RL_STREAM_DRAW=35040
+---GL_STREAM_READ
+RL.RL_STREAM_READ=35041
+---GL_STREAM_COPY
+RL.RL_STREAM_COPY=35042
+---GL_STATIC_DRAW
+RL.RL_STATIC_DRAW=35044
+---GL_STATIC_READ
+RL.RL_STATIC_READ=35045
+---GL_STATIC_COPY
+RL.RL_STATIC_COPY=35046
+---GL_DYNAMIC_DRAW
+RL.RL_DYNAMIC_DRAW=35048
+---GL_DYNAMIC_READ
+RL.RL_DYNAMIC_READ=35049
+---GL_DYNAMIC_COPY
+RL.RL_DYNAMIC_COPY=35050
+
+-- Defines - RLGL Shader type
+
+---GL_FRAGMENT_SHADER
+RL.RL_FRAGMENT_SHADER=35632
+---GL_VERTEX_SHADER
+RL.RL_VERTEX_SHADER=35633
+---GL_COMPUTE_SHADER
+RL.RL_COMPUTE_SHADER=37305
+
+-- Defines - RLGL GL blending factors
+
+---GL_ZERO
+RL.RL_ZERO=0
+---GL_ONE
+RL.RL_ONE=1
+---GL_SRC_COLOR
+RL.RL_SRC_COLOR=768
+---GL_ONE_MINUS_SRC_COLOR
+RL.RL_ONE_MINUS_SRC_COLOR=769
+---GL_SRC_ALPHA
+RL.RL_SRC_ALPHA=770
+---GL_ONE_MINUS_SRC_ALPHA
+RL.RL_ONE_MINUS_SRC_ALPHA=771
+---GL_DST_ALPHA
+RL.RL_DST_ALPHA=772
+---GL_ONE_MINUS_DST_ALPHA
+RL.RL_ONE_MINUS_DST_ALPHA=773
+---GL_DST_COLOR
+RL.RL_DST_COLOR=774
+---GL_ONE_MINUS_DST_COLOR
+RL.RL_ONE_MINUS_DST_COLOR=775
+---GL_SRC_ALPHA_SATURATE
+RL.RL_SRC_ALPHA_SATURATE=776
+---GL_CONSTANT_COLOR
+RL.RL_CONSTANT_COLOR=32769
+---GL_ONE_MINUS_CONSTANT_COLOR
+RL.RL_ONE_MINUS_CONSTANT_COLOR=32770
+---GL_CONSTANT_ALPHA
+RL.RL_CONSTANT_ALPHA=32771
+---GL_ONE_MINUS_CONSTANT_ALPHA
+RL.RL_ONE_MINUS_CONSTANT_ALPHA=32772
+
+-- Defines - RLGL GL blending functions/equations
+
+---GL_FUNC_ADD
+RL.RL_FUNC_ADD=32774
+---GL_MIN
+RL.RL_MIN=32775
+---GL_MAX
+RL.RL_MAX=32776
+---GL_FUNC_SUBTRACT
+RL.RL_FUNC_SUBTRACT=32778
+---GL_FUNC_REVERSE_SUBTRACT
+RL.RL_FUNC_REVERSE_SUBTRACT=32779
+---GL_BLEND_EQUATION
+RL.RL_BLEND_EQUATION=32777
+---GL_BLEND_EQUATION_RGB // (Same as BLEND_EQUATION)
+RL.RL_BLEND_EQUATION_RGB=32777
+---GL_BLEND_EQUATION_ALPHA
+RL.RL_BLEND_EQUATION_ALPHA=34877
+---GL_BLEND_DST_RGB
+RL.RL_BLEND_DST_RGB=32968
+---GL_BLEND_SRC_RGB
+RL.RL_BLEND_SRC_RGB=32969
+---GL_BLEND_DST_ALPHA
+RL.RL_BLEND_DST_ALPHA=32970
+---GL_BLEND_SRC_ALPHA
+RL.RL_BLEND_SRC_ALPHA=32971
+---GL_BLEND_COLOR
+RL.RL_BLEND_COLOR=32773
+---GL_READ_FRAMEBUFFER
+RL.RL_READ_FRAMEBUFFER=36008
+---GL_DRAW_FRAMEBUFFER
+RL.RL_DRAW_FRAMEBUFFER=36009
+
+-- Defines - RLGL Default shader vertex attribute locations
+
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION=0
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD=1
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL=2
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR=3
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT=4
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2=5
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES=6
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS=nil
+RL.RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS=nil
+
+-- Defines - RLGL GlVersion
+
+---OpenGL 1.1
+RL.RL_OPENGL_11=1
+---OpenGL 2.1 (GLSL 120)
+RL.RL_OPENGL_21=2
+---OpenGL 3.3 (GLSL 330)
+RL.RL_OPENGL_33=3
+---OpenGL 4.3 (using GLSL 330)
+RL.RL_OPENGL_43=4
+---OpenGL ES 2.0 (GLSL 100)
+RL.RL_OPENGL_ES_20=5
+
+-- Defines - RLGL Framebuffer attachment type
+
+---Framebuffer attachment type: color 0
+RL.RL_ATTACHMENT_COLOR_CHANNEL0=0
+---Framebuffer attachment type: color 1
+RL.RL_ATTACHMENT_COLOR_CHANNEL1=1
+---Framebuffer attachment type: color 2
+RL.RL_ATTACHMENT_COLOR_CHANNEL2=2
+---Framebuffer attachment type: color 3
+RL.RL_ATTACHMENT_COLOR_CHANNEL3=3
+---Framebuffer attachment type: color 4
+RL.RL_ATTACHMENT_COLOR_CHANNEL4=4
+---Framebuffer attachment type: color 5
+RL.RL_ATTACHMENT_COLOR_CHANNEL5=5
+---Framebuffer attachment type: color 6
+RL.RL_ATTACHMENT_COLOR_CHANNEL6=6
+---Framebuffer attachment type: color 7
+RL.RL_ATTACHMENT_COLOR_CHANNEL7=7
+---Framebuffer attachment type: depth
+RL.RL_ATTACHMENT_DEPTH=100
+---Framebuffer attachment type: stencil
+RL.RL_ATTACHMENT_STENCIL=200
+
+-- Defines - RLGL Framebuffer texture attachment type
+
+---Framebuffer texture attachment type: cubemap, +X side
+RL.RL_ATTACHMENT_CUBEMAP_POSITIVE_X=0
+---Framebuffer texture attachment type: cubemap, -X side
+RL.RL_ATTACHMENT_CUBEMAP_NEGATIVE_X=1
+---Framebuffer texture attachment type: cubemap, +Y side
+RL.RL_ATTACHMENT_CUBEMAP_POSITIVE_Y=2
+---Framebuffer texture attachment type: cubemap, -Y side
+RL.RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y=3
+---Framebuffer texture attachment type: cubemap, +Z side
+RL.RL_ATTACHMENT_CUBEMAP_POSITIVE_Z=4
+---Framebuffer texture attachment type: cubemap, -Z side
+RL.RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z=5
+---Framebuffer texture attachment type: texture2d
+RL.RL_ATTACHMENT_TEXTURE2D=100
+---Framebuffer texture attachment type: renderbuffer
+RL.RL_ATTACHMENT_RENDERBUFFER=200
+
+-- Defines - RLGL CullMode
+
+RL.RL_CULL_FACE_FRONT=0
+RL.RL_CULL_FACE_BACK=1
+
+-- Defines - OpenGL Bitfield mask
+
+RL.GL_COLOR_BUFFER_BIT=16384
+RL.GL_DEPTH_BUFFER_BIT=256
+RL.GL_STENCIL_BUFFER_BIT=1024
+
+-- Defines - OpenGL Texture parameter
+
+RL.GL_NEAREST=9728
+RL.GL_LINEAR=9729
+
+-- Defines - OpenGL Capability
+
+---If enabled, blend the computed fragment color values with the values in the color buffers. See glBlendFunc
+RL.GL_BLEND=3042
+---If enabled, cull polygons based on their winding in window coordinates. See glCullFace
+RL.GL_CULL_FACE=2884
+---If enabled, do depth comparisons and update the depth buffer. Note that even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. See glDepthFunc and glDepthRangef
+RL.GL_DEPTH_TEST=2929
+---If enabled, dither color components or indices before they are written to the color buffer
+RL.GL_DITHER=3024
+---If enabled, an offset is added to depth values of a polygon's fragments produced by rasterization. See glPolygonOffset
+RL.GL_POLYGON_OFFSET_FILL=32823
+RL.GL_POLYGON_OFFSET_LINE=10754
+RL.GL_POLYGON_OFFSET_POINT=10753
+---If enabled, compute a temporary coverage value where each bit is determined by the alpha value at the corresponding sample location. The temporary coverage value is then ANDed with the fragment coverage value
+RL.GL_SAMPLE_ALPHA_TO_COVERAGE=32926
+---If enabled, the fragment's coverage is ANDed with the temporary coverage value. If GL_SAMPLE_COVERAGE_INVERT is set to GL_TRUE, invert the coverage value. See glSampleCoverage
+RL.GL_SAMPLE_COVERAGE=32928
+---If enabled, discard fragments that are outside the scissor rectangle. See glScissor
+RL.GL_SCISSOR_TEST=3089
+---If enabled, do stencil testing and update the stencil buffer. See glStencilFunc and glStencilOp
+RL.GL_STENCIL_TEST=2960
+
+-- Defines - OpenGL Test function
+
+---Always fails
+RL.GL_NEVER=512
+---Passes if ( ref & mask ) < ( stencil & mask )
+RL.GL_LESS=513
+---Passes if ( ref & mask ) <= ( stencil & mask )
+RL.GL_LEQUAL=515
+---Passes if ( ref & mask ) > ( stencil & mask )
+RL.GL_GREATER=516
+---Passes if ( ref & mask ) >= ( stencil & mask )
+RL.GL_GEQUAL=518
+---Passes if ( ref & mask ) = ( stencil & mask )
+RL.GL_EQUAL=514
+---Passes if ( ref & mask ) != ( stencil & mask )
+RL.GL_NOTEQUAL=517
+---Always passes
+RL.GL_ALWAYS=519
+
+-- Defines - OpenGL Face
+
+RL.GL_FRONT=1028
+RL.GL_BACK=1029
+RL.GL_FRONT_AND_BACK=1032
+
+-- Defines - OpenGL Stencil test
+
+---Keeps the current value
+RL.GL_KEEP=7680
+---Sets the stencil buffer value to 0
+RL.GL_ZERO=0
+---Sets the stencil buffer value to ref, as specified by glStencilFunc
+RL.GL_REPLACE=7681
+---Increments the current stencil buffer value. Clamps to the maximum representable unsigned value
+RL.GL_INCR=7682
+---Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing the maximum representable unsigned value
+RL.GL_INCR_WRAP=34055
+---Decrements the current stencil buffer value. Clamps to 0
+RL.GL_DECR=7683
+---Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable unsigned value when decrementing a stencil buffer value of zero
+RL.GL_DECR_WRAP=34056
+---Bitwise inverts the current stencil buffer value
+RL.GL_INVERT=5386
+
+-- Defines - OpenGL Connection
+
+---Returns the company responsible for this GL implementation. This name does not change from release to release
+RL.GL_VENDOR=7936
+---Returns the name of the renderer. This name is typically specific to a particular configuration of a hardware platform. It does not change from release to release
+RL.GL_RENDERER=7937
+---Returns a version or release number of the form OpenGLES
+RL.GL_VERSION=7938
+---Returns a version or release number for the shading language of the form OpenGLESGLSLES
+RL.GL_SHADING_LANGUAGE_VERSION=35724
+---Returns a space-separated list of supported extensions to GL
+RL.GL_EXTENSIONS=7939
+
+-- Defines - CBuffer Data type
+
+---C type unsigned char
+RL.BUFFER_UNSIGNED_CHAR=0
+---C type unsigned short
+RL.BUFFER_UNSIGNED_SHORT=1
+---C type unsigned int
+RL.BUFFER_UNSIGNED_INT=2
+---C type unsigned long
+RL.BUFFER_UNSIGNED_LONG=3
+---C type char
+RL.BUFFER_CHAR=4
+---C type short
+RL.BUFFER_SHORT=5
+---C type int
+RL.BUFFER_INT=6
+---C type long
+RL.BUFFER_LONG=7
+---C type float
+RL.BUFFER_FLOAT=8
+---C type double
+RL.BUFFER_DOUBLE=9
+
+-- Defines - Keyboard keys (US keyboard layout)
+
+---Key: Unknown
+RL.GLFW_KEY_UNKNOWN=-1
+
+-- Defines - GLFW API tokens.
+
+---The key or mouse button was released
+RL.GLFW_RELEASE=0
+---The key or mouse button was pressed
+RL.GLFW_PRESS=1
+---The key was held down until it repeated
+RL.GLFW_REPEAT=2
+---Joystick connected
+RL.GLFW_CONNECTED=262145
+---Joystick disconnected
+RL.GLFW_DISCONNECTED=262146
+
+-- Defines - GLFW Window Events.
+
+---GLFW event window size changed
+RL.GLFW_WINDOW_SIZE_EVENT=0
+---GLFW event window maximize
+RL.GLFW_WINDOW_MAXIMIZE_EVENT=1
+---GLFW event window iconify
+RL.GLFW_WINDOW_ICONYFY_EVENT=2
+---GLFW event window focus
+RL.GLFW_WINDOW_FOCUS_EVENT=3
+---GLFW event window drop
+RL.GLFW_WINDOW_DROP_EVENT=4
+
+-- Defines - GLFW Input Events.
+
+---GLFW event keyboard key
+RL.GLFW_KEY_EVENT=5
+---GLFW event Unicode character
+RL.GLFW_CHAR_EVENT=6
+---GLFW event mouse button
+RL.GLFW_MOUSE_BUTTON_EVENT=7
+---GLFW event cursor position
+RL.GLFW_MOUSE_CURSOR_POS_EVENT=8
+---GLFW event mouse scroll
+RL.GLFW_MOUSE_SCROLL_EVENT=9
+---GLFW event cursor enter/leave
+RL.GLFW_CURSOR_ENTER_EVENT=10
+---GLFW event joystick
+RL.GLFW_JOYSTICK_EVENT=11
+
+-- Defines - GLFW Pen Tablet Events. NOTE! Experimental. Needs glfw PR https://github.com/glfw/glfw/pull/1445.
+
+---// GLFW event pen tablet data
+RL.assignGlobalInt=nil
+---// GLFW event pen tablet cursor
+RL.assignGlobalInt=nil
+---// GLFW event pen tablet proximity
+RL.assignGlobalInt=nil
+-- Core - Window-related functions
+
+---Initialize window and OpenGL context. Note! Should be called only in RL.config.
+---InitWindow will still be called automatically before RL.init
+---@param size table
+---@param title string
+---@return any RL.InitWindow
+function RL.InitWindow( size, title ) end
+
+---Close window and unload OpenGL context and free all resources
+---@return any RL.CloseWindow
+function RL.CloseWindow() end
+
+---Check if application should close (KEY_ESCAPE pressed or windows close icon clicked).
+---Note! Not needed unless you want to make custom main loop
+---@return any RL.WindowShouldClose
+function RL.WindowShouldClose() end
+
+---Check if window has been initialized successfully
+---- Success return bool
+---@return any state
+function RL.IsWindowReady() end
+
+---Check if window is currently fullscreen
+---- Success return bool
+---@return any state
+function RL.IsWindowFullscreen() end
+
+---Check if window is currently hidden (only PLATFORM_DESKTOP)
+---- Success return bool
+---@return any state
+function RL.IsWindowHidden() end
+
+---Check if window is currently minimized (only PLATFORM_DESKTOP)
+---- Success return bool
+---@return any state
+function RL.IsWindowMinimized() end
+
+---Check if window is currently maximized (only PLATFORM_DESKTOP)
+---- Success return bool
+---@return any state
+function RL.IsWindowMaximized() end
+
+---Check if window is currently focused (only PLATFORM_DESKTOP)
+---- Success return bool
+---@return any state
+function RL.IsWindowFocused() end
+
+---Check if window has been resized from last frame
+---- Success return bool
+---@return any resized
+function RL.IsWindowResized() end
+
+---Check if one specific window flag is enabled (FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE...)
+---- Success return bool
+---@param flag integer
+---@return any state
+function RL.IsWindowState( flag ) end
+
+---Set window configuration state using flags (FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE...)
+---@param flag integer
+---@return any RL.SetWindowState
+function RL.SetWindowState( flag ) end
+
+---Clear window configuration state flags (FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE...)
+---- Success return bool
+---@param flag integer
+---@return any resized
+function RL.ClearWindowState( flag ) end
+
+---Toggle window state: fullscreen/windowed, resizes monitor to match window resolution
+---@return any RL.ToggleFullscreen
+function RL.ToggleFullscreen() end
+
+---Toggle window state: borderless windowed, resizes window to match monitor resolution
+---@return any RL.ToggleBorderlessWindowed
+function RL.ToggleBorderlessWindowed() end
+
+---Set window state: maximized, if resizable (only PLATFORM_DESKTOP)
+---@return any RL.MaximizeWindow
+function RL.MaximizeWindow() end
+
+---Set window state: minimized, if resizable (only PLATFORM_DESKTOP)
+---@return any RL.MinimizeWindow
+function RL.MinimizeWindow() end
+
+---Set window state: not minimized/maximized (only PLATFORM_DESKTOP)
+---@return any RL.RestoreWindow
+function RL.RestoreWindow() end
+
+---Set icon for window (Only PLATFORM_DESKTOP)
+---@param image any
+---@return any RL.SetWindowIcon
+function RL.SetWindowIcon( image ) end
+
+---Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
+---@param images table
+---@return any RL.SetWindowIcons
+function RL.SetWindowIcons( images ) end
+
+---Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB)
+---@param title string
+---@return any RL.SetWindowTitle
+function RL.SetWindowTitle( title ) end
+
+---Set window position on screen
+---@param pos table
+---@return any RL.SetWindowPosition
+function RL.SetWindowPosition( pos ) end
+
+---Set monitor for the current window
+---@param monitor integer
+---@return any RL.SetWindowMonitor
+function RL.SetWindowMonitor( monitor ) end
+
+---Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
+---@param size table
+---@return any RL.SetWindowMinSize
+function RL.SetWindowMinSize( size ) end
+
+---Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE)
+---@param size table
+---@return any RL.SetWindowMaxSize
+function RL.SetWindowMaxSize( size ) end
+
+---Set window dimensions
+---@param size table
+---@return any RL.SetWindowSize
+function RL.SetWindowSize( size ) end
+
+---Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
+---@param opacity number
+---@return any RL.SetWindowOpacity
+function RL.SetWindowOpacity( opacity ) end
+
+---Set window focused (only PLATFORM_DESKTOP)
+---@return any RL.SetWindowFocused
+function RL.SetWindowFocused() end
+
+---Get native window handle. Return as lightuserdata
+---- Success return lightuserdata
+---@return any windowHandle
+function RL.GetWindowHandle() end
+
+---Get screen size
+---- Success return Vector2
+---@return any size
+function RL.GetScreenSize() end
+
+---Get render size
+---- Success return Vector2
+---@return any size
+function RL.GetRenderSize() end
+
+---Get number of connected monitors
+---- Success return int
+---@return any count
+function RL.GetMonitorCount() end
+
+---Get current connected monitor
+---- Success return int
+---@return any monitor
+function RL.GetCurrentMonitor() end
+
+---Get specified monitor position
+---- Success return Vector2
+---@param monitor integer
+---@return any position
+function RL.GetMonitorPosition( monitor ) end
+
+---Get specified monitor size
+---- Success return Vector2
+---@param monitor integer
+---@return any size
+function RL.GetMonitorSize( monitor ) end
+
+---Get specified monitor physical size in millimetres
+---- Success return Vector2
+---@param monitor integer
+---@return any size
+function RL.GetMonitorPhysicalSize( monitor ) end
+
+---Get specified monitor refresh rate
+---- Success return int
+---@param monitor integer
+---@return any refreshRate
+function RL.GetMonitorRefreshRate( monitor ) end
+
+---Get window position on monitor
+---- Success return Vector2
+---@return any position
+function RL.GetWindowPosition() end
+
+---Get window scale DPI factor
+---- Success return Vector2
+---@return any dpi
+function RL.GetWindowScaleDPI() end
+
+---Get the human-readable, UTF-8 encoded name of the specified monitor
+---- Success return string
+---@param monitor integer
+---@return any name
+function RL.GetMonitorName( monitor ) end
+
+---Set clipboard text content
+---@param text string
+---@return any RL.SetClipboardText
+function RL.SetClipboardText( text ) end
+
+---Get clipboard text content
+---- Success return string
+---@return any text
+function RL.GetClipboardText() end
+
+---Get clipboard image content
+---- Success return Image
+---@return any image
+function RL.GetClipboardImage() end
+
+---Enable waiting for events on EndDrawing(), no automatic event polling
+---@return any RL.EnableEventWaiting
+function RL.EnableEventWaiting() end
+
+---Disable waiting for events on EndDrawing(), automatic events polling
+---@return any RL.DisableEventWaiting
+function RL.DisableEventWaiting() end
+
+-- Core - Cursor-related functions
+
+---Shows cursor
+---@return any RL.ShowCursor
+function RL.ShowCursor() end
+
+---Hides cursor
+---@return any RL.HideCursor
+function RL.HideCursor() end
+
+---Check if cursor is not visible
+---- Success return bool
+---@return any hidden
+function RL.IsCursorHidden() end
+
+---Enables cursor (unlock cursor)
+---@return any RL.EnableCursor
+function RL.EnableCursor() end
+
+---Disables cursor (lock cursor)
+---@return any RL.DisableCursor
+function RL.DisableCursor() end
+
+---Check if cursor is on the screen
+---- Success return bool
+---@return any onSreen
+function RL.IsCursorOnScreen() end
+
+-- Core - Drawing-related functions
+
+---Set background color (framebuffer clear color)
+---@param color table
+---@return any RL.ClearBackground
+function RL.ClearBackground( color ) end
+
+---Setup canvas (framebuffer) to start drawing
+---@return any RL.BeginDrawing
+function RL.BeginDrawing() end
+
+---End canvas drawing and swap buffers (double buffering)
+---@return any RL.EndDrawing
+function RL.EndDrawing() end
+
+---Begin 2D mode with custom camera (2D)
+---@param camera any
+---@return any RL.BeginMode2D
+function RL.BeginMode2D( camera ) end
+
+---Ends 2D mode with custom camera
+---@return any RL.EndMode2D
+function RL.EndMode2D() end
+
+---Begin 3D mode with custom camera (3D)
+---@param camera any
+---@return any RL.BeginMode3D
+function RL.BeginMode3D( camera ) end
+
+---Ends 3D mode and returns to default 2D orthographic mode
+---@return any RL.EndMode3D
+function RL.EndMode3D() end
+
+---Begin drawing to render texture
+---@param target any
+---@return any RL.BeginTextureMode
+function RL.BeginTextureMode( target ) end
+
+---Ends drawing to render texture
+---@return any RL.EndTextureMode
+function RL.EndTextureMode() end
+
+---Begin custom shader drawing
+---@param shader any
+---@return any RL.BeginShaderMode
+function RL.BeginShaderMode( shader ) end
+
+---End custom shader drawing (use default shader)
+---@return any RL.EndShaderMode
+function RL.EndShaderMode() end
+
+---Begin blending mode (BLEND_ALPHA, BLEND_ADDITIVE, BLEND_MULTIPLIED...)
+---@param mode integer
+---@return any RL.BeginBlendMode
+function RL.BeginBlendMode( mode ) end
+
+---End blending mode (reset to default: BLEND_ALPHA)
+---@return any RL.EndBlendMode
+function RL.EndBlendMode() end
+
+---Begin scissor mode (define screen area for following drawing)
+---@param rectange table
+---@return any RL.BeginScissorMode
+function RL.BeginScissorMode( rectange ) end
+
+---End scissor mode
+---@return any RL.EndScissorMode
+function RL.EndScissorMode() end
+
+-- Core - Shader management functions
+
+---Load shader from files and bind default locations.
+---NOTE: Set nil if no shader
+---- Failure return nil
+---- Success return Shader
+---@param vsFileName string|nil
+---@param fsFileName string|nil
+---@return any shader
+function RL.LoadShader( vsFileName, fsFileName ) end
+
+---Load shader from code strings and bind default locations
+---NOTE: Set nil if no shader
+---- Failure return nil
+---- Success return Shader
+---@param vsCode string|nil
+---@param fsCode string|nil
+---@return any shader
+function RL.LoadShaderFromMemory( vsCode, fsCode ) end
+
+---Check if a shader is valid (loaded on GPU)
+---- Success return bool
+---@param shader any
+---@return any isValid
+function RL.IsShaderValid( shader ) end
+
+---Get shader program id
+---- Success return int
+---@param shader any
+---@return any shaderId
+function RL.GetShaderId( shader ) end
+
+---Get shader uniform location
+---- Success return int
+---@param shader any
+---@param uniformName string
+---@return any location
+function RL.GetShaderLocation( shader, uniformName ) end
+
+---Get shader attribute location
+---- Success return int
+---@param shader any
+---@param attribName string
+---@return any location
+function RL.GetShaderLocationAttrib( shader, attribName ) end
+
+---Set shader location index
+---@param shader any
+---@param shaderLocationIndex integer
+---@param location integer
+---@return any RL.SetShaderLocationIndex
+function RL.SetShaderLocationIndex( shader, shaderLocationIndex, location ) end
+
+---Get shader location index
+---- Success return int
+---@param shader any
+---@param shaderLocationIndex integer
+---@return any location
+function RL.GetShaderLocationIndex( shader, shaderLocationIndex ) end
+
+---Set shader uniform value (matrix 4x4)
+---@param shader any
+---@param locIndex integer
+---@param mat table
+---@return any RL.SetShaderValueMatrix
+function RL.SetShaderValueMatrix( shader, locIndex, mat ) end
+
+---Set shader uniform value for texture (sampler2d)
+---@param shader any
+---@param locIndex integer
+---@param texture any
+---@return any RL.SetShaderValueTexture
+function RL.SetShaderValueTexture( shader, locIndex, texture ) end
+
+---Set shader uniform value
+---NOTE: Even one value should be in table
+---@param shader any
+---@param locIndex integer
+---@param values table
+---@param uniformType integer
+---@return any RL.SetShaderValue
+function RL.SetShaderValue( shader, locIndex, values, uniformType ) end
+
+---Set shader uniform value vector
+---NOTE: Even one value should be in table
+---@param shader any
+---@param locIndex integer
+---@param values table
+---@param uniformType integer
+---@param count integer
+---@return any RL.SetShaderValueV
+function RL.SetShaderValueV( shader, locIndex, values, uniformType, count ) end
+
+---Set shader uniform value using Buffer object
+---@param shader any
+---@param locIndex integer
+---@param values any
+---@param uniformType integer
+---@return any RL.SetShaderValueWithBuffer
+function RL.SetShaderValueWithBuffer( shader, locIndex, values, uniformType ) end
+
+---Set shader uniform value vector using Buffer object
+---@param shader any
+---@param locIndex integer
+---@param values any
+---@param uniformType integer
+---@param count integer
+---@return any RL.SetShaderValueVWithBuffer
+function RL.SetShaderValueVWithBuffer( shader, locIndex, values, uniformType, count ) end
+
+---Unload shader from GPU memory (VRAM)
+---@param shader any
+---@return any RL.UnloadShader
+function RL.UnloadShader( shader ) end
+
+-- Core - Screen-space-related functions
+
+---Get a ray trace from screen position (i.e mouse)
+---- Success return Ray
+---@param mousePosition table
+---@param camera any
+---@return any ray
+function RL.GetScreenToWorldRay( mousePosition, camera ) end
+
+---Get a ray trace from screen position (i.e mouse) in a viewport
+---- Success return Ray
+---@param mousePosition table
+---@param camera any
+---@param size table
+---@return any ray
+function RL.GetScreenToWorldRayEx( mousePosition, camera, size ) end
+
+---Get the screen space position for a 3d world space position
+---- Success return Vector2
+---@param position table
+---@param camera any
+---@return any position
+function RL.GetWorldToScreen( position, camera ) end
+
+---Get size position for a 3d world space position
+---- Success return Vector2
+---@param position table
+---@param camera any
+---@param size table
+---@return any position
+function RL.GetWorldToScreenEx( position, camera, size ) end
+
+---Get the screen space position for a 2d camera world space position
+---- Success return Vector2
+---@param position table
+---@param camera any
+---@return any position
+function RL.GetWorldToScreen2D( position, camera ) end
+
+---Get the world space position for a 2d camera screen space position
+---- Success return Vector2
+---@param position table
+---@param camera any
+---@return any position
+function RL.GetScreenToWorld2D( position, camera ) end
+
+---Get camera transform matrix (view matrix)
+---- Success return Matrix
+---@param camera any
+---@return any matrix
+function RL.GetCameraMatrix( camera ) end
+
+---Get camera 2d transform matrix
+---- Success return Matrix
+---@param camera any
+---@return any matrix
+function RL.GetCameraMatrix2D( camera ) end
+
+-- Core - Timing-related functions
+
+---Set target FPS (maximum)
+---@param fps integer
+---@return any RL.SetTargetFPS
+function RL.SetTargetFPS( fps ) end
+
+---Get time in seconds for last frame drawn (Delta time)
+---- Success return float
+---@return any delta
+function RL.GetFrameTime() end
+
+---Get elapsed time in seconds since InitWindow()
+---- Success return float
+---@return any time
+function RL.GetTime() end
+
+---Get current FPS
+---- Success return int
+---@return any FPS
+function RL.GetFPS() end
+
+-- Core - Custom frame control functions
+
+---Swap back buffer with front buffer (screen drawing)
+---@return any RL.SwapScreenBuffer
+function RL.SwapScreenBuffer() end
+
+---Register all input events
+---@return any RL.PollInputEvents
+function RL.PollInputEvents() end
+
+---Wait for some time (halt program execution)
+---@param seconds any
+---@return any RL.WaitTime
+function RL.WaitTime( seconds ) end
+
+-- Core - Random values generation functions
+
+---Set the seed for the random number generator
+---@param seed integer
+---@return any RL.SetRandomSeed
+function RL.SetRandomSeed( seed ) end
+
+---Get a random value between min and max (both included)
+---- Success return int
+---@param min integer
+---@param max integer
+---@return any time
+function RL.GetRandomValue( min, max ) end
+
+---Load random values sequence, no values repeated
+---- Success return int{}
+---@param count integer
+---@param min integer
+---@param max integer
+---@return any sequence
+function RL.LoadRandomSequence( count, min, max ) end
+
+-- Core - Misc
+
+---Takes a screenshot of current screen (filename extension defines format)
+---@param fileName string
+---@return any RL.TakeScreenshot
+function RL.TakeScreenshot( fileName ) end
+
+---Setup init configuration flags (view FLAGS)
+---@param flags integer
+---@return any RL.SetConfigFlags
+function RL.SetConfigFlags( flags ) end
+
+---Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
+---@param logLevel integer
+---@param text string
+---@return any RL.TraceLog
+function RL.TraceLog( logLevel, text ) end
+
+---Set the current threshold (minimum) log level
+---@param logLevel integer
+---@return any RL.SetTraceLogLevel
+function RL.SetTraceLogLevel( logLevel ) end
+
+---Set the log level for bad function calls and invalid data formats.
+---@param logLevel integer
+---@return any RL.SetLogLevelInvalid
+function RL.SetLogLevelInvalid( logLevel ) end
+
+---Get the log level for bad function calls and invalid data formats.
+---- Success return int
+---@return any logLevel
+function RL.GetLogLevelInvalid() end
+
+---Open URL with default system browser (if available)
+---@param url string
+---@return any RL.OpenURL
+function RL.OpenURL( url ) end
+
+---Check if Lua garbage collection is set to unload object data
+---- Success return bool
+---@return any enabled
+function RL.IsGCUnloadEnabled() end
+
+---Set Lua garbage collection to unload object data
+---@param enabled boolean
+---@return any RL.SetGCUnload
+function RL.SetGCUnload( enabled ) end
+
+---Get platform. Returns "Windows", "Linux", "FreeBSD", "OpenBSD", "Apple" or "Emscripten"
+---- Success return string
+---@return any platform
+function RL.GetPlatform() end
+
+-- Core - Files management functions
+
+---Load file data as byte array (read). Buffer type is BUFFER_UNSIGNED_CHAR
+---- Success return Buffer
+---@param fileName string
+---@return any buffer
+function RL.LoadFileData( fileName ) end
+
+---Save data to file from byte array (write), returns true on success
+---- Success return bool
+---@param fileName string
+---@param Buffer any
+---@return any success
+function RL.SaveFileData( fileName, Buffer ) end
+
+---Export data to code (.h), returns true on success
+---- Success return bool
+---@param buffer any
+---@param fileName string
+---@return any success
+function RL.ExportDataAsCode( buffer, fileName ) end
+
+---Load text data from file (read)
+---- Success return string
+---@param fileName string
+---@return any text
+function RL.LoadFileText( fileName ) end
+
+---Save text data to file (write), returns true on success
+---- Success return bool
+---@param fileName string
+---@param text string
+---@return any success
+function RL.SaveFileText( fileName, text ) end
+
+-- Core - Files system functions
+
+---Return game directory (where main.lua is located)
+---- Success return string
+---@return any path
+function RL.GetBasePath() end
+
+---Check if file exists
+---- Success return bool
+---@param fileName string
+---@return any fileExists
+function RL.FileExists( fileName ) end
+
+---Check if a directory path exists
+---- Success return bool
+---@param dirPath string
+---@return any dirExists
+function RL.DirectoryExists( dirPath ) end
+
+---Check file extension (Including point: .png, .wav)
+---- Success return bool
+---@param fileName string
+---@param ext string
+---@return any hasFileExtension
+function RL.IsFileExtension( fileName, ext ) end
+
+---Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h)
+---- Success return int
+---@param fileName string
+---@return any length
+function RL.GetFileLength( fileName ) end
+
+---Get pointer to extension for a filename string (Includes dot: '.png')
+---- Success return string
+---@param fileName string
+---@return any extension
+function RL.GetFileExtension( fileName ) end
+
+---Get pointer to filename for a path string
+---- Success return string
+---@param filePath string
+---@return any fileName
+function RL.GetFileName( filePath ) end
+
+---Get filename string without extension (Uses static string)
+---- Success return string
+---@param filePath string
+---@return any fileName
+function RL.GetFileNameWithoutExt( filePath ) end
+
+---Get full path for a given fileName with path (Uses static string)
+---- Success return string
+---@param filePath string
+---@return any filePath
+function RL.GetDirectoryPath( filePath ) end
+
+---Get previous directory path for a given path (Uses static string)
+---- Success return string
+---@param dirPath string
+---@return any directory
+function RL.GetPrevDirectoryPath( dirPath ) end
+
+---Get current working directory (Uses static string)
+---- Success return string
+---@return any directory
+function RL.GetWorkingDirectory() end
+
+---Get the directory of the running application (uses static string)
+---- Success return string
+---@return any directory
+function RL.GetApplicationDirectory() end
+
+---Create directories (including full path requested), returns 0 on success
+---- Success return int
+---@param dirPath string
+---@return any success
+function RL.MakeDirectory( dirPath ) end
+
+---Change working directory, return true on success
+---- Success return bool
+---@param directory string
+---@return any success
+function RL.ChangeDirectory( directory ) end
+
+---Check if a given path is a file or a directory
+---- Success return bool
+---@param path string
+---@return any isFile
+function RL.IsPathFile( path ) end
+
+---Check if fileName is valid for the platform/OS
+---- Success return bool
+---@param fileName string
+---@return any isValid
+function RL.IsFileNameValid( fileName ) end
+
+---Load directory filepaths
+---- Success return string{}
+---@param dirPath string
+---@return any fileNames
+function RL.LoadDirectoryFiles( dirPath ) end
+
+---Load directory filepaths with extension filtering and recursive directory scan
+---- Success return string{}
+---@param basePath string
+---@param filter string|nil
+---@param scanSubdirs boolean
+---@return any fileNames
+function RL.LoadDirectoryFilesEx( basePath, filter, scanSubdirs ) end
+
+---Check if a file has been dropped into window
+---- Success return bool
+---@return any iSFileDropped
+function RL.IsFileDropped() end
+
+---Load dropped filepaths
+---- Success return string{}
+---@return any files
+function RL.LoadDroppedFiles() end
+
+---Get file modification time (Last write time)
+---- Success return int
+---@param fileName string
+---@return any time
+function RL.GetFileModTime( fileName ) end
+
+-- Core - Compression/Encoding functionality
+
+---Compress data (DEFLATE algorithm)
+---- Success return Buffer
+---@param buffer any
+---@return any compData
+function RL.CompressData( buffer ) end
+
+---Decompress data (DEFLATE algorithm).
+---- Success Buffer
+---@param compData any
+---@return any decompData
+function RL.DecompressData( compData ) end
+
+---Encode data to Base64 string
+---- Success return string, int
+---@param data string
+---@return any encodedData
+---@return any outputSize
+function RL.EncodeDataBase64( data ) end
+
+---Decode Base64 string data
+---- Success return string, int
+---@param data string
+---@return any decodedData
+---@return any outputSize
+function RL.DecodeDataBase64( data ) end
+
+---Compute CRC32 hash code.
+---- Failure return false
+---- Success return int
+---@param data any
+---@return any code
+function RL.ComputeCRC32( data ) end
+
+---Compute MD5 hash code, returns static int[4] (16 bytes).
+---- Failure return false
+---- Success return int{4}
+---@param data any
+---@return any code
+function RL.ComputeMD5( data ) end
+
+---Compute SHA1 hash code, returns static int[5] (20 bytes).
+---- Failure return false
+---- Success return int{5}
+---@param data any
+---@return any code
+function RL.ComputeSHA1( data ) end
+
+-- Core - Automation events functionality
+
+---Load automation events list from file, nil for empty list, capacity = MAX_AUTOMATION_EVENTS
+---- Success return AutomationEventList
+---@param fileName string|nil
+---@return any eventList
+function RL.LoadAutomationEventList( fileName ) end
+
+---Unload automation events list from file
+---@param list any
+---@return any RL.UnloadAutomationEventList
+function RL.UnloadAutomationEventList( list ) end
+
+---Export automation events list as text file
+---- Failure return false
+---- Success return true
+---@param fileName string
+---@return any success
+function RL.ExportAutomationEventList( fileName ) end
+
+---Set automation event list to record to
+---@param list any
+---@return any RL.SetAutomationEventList
+function RL.SetAutomationEventList( list ) end
+
+---Set automation event internal base frame to start recording
+---@param frame integer
+---@return any RL.SetAutomationEventBaseFrame
+function RL.SetAutomationEventBaseFrame( frame ) end
+
+---Start recording automation events (AutomationEventList must be set)
+---@return any RL.StartAutomationEventRecording
+function RL.StartAutomationEventRecording() end
+
+---Stop recording automation events
+---@return any RL.StopAutomationEventRecording
+function RL.StopAutomationEventRecording() end
+
+---Play a recorded automation event
+---@param event any
+---@return any RL.PlayAutomationEvent
+function RL.PlayAutomationEvent( event ) end
+
+---Get automation event list capacity
+---- Success return int
+---@param list any
+---@return any capacity
+function RL.GetAutomationEventListCapacity( list ) end
+
+---Get automation event list count
+---- Success return int
+---@param list any
+---@return any count
+function RL.GetAutomationEventListCount( list ) end
+
+---Get automation event from automation event list. Return as lightuserdata
+---- Failure return nil
+---- Success return AutomationEvent
+---@param list any
+---@param index integer
+---@return any event
+function RL.GetAutomationEvent( list, index ) end
+
+---Get automation event frame
+---- Success return int
+---@param event any
+---@return any frame
+function RL.GetAutomationEventFrame( event ) end
+
+---Get automation event type
+---- Success return int
+---@param event any
+---@return any type
+function RL.GetAutomationEventType( event ) end
+
+---Get automation event params
+---- Success return int{}
+---@param event any
+---@return any params
+function RL.GetAutomationEventParams( event ) end
+
+-- Core - Input-related functions: keyboard
+
+---Detect if a key has been pressed once
+---- Success return bool
+---@param key integer
+---@return any pressed
+function RL.IsKeyPressed( key ) end
+
+---Check if a key has been pressed again (Only PLATFORM_DESKTOP)
+---- Success return bool
+---@param key integer
+---@return any pressed
+function RL.IsKeyPressedRepeat( key ) end
+
+---Detect if a key is being pressed
+---- Success return bool
+---@param key integer
+---@return any pressed
+function RL.IsKeyDown( key ) end
+
+---Detect if a key has been released once
+---- Success return bool
+---@param key integer
+---@return any released
+function RL.IsKeyReleased( key ) end
+
+---Check if a key is NOT being pressed
+---- Success return bool
+---@param key integer
+---@return any released
+function RL.IsKeyUp( key ) end
+
+---Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty
+---- Success return int
+---@return any keycode
+function RL.GetKeyPressed() end
+
+---Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty
+---- Success return int
+---@return any unicode
+function RL.GetCharPressed() end
+
+---Set a custom key to exit program (default is ESC)
+---@param key integer
+---@return any RL.SetExitKey
+function RL.SetExitKey( key ) end
+
+-- Core - Input-related functions: gamepads
+
+---Detect if a gamepad is available
+---- Success return bool
+---@param gamepad integer
+---@return any available
+function RL.IsGamepadAvailable( gamepad ) end
+
+---Return gamepad internal name id
+---- Success return string
+---@param gamepad integer
+---@return any name
+function RL.GetGamepadName( gamepad ) end
+
+---Detect if a gamepad button has been pressed once
+---- Success return bool
+---@param gamepad integer
+---@param button integer
+---@return any pressed
+function RL.IsGamepadButtonPressed( gamepad, button ) end
+
+---Detect if a gamepad button is being pressed
+---- Success return bool
+---@param gamepad integer
+---@param button integer
+---@return any pressed
+function RL.IsGamepadButtonDown( gamepad, button ) end
+
+---Detect if a gamepad button has been released once
+---- Success return bool
+---@param gamepad integer
+---@param button integer
+---@return any released
+function RL.IsGamepadButtonReleased( gamepad, button ) end
+
+---Check if a gamepad button is NOT being pressed
+---- Success return bool
+---@param gamepad integer
+---@param button integer
+---@return any notPressed
+function RL.IsGamepadButtonUp( gamepad, button ) end
+
+---Get the last gamepad button pressed
+---- Success return int
+---@return any button
+function RL.GetGamepadButtonPressed() end
+
+---Return gamepad axis count for a gamepad
+---- Success return int
+---@param gamepad integer
+---@return any count
+function RL.GetGamepadAxisCount( gamepad ) end
+
+---Return axis movement value for a gamepad axis
+---- Success return float
+---@param gamepad integer
+---@param axis integer
+---@return any value
+function RL.GetGamepadAxisMovement( gamepad, axis ) end
+
+---Set internal gamepad mappings (SDL_GameControllerDB)
+---- Success return int
+---@param mappings string
+---@return any result
+function RL.SetGamepadMappings( mappings ) end
+
+---Set gamepad vibration for both motors (duration in seconds)
+---@param gamepad integer
+---@param leftMotor number
+---@param rightMotor number
+---@param duration number
+---@return any RL.SetGamepadVibration
+function RL.SetGamepadVibration( gamepad, leftMotor, rightMotor, duration ) end
+
+-- Core - Input-related functions: mouse
+
+---Detect if a mouse button has been pressed once
+---- Success return bool
+---@param button integer
+---@return any pressed
+function RL.IsMouseButtonPressed( button ) end
+
+---Detect if a mouse button is being pressed
+---- Success return bool
+---@param button integer
+---@return any pressed
+function RL.IsMouseButtonDown( button ) end
+
+---Detect if a mouse button has been released once
+---- Success return bool
+---@param button integer
+---@return any released
+function RL.IsMouseButtonReleased( button ) end
+
+---Check if a mouse button is NOT being pressed
+---- Success return bool
+---@param button integer
+---@return any released
+function RL.IsMouseButtonUp( button ) end
+
+---Returns mouse position
+---- Success return Vector2
+---@return any position
+function RL.GetMousePosition() end
+
+---Get mouse delta between frames
+---- Success return Vector2
+---@return any position
+function RL.GetMouseDelta() end
+
+---Set mouse position XY
+---@param position table
+---@return any RL.SetMousePosition
+function RL.SetMousePosition( position ) end
+
+---Set mouse offset
+---@param offset table
+---@return any RL.SetMouseOffset
+function RL.SetMouseOffset( offset ) end
+
+---Set mouse scaling
+---@param scale table
+---@return any RL.SetMouseScale
+function RL.SetMouseScale( scale ) end
+
+---Get mouse offset
+---- Success return Vector2
+---@return any offset
+function RL.GetMouseOffset() end
+
+---Get mouse scale
+---- Success return Vector2
+---@return any scale
+function RL.GetMouseScale() end
+
+---Get mouse wheel movement for X or Y, whichever is larger
+---- Success return float
+---@return any movement
+function RL.GetMouseWheelMove() end
+
+---Get mouse wheel movement for both X and Y
+---- Success return Vector2
+---@return any movement
+function RL.GetMouseWheelMoveV() end
+
+---Set mouse cursor
+---@param cursor integer
+---@return any RL.SetMouseCursor
+function RL.SetMouseCursor( cursor ) end
+
+-- Core - Input-related functions: touch
+
+---Get touch position XY for a touch point index (relative to screen size)
+---- Success return Vector2
+---@param index integer
+---@return any position
+function RL.GetTouchPosition( index ) end
+
+---Get touch point identifier for given index
+---- Success return int
+---@param index integer
+---@return any id
+function RL.GetTouchPointId( index ) end
+
+---Get touch point identifier for given index
+---- Success return int
+---@return any count
+function RL.GetTouchPointCount() end
+
+-- Core - Input-related functions: gestures
+
+---Enable a set of gestures using flags
+---@param int any
+---@return any RL.SetGesturesEnabled
+function RL.SetGesturesEnabled( int ) end
+
+---Check if a gesture have been detected
+---- Success return bool
+---@param gesture integer
+---@return any detected
+function RL.IsGestureDetected( gesture ) end
+
+---Get latest detected gesture
+---- Success return int
+---@return any gesture
+function RL.GetGestureDetected() end
+
+---Get gesture hold time in milliseconds
+---- Success return float
+---@return any time
+function RL.GetGestureHoldDuration() end
+
+---Get gesture drag vector
+---- Success return Vector2
+---@return any vector
+function RL.GetGestureDragVector() end
+
+---Get gesture drag angle
+---- Success return float
+---@return any angle
+function RL.GetGestureDragAngle() end
+
+---Get gesture pinch delta
+---- Success return Vector2
+---@return any vector
+function RL.GetGesturePinchVector() end
+
+---Get gesture pinch angle
+---- Success return float
+---@return any angle
+function RL.GetGesturePinchAngle() end
+
+-- Core - Camera2D System functions
+
+---Return camera2D set to default configuration
+---- Success return Camera2D
+---@return any camera2D
+function RL.CreateCamera2D() end
+
+---Set camera target (rotation and zoom origin)
+---@param camera any
+---@param target table
+---@return any RL.SetCamera2DTarget
+function RL.SetCamera2DTarget( camera, target ) end
+
+---Set camera offset (displacement from target)
+---@param camera any
+---@param offset table
+---@return any RL.SetCamera2DOffset
+function RL.SetCamera2DOffset( camera, offset ) end
+
+---Set camera rotation in degrees
+---@param camera any
+---@param rotation number
+---@return any RL.SetCamera2DRotation
+function RL.SetCamera2DRotation( camera, rotation ) end
+
+---Set camera zoom (scaling), should be 1.0f by default
+---@param camera any
+---@param zoom number
+---@return any RL.SetCamera2DZoom
+function RL.SetCamera2DZoom( camera, zoom ) end
+
+---Get camera2D target
+---- Success return Vector2
+---@param camera any
+---@return any target
+function RL.GetCamera2DTarget( camera ) end
+
+---Get camera2D offset
+---- Success return Vector2
+---@param camera any
+---@return any offset
+function RL.GetCamera2DOffset( camera ) end
+
+---Get camera2D rotation
+---- Success return float
+---@param camera any
+---@return any rotation
+function RL.GetCamera2DRotation( camera ) end
+
+---Get camera2D zoom
+---- Success return float
+---@param camera any
+---@return any zoom
+function RL.GetCamera2DZoom( camera ) end
+
+-- Core - Camera3D System functions
+
+---Return camera3D id set to default configuration
+---- Success return int
+---@return any camera
+function RL.CreateCamera3D() end
+
+---Set camera position (Remember to call "RL.UpdateCamera3D()" to apply changes)
+---@param camera any
+---@param position table
+---@return any RL.SetCamera3DPosition
+function RL.SetCamera3DPosition( camera, position ) end
+
+---Set camera target it looks-at
+---@param camera any
+---@param target table
+---@return any RL.SetCamera3DTarget
+function RL.SetCamera3DTarget( camera, target ) end
+
+---Set camera up vector (Rotation over it's axis)
+---@param camera any
+---@param up table
+---@return any RL.SetCamera3DUp
+function RL.SetCamera3DUp( camera, up ) end
+
+---Set camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
+---@param camera any
+---@param fovy number
+---@return any RL.SetCamera3DFovy
+function RL.SetCamera3DFovy( camera, fovy ) end
+
+---Set camera projection mode (CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC)
+---@param camera any
+---@param projection integer
+---@return any RL.SetCamera3DProjection
+function RL.SetCamera3DProjection( camera, projection ) end
+
+---Get camera position
+---- Success return Vector3
+---@param camera any
+---@return any position
+function RL.GetCamera3DPosition( camera ) end
+
+---Get camera target it looks-at
+---- Success return Vector3
+---@param camera any
+---@return any target
+function RL.GetCamera3DTarget( camera ) end
+
+---Get camera up vector (Rotation over it's axis)
+---- Success return Vector3
+---@param camera any
+---@return any up
+function RL.GetCamera3DUp( camera ) end
+
+---Get camera field-of-view apperture in Y (degrees) in perspective, used as near plane width in orthographic
+---- Success return float
+---@param camera any
+---@return any fovy
+function RL.GetCamera3DFovy( camera ) end
+
+---Get camera projection mode
+---- Success return int
+---@param camera any
+---@return any projection
+function RL.GetCamera3DProjection( camera ) end
+
+---Returns the cameras forward vector (normalized)
+---- Success return Vector3
+---@param camera any
+---@return any forward
+function RL.GetCamera3DForward( camera ) end
+
+---Returns the cameras up vector (normalized)
+---Note: The up vector might not be perpendicular to the forward vector
+---- Success return Vector3
+---@param camera any
+---@return any up
+function RL.GetCamera3DUpNormalized( camera ) end
+
+---Returns the cameras right vector (normalized)
+---- Success return Vector3
+---@param camera any
+---@return any right
+function RL.GetCamera3DRight( camera ) end
+
+---Moves the camera in it's forward direction
+---@param camera any
+---@param distance number
+---@param moveInWorldPlane boolean
+---@return any RL.Camera3DMoveForward
+function RL.Camera3DMoveForward( camera, distance, moveInWorldPlane ) end
+
+---Moves the camera in it's up direction
+---@param camera any
+---@param distance number
+---@return any RL.Camera3DMoveUp
+function RL.Camera3DMoveUp( camera, distance ) end
+
+---Moves the camera target in it's current right direction
+---@param camera any
+---@param distance number
+---@param moveInWorldPlane boolean
+---@return any RL.Camera3DMoveRight
+function RL.Camera3DMoveRight( camera, distance, moveInWorldPlane ) end
+
+---Moves the camera position closer/farther to/from the camera target
+---@param camera any
+---@param delta number
+---@return any RL.Camera3DMoveToTarget
+function RL.Camera3DMoveToTarget( camera, delta ) end
+
+---Rotates the camera around it's up vector
+---Yaw is "looking left and right"
+---If rotateAroundTarget is false, the camera rotates around it's position
+---Note: angle must be provided in radians
+---@param camera any
+---@param angle number
+---@param rotateAroundTarget boolean
+---@return any RL.Camera3DYaw
+function RL.Camera3DYaw( camera, angle, rotateAroundTarget ) end
+
+---Rotates the camera around it's right vector, pitch is "looking up and down"
+---- lockView prevents camera overrotation (aka "somersaults")
+---- rotateAroundTarget defines if rotation is around target or around it's position
+---- rotateUp rotates the up direction as well (typically only usefull in CAMERA_FREE)
+---NOTE: angle must be provided in radians
+---@param camera any
+---@param angle number
+---@param lockView boolean
+---@param rotateAroundTarget boolean
+---@param rotateUp boolean
+---@return any RL.Camera3DPitch
+function RL.Camera3DPitch( camera, angle, lockView, rotateAroundTarget, rotateUp ) end
+
+---Rotates the camera around it's forward vector
+---Roll is "turning your head sideways to the left or right"
+---Note: angle must be provided in radians
+---@param camera any
+---@param angle number
+---@return any RL.Camera3DRoll
+function RL.Camera3DRoll( camera, angle ) end
+
+---Returns the camera view matrix
+---- Success return Matrix
+---@param camera any
+---@return any view
+function RL.GetCamera3DViewMatrix( camera ) end
+
+---Returns the camera projection matrix
+---- Success return Matrix
+---@param camera any
+---@param aspect number
+---@return any projection
+function RL.GetCamera3DProjectionMatrix( camera, aspect ) end
+
+---Update camera position for selected mode
+---@param camera any
+---@param mode integer
+---@return any RL.UpdateCamera3D
+function RL.UpdateCamera3D( camera, mode ) end
+
+---Update camera movement, movement/rotation values should be provided by user
+---@param camera any
+---@param movement table
+---@param rotation table
+---@param zoom number
+---@return any RL.UpdateCamera3DPro
+function RL.UpdateCamera3DPro( camera, movement, rotation, zoom ) end
+
+-- Core - Buffer management functions
+
+---Load Buffer. Type should be one of the Buffer types. Empty buffer will set data to NULL.
+---- Success return Buffer
+---@param buffer table
+---@param type integer
+---@return any buffer
+function RL.LoadBuffer( buffer, type ) end
+
+---Load formatted buffer with all values set to 'value'
+---- Success return Buffer
+---@param length integer
+---@param type integer
+---@param value integer
+---@return any buffer
+function RL.LoadBufferFormatted( length, type, value ) end
+
+---Read buffer data from binary file
+---- Failure return nil
+---- Success return Buffer
+---@param path string
+---@param type integer
+---@return any buffer
+function RL.LoadBufferFromFile( path, type ) end
+
+---Read buffer data from string
+---- Failure return nil
+---- Success return Buffer
+---@param buffer string
+---@return any buffer
+function RL.LoadBufferFromString( buffer ) end
+
+---Unload buffer data
+---@param buffer any
+---@return any RL.UnloadBuffer
+function RL.UnloadBuffer( buffer ) end
+
+---Copy buffer data to another buffer. Size is in bytes
+---@param dst any
+---@param src any
+---@param posDst integer
+---@param posSrc integer
+---@param size integer
+---@return any RL.CopyBufferData
+function RL.CopyBufferData( dst, src, posDst, posSrc, size ) end
+
+---Set buffer data value
+---@param buffer any
+---@param position integer
+---@param values table
+---@return any RL.SetBufferData
+function RL.SetBufferData( buffer, position, values ) end
+
+---Swap buffer endianness from big endian to little endian and vice versa
+---@param buffer any
+---@return any RL.SwapBufferEndianness
+function RL.SwapBufferEndianness( buffer ) end
+
+---Get buffer data as table in the format it was stored
+---- Success return data{}
+---@param buffer any
+---@param position integer
+---@param length integer
+---@return any data
+function RL.GetBufferData( buffer, position, length ) end
+
+---Get buffer as string
+---- Success return string
+---@param buffer any
+---@return any string
+function RL.GetBufferAsString( buffer ) end
+
+---Get buffer type
+---- Success return int
+---@param buffer any
+---@return any type
+function RL.GetBufferType( buffer ) end
+
+---Get buffer size in bytes
+---- Success return int
+---@param buffer any
+---@return any size
+function RL.GetBufferSize( buffer ) end
+
+---Get buffer element size in bytes
+---- Success return int
+---@param buffer any
+---@return any size
+function RL.GetBufferElementSize( buffer ) end
+
+---Get buffer element count
+---- Success return int
+---@param buffer any
+---@return any length
+function RL.GetBufferLength( buffer ) end
+
+---Write buffer data to binary file
+---@param buffer any
+---@param path string
+---@return any RL.ExportBuffer
+function RL.ExportBuffer( buffer, path ) end
+
+-- Shapes - Basic shapes drawing functions
+
+---Set texture and rectangle to be used on shapes drawing
+---NOTE: It can be useful when using basic shapes and one single font,
+---defining a font char white rectangle would allow drawing everything in a single draw call
+---@param texture any
+---@param source table
+---@return any RL.SetShapesTexture
+function RL.SetShapesTexture( texture, source ) end
+
+---Get texture that is used for shapes drawing. Return as lightuserdata
+---- Success return Texture
+---@return any texture
+function RL.GetShapesTexture() end
+
+---Get texture source rectangle that is used for shapes drawing
+---- Success return Rectangle
+---@return any source
+function RL.GetShapesTextureRectangle() end
+
+---Draw a pixel
+---@param pos table
+---@param color table
+---@return any RL.DrawPixel
+function RL.DrawPixel( pos, color ) end
+
+---Draw a line defining thickness
+---@param startPos table
+---@param endPos table
+---@param thickness number
+---@param color table
+---@return any RL.DrawLine
+function RL.DrawLine( startPos, endPos, thickness, color ) end
+
+---Draw lines sequence
+---@param points table
+---@param color table
+---@return any RL.DrawLineStrip
+function RL.DrawLineStrip( points, color ) end
+
+---Draw a line using cubic-bezier curves in-out
+---@param startPos table
+---@param endPos table
+---@param thickness number
+---@param color table
+---@return any RL.DrawLineBezier
+function RL.DrawLineBezier( startPos, endPos, thickness, color ) end
+
+---Draw a color-filled circle
+---@param center table
+---@param radius number
+---@param color table
+---@return any RL.DrawCircle
+function RL.DrawCircle( center, radius, color ) end
+
+---Draw a piece of a circle
+---@param center table
+---@param radius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any RL.DrawCircleSector
+function RL.DrawCircleSector( center, radius, startAngle, endAngle, segments, color ) end
+
+---Draw circle sector outline
+---@param center table
+---@param radius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any RL.DrawCircleSectorLines
+function RL.DrawCircleSectorLines( center, radius, startAngle, endAngle, segments, color ) end
+
+---Draw a gradient-filled circle
+---@param center table
+---@param radius number
+---@param color1 table
+---@param color2 table
+---@return any RL.DrawCircleGradient
+function RL.DrawCircleGradient( center, radius, color1, color2 ) end
+
+---Draw circle outline
+---@param center table
+---@param radius number
+---@param color table
+---@return any RL.DrawCircleLines
+function RL.DrawCircleLines( center, radius, color ) end
+
+---Draw ellipse
+---@param center table
+---@param radiusH number
+---@param radiusV number
+---@param color table
+---@return any RL.DrawEllipse
+function RL.DrawEllipse( center, radiusH, radiusV, color ) end
+
+---Draw ellipse outline
+---@param center table
+---@param radiusH number
+---@param radiusV number
+---@param color table
+---@return any RL.DrawEllipseLines
+function RL.DrawEllipseLines( center, radiusH, radiusV, color ) end
+
+---Draw ring
+---@param center table
+---@param innerRadius number
+---@param outerRadius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any RL.DrawRing
+function RL.DrawRing( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end
+
+---Draw ring outline
+---@param center table
+---@param innerRadius number
+---@param outerRadius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any RL.DrawRingLines
+function RL.DrawRingLines( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end
+
+---Draw a color-filled rectangle
+---@param rec table
+---@param color table
+---@return any RL.DrawRectangle
+function RL.DrawRectangle( rec, color ) end
+
+---Draw a color-filled rectangle with pro parameters
+---@param rec table
+---@param origin table
+---@param rotation number
+---@param color table
+---@return any RL.DrawRectanglePro
+function RL.DrawRectanglePro( rec, origin, rotation, color ) end
+
+---Draw a vertical-gradient-filled rectangle
+---@param rectangle table
+---@param color1 table
+---@param color2 table
+---@return any RL.DrawRectangleGradientV
+function RL.DrawRectangleGradientV( rectangle, color1, color2 ) end
+
+---Draw a horizontal-gradient-filled rectangle
+---@param rectangle table
+---@param color1 table
+---@param color2 table
+---@return any RL.DrawRectangleGradientH
+function RL.DrawRectangleGradientH( rectangle, color1, color2 ) end
+
+---Draw a gradient-filled rectangle with custom vertex colors
+---@param rectangle table
+---@param col1 table
+---@param col2 table
+---@param col3 table
+---@param col4 table
+---@return any RL.DrawRectangleGradientEx
+function RL.DrawRectangleGradientEx( rectangle, col1, col2, col3, col4 ) end
+
+---Draw rectangle outline
+---@param rec table
+---@param color table
+---@return any RL.DrawRectangleLines
+function RL.DrawRectangleLines( rec, color ) end
+
+---Draw rectangle outline with extended parameters
+---@param rec table
+---@param lineThick integer
+---@param color table
+---@return any RL.DrawRectangleLinesEx
+function RL.DrawRectangleLinesEx( rec, lineThick, color ) end
+
+---Draw rectangle with rounded edges
+---@param rec table
+---@param roundness number
+---@param segments integer
+---@param color table
+---@return any RL.DrawRectangleRounded
+function RL.DrawRectangleRounded( rec, roundness, segments, color ) end
+
+---Draw rectangle lines with rounded edges
+---@param rec table
+---@param roundness number
+---@param segments integer
+---@param color table
+---@return any RL.DrawRectangleRoundedLines
+function RL.DrawRectangleRoundedLines( rec, roundness, segments, color ) end
+
+---Draw rectangle with rounded edges outline
+---@param rec table
+---@param roundness number
+---@param segments integer
+---@param lineThick number
+---@param color table
+---@return any RL.DrawRectangleRoundedLinesEx
+function RL.DrawRectangleRoundedLinesEx( rec, roundness, segments, lineThick, color ) end
+
+---Draw a color-filled triangle (Vertex in counter-clockwise order!)
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any RL.DrawTriangle
+function RL.DrawTriangle( v1, v2, v3, color ) end
+
+---Draw triangle outline (Vertex in counter-clockwise order!)
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any RL.DrawTriangleLines
+function RL.DrawTriangleLines( v1, v2, v3, color ) end
+
+---Draw a triangle fan defined by points (first vertex is the center)
+---@param points table
+---@param color table
+---@return any RL.DrawTriangleFan
+function RL.DrawTriangleFan( points, color ) end
+
+---Draw a triangle strip defined by points
+---@param points table
+---@param color table
+---@return any RL.DrawTriangleStrip
+function RL.DrawTriangleStrip( points, color ) end
+
+---Draw a regular polygon (Vector version)
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param color table
+---@return any RL.DrawPoly
+function RL.DrawPoly( center, sides, radius, rotation, color ) end
+
+---Draw a polygon outline of n sides
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param color table
+---@return any RL.DrawPolyLines
+function RL.DrawPolyLines( center, sides, radius, rotation, color ) end
+
+---Draw a polygon outline of n sides with extended parameters
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param lineThick number
+---@param color table
+---@return any RL.DrawPolyLinesEx
+function RL.DrawPolyLinesEx( center, sides, radius, rotation, lineThick, color ) end
+
+-- Shapes - Splines drawing functions
+
+---Draw spline: Linear, minimum 2 points
+---@param points table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineLinear
+function RL.DrawSplineLinear( points, thick, color ) end
+
+---Draw spline: B-Spline, minimum 4 points
+---@param points table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineBasis
+function RL.DrawSplineBasis( points, thick, color ) end
+
+---Draw spline: Catmull-Rom, minimum 4 points
+---@param points table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineCatmullRom
+function RL.DrawSplineCatmullRom( points, thick, color ) end
+
+---Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...]
+---@param points table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineBezierQuadratic
+function RL.DrawSplineBezierQuadratic( points, thick, color ) end
+
+---Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...]
+---@param points table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineBezierCubic
+function RL.DrawSplineBezierCubic( points, thick, color ) end
+
+---Draw spline segment: Linear, 2 points
+---@param p1 table
+---@param p2 table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineSegmentLinear
+function RL.DrawSplineSegmentLinear( p1, p2, thick, color ) end
+
+---Draw spline segment: B-Spline, 4 points
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@param p4 table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineSegmentBasis
+function RL.DrawSplineSegmentBasis( p1, p2, p3, p4, thick, color ) end
+
+---Draw spline segment: Catmull-Rom, 4 points
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@param p4 table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineSegmentCatmullRom
+function RL.DrawSplineSegmentCatmullRom( p1, p2, p3, p4, thick, color ) end
+
+---Draw spline segment: Quadratic Bezier, 2 points, 1 control point
+---@param p1 table
+---@param c2 table
+---@param p3 table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineSegmentBezierQuadratic
+function RL.DrawSplineSegmentBezierQuadratic( p1, c2, p3, thick, color ) end
+
+---Draw spline segment: Cubic Bezier, 2 points, 2 control points
+---@param p1 table
+---@param c2 table
+---@param c3 table
+---@param p4 table
+---@param thick number
+---@param color table
+---@return any RL.DrawSplineSegmentBezierCubic
+function RL.DrawSplineSegmentBezierCubic( p1, c2, c3, p4, thick, color ) end
+
+-- Shapes - Spline segment point evaluation functions, for a given t [0.0f .. 1.0f]
+
+---Get (evaluate) spline point: Linear
+---- Success return Vector2
+---@param startPos table
+---@param endPos table
+---@param t number
+---@return any point
+function RL.GetSplinePointLinear( startPos, endPos, t ) end
+
+---Get (evaluate) spline point: B-Spline
+---- Success return Vector2
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@param p4 table
+---@param t number
+---@return any point
+function RL.GetSplinePointBasis( p1, p2, p3, p4, t ) end
+
+---Get (evaluate) spline point: Catmull-Rom
+---- Success return Vector2
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@param p4 table
+---@param t number
+---@return any point
+function RL.GetSplinePointCatmullRom( p1, p2, p3, p4, t ) end
+
+---Get (evaluate) spline point: Quadratic Bezier
+---- Success return Vector2
+---@param p1 table
+---@param c2 table
+---@param p3 table
+---@param t number
+---@return any point
+function RL.GetSplinePointBezierQuad( p1, c2, p3, t ) end
+
+---Get (evaluate) spline point: Cubic Bezier
+---- Success return Vector2
+---@param p1 table
+---@param c2 table
+---@param c3 table
+---@param p4 table
+---@param t number
+---@return any point
+function RL.GetSplinePointBezierCubic( p1, c2, c3, p4, t ) end
+
+-- Shapes - Basic shapes collision detection functions
+
+---Check collision between two rectangles
+---- Success return bool
+---@param rec1 table
+---@param rec2 table
+---@return any collision
+function RL.CheckCollisionRecs( rec1, rec2 ) end
+
+---Check collision between two circles
+---- Success return bool
+---@param center1 table
+---@param radius1 number
+---@param center2 table
+---@param radius2 number
+---@return any collision
+function RL.CheckCollisionCircles( center1, radius1, center2, radius2 ) end
+
+---Check collision between circle and rectangle
+---- Success return bool
+---@param center table
+---@param radius number
+---@param rec table
+---@return any collision
+function RL.CheckCollisionCircleRec( center, radius, rec ) end
+
+---Check if circle collides with a line created betweeen two points [p1] and [p2]
+---- Success return bool
+---@param center table
+---@param radius number
+---@param p1 table
+---@param p2 table
+---@return any collision
+function RL.CheckCollisionCircleLine( center, radius, p1, p2 ) end
+
+---Check if point is inside rectangle
+---- Success return bool
+---@param point table
+---@param rec table
+---@return any collision
+function RL.CheckCollisionPointRec( point, rec ) end
+
+---Check if point is inside circle
+---- Success return bool
+---@param point table
+---@param center table
+---@param radius number
+---@return any collision
+function RL.CheckCollisionPointCircle( point, center, radius ) end
+
+---Check if point is inside a triangle
+---- Success return bool
+---@param point table
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@return any collision
+function RL.CheckCollisionPointTriangle( point, p1, p2, p3 ) end
+
+---Check if point is within a polygon described by array of vertices
+---- Success return bool
+---@param point table
+---@param points table
+---@return any collision
+function RL.CheckCollisionPointPoly( point, points ) end
+
+---Check the collision between two lines defined by two points each, returns collision point by reference
+---- Success return bool, Vector2
+---@param startPos1 table
+---@param endPos1 table
+---@param startPos2 table
+---@param endPos2 table
+---@return any collision
+---@return any position
+function RL.CheckCollisionLines( startPos1, endPos1, startPos2, endPos2 ) end
+
+---Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold]
+---- Success return bool
+---@param point table
+---@param p1 table
+---@param p2 table
+---@param threshold integer
+---@return any collision
+function RL.CheckCollisionPointLine( point, p1, p2, threshold ) end
+
+---Get collision rectangle for two rectangles collision
+---- Success return Rectangle
+---@param rec1 table
+---@param rec2 table
+---@return any rectangle
+function RL.GetCollisionRec( rec1, rec2 ) end
+
+---Useful for e.g. packing rectangular textures into an atlas. stbrp_pack_rects
+---- Success return Rectangle{}
+---@param rects table
+---@param size table
+---@param padding integer
+---@return any rects{}
+function RL.RectPack( rects, size, padding ) end
+
+-- Textures - Image loading functions
+
+---Load image from file into CPU memory (RAM)
+---- Failure return nil
+---- Success return Image
+---@param fileName string
+---@return any image
+function RL.LoadImage( fileName ) end
+
+---Load image from RAW file data
+---- Failure return nil
+---- Success return Image
+---@param fileName string
+---@param size table
+---@param format integer
+---@param headerSize integer
+---@return any image
+function RL.LoadImageRaw( fileName, size, format, headerSize ) end
+
+---Load image sequence from file (frames appended to image.data). All frames are returned in RGBA format
+---- Failure return nil
+---- Success return Image, int
+---@param fileName string
+---@return any image
+---@return any frameCount
+function RL.LoadImageAnim( fileName ) end
+
+---Load image sequence from memory buffer. All frames are returned in RGBA format
+---- Success return Image, int
+---@param fileType string
+---@param fileData any
+---@return any image
+---@return any frameCount
+function RL.LoadImageAnimFromMemory( fileType, fileData ) end
+
+---Load image from memory buffer, fileType refers to extension: i.e. '.png'
+---- Success return Image
+---@param fileType string
+---@param data any
+---@return any image
+---@return any frameCount
+function RL.LoadImageFromMemory( fileType, data ) end
+
+---Load image from data
+---- Success return Image
+---@param data any
+---@param size table
+---@param mipmaps integer
+---@param format integer
+---@return any image
+---@return any frameCount
+function RL.LoadImageFromData( data, size, mipmaps, format ) end
+
+---Load image from GPU texture data
+---- Success return Image
+---@param texture any
+---@return any image
+function RL.LoadImageFromTexture( texture ) end
+
+---Load image from screen buffer and (screenshot)
+---- Success return Image
+---@return any image
+function RL.LoadImageFromScreen() end
+
+---Check if an image is valid (data and parameters)
+---- Success return bool
+---@param image any
+---@return any isValid
+function RL.IsImageValid( image ) end
+
+---Unload image from CPU memory (RAM)
+---@param image any
+---@return any RL.UnloadImage
+function RL.UnloadImage( image ) end
+
+---Export image data to file, returns true on success
+---- Success return bool
+---@param image any
+---@param fileName string
+---@return any success
+function RL.ExportImage( image, fileName ) end
+
+---Export image to memory buffer
+---- Success return Buffer
+---@param image any
+---@param fileType string
+---@return any buffer
+function RL.ExportImageToMemory( image, fileType ) end
+
+---Export image as code file defining an array of bytes, returns true on success
+---- Success return bool
+---@param image any
+---@param fileName string
+---@return any success
+function RL.ExportImageAsCode( image, fileName ) end
+
+-- Textures - Image generation functions
+
+---Generate image: plain color
+---- Success return Image
+---@param size table
+---@param color table
+---@return any image
+function RL.GenImageColor( size, color ) end
+
+---Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient
+---- Success return Image
+---@param size table
+---@param direction integer
+---@param a table
+---@param b table
+---@return any image
+function RL.GenImageGradientLinear( size, direction, a, b ) end
+
+---Generate image: radial gradient
+---- Success return Image
+---@param size table
+---@param density number
+---@param inner table
+---@param outer table
+---@return any image
+function RL.GenImageGradientRadial( size, density, inner, outer ) end
+
+---Generate image: square gradient
+---- Success return Image
+---@param size table
+---@param density number
+---@param inner table
+---@param outer table
+---@return any image
+function RL.GenImageGradientSquare( size, density, inner, outer ) end
+
+---Generate image: checked
+---- Success return Image
+---@param size table
+---@param checks table
+---@param col1 table
+---@param col2 table
+---@return any image
+function RL.GenImageChecked( size, checks, col1, col2 ) end
+
+---Generate image: white noise
+---- Success return Image
+---@param size table
+---@param factor number
+---@return any image
+function RL.GenImageWhiteNoise( size, factor ) end
+
+---Generate image: perlin noise
+---- Success return Image
+---@param size table
+---@param offset table
+---@param factor number
+---@return any image
+function RL.GenImagePerlinNoise( size, offset, factor ) end
+
+---Generate image: cellular algorithm. Bigger tileSize means bigger cells
+---- Success return Image
+---@param size table
+---@param tileSize integer
+---@return any image
+function RL.GenImageCellular( size, tileSize ) end
+
+---Generate image: grayscale image from text data
+---- Success return Image
+---@param size table
+---@param text string
+---@return any image
+function RL.GenImageText( size, text ) end
+
+-- Textures - Image manipulation functions
+
+---Create an image duplicate (useful for transformations)
+---- Success return Image
+---@param image any
+---@return any image
+function RL.ImageCopy( image ) end
+
+---Create an image from another image piece
+---- Success return Image
+---@param image any
+---@param rec table
+---@return any image
+function RL.ImageFromImage( image, rec ) end
+
+---Create an image from a selected channel of another image (GRAYSCALE)
+---- Success return Image
+---@param image any
+---@param selectedChannel integer
+---@return any image
+function RL.ImageFromChannel( image, selectedChannel ) end
+
+---Create an image from text (default font)
+---- Success return Image
+---@param text string
+---@param fontSize integer
+---@param tint table
+---@return any image
+function RL.ImageText( text, fontSize, tint ) end
+
+---Create an image from text (custom sprite font)
+---- Success return Image
+---@param font any
+---@param text string
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any image
+function RL.ImageTextEx( font, text, fontSize, spacing, tint ) end
+
+---Convert image data to desired format
+---@param image any
+---@param newFormat integer
+---@return any RL.ImageFormat
+function RL.ImageFormat( image, newFormat ) end
+
+---Convert image to POT (power-of-two)
+---@param image any
+---@param fill table
+---@return any RL.ImageToPOT
+function RL.ImageToPOT( image, fill ) end
+
+---Crop an image to a defined rectangle
+---@param image any
+---@param crop table
+---@return any RL.ImageCrop
+function RL.ImageCrop( image, crop ) end
+
+---Crop image depending on alpha value
+---@param image any
+---@param threshold number
+---@return any RL.ImageAlphaCrop
+function RL.ImageAlphaCrop( image, threshold ) end
+
+---Clear alpha channel to desired color
+---@param image any
+---@param color table
+---@param threshold number
+---@return any RL.ImageAlphaClear
+function RL.ImageAlphaClear( image, color, threshold ) end
+
+---Apply alpha mask to image
+---@param image any
+---@param alphaMask any
+---@return any RL.ImageAlphaMask
+function RL.ImageAlphaMask( image, alphaMask ) end
+
+---Premultiply alpha channel
+---@param image any
+---@return any RL.ImageAlphaPremultiply
+function RL.ImageAlphaPremultiply( image ) end
+
+---Apply Gaussian blur using a box blur approximation
+---@param image any
+---@param blurSize integer
+---@return any RL.ImageBlurGaussian
+function RL.ImageBlurGaussian( image, blurSize ) end
+
+---Apply custom square convolution kernel to image
+---@param image any
+---@param kernel table
+---@return any RL.ImageKernelConvolution
+function RL.ImageKernelConvolution( image, kernel ) end
+
+---Resize image (Bicubic scaling algorithm)
+---@param image any
+---@param size table
+---@return any RL.ImageResize
+function RL.ImageResize( image, size ) end
+
+---Resize image (Nearest-Neighbor scaling algorithm)
+---@param image any
+---@param size table
+---@return any RL.ImageResizeNN
+function RL.ImageResizeNN( image, size ) end
+
+---Resize canvas and fill with color
+---@param image any
+---@param size table
+---@param offset table
+---@param fill table
+---@return any RL.ImageResizeCanvas
+function RL.ImageResizeCanvas( image, size, offset, fill ) end
+
+---Generate all mipmap levels for a provided image
+---@param image any
+---@return any RL.ImageMipmaps
+function RL.ImageMipmaps( image ) end
+
+---Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
+---@param image any
+---@param bpp table
+---@return any RL.ImageDither
+function RL.ImageDither( image, bpp ) end
+
+---Flip image vertically
+---@param image any
+---@return any RL.ImageFlipVertical
+function RL.ImageFlipVertical( image ) end
+
+---Flip image horizontally
+---@param image any
+---@return any RL.ImageFlipHorizontal
+function RL.ImageFlipHorizontal( image ) end
+
+---Rotate image by input angle in degrees (-359 to 359)
+---@param image any
+---@param degrees integer
+---@return any RL.ImageRotate
+function RL.ImageRotate( image, degrees ) end
+
+---Rotate image clockwise 90deg
+---@param image any
+---@return any RL.ImageRotateCW
+function RL.ImageRotateCW( image ) end
+
+---Rotate image counter-clockwise 90deg
+---@param image any
+---@return any RL.ImageRotateCCW
+function RL.ImageRotateCCW( image ) end
+
+---Modify image color: tint
+---@param image any
+---@param color table
+---@return any RL.ImageColorTint
+function RL.ImageColorTint( image, color ) end
+
+---Modify image color: invert
+---@param image any
+---@return any RL.ImageColorInvert
+function RL.ImageColorInvert( image ) end
+
+---Modify image color: grayscale
+---@param image any
+---@return any RL.ImageColorGrayscale
+function RL.ImageColorGrayscale( image ) end
+
+---Modify image color: contrast (-100 to 100)
+---@param image any
+---@param contrast number
+---@return any RL.ImageColorContrast
+function RL.ImageColorContrast( image, contrast ) end
+
+---Modify image color: brightness (-255 to 255)
+---@param image any
+---@param brightness integer
+---@return any RL.ImageColorBrightness
+function RL.ImageColorBrightness( image, brightness ) end
+
+---Modify image color: replace color
+---@param image any
+---@param color table
+---@param replace table
+---@return any RL.ImageColorReplace
+function RL.ImageColorReplace( image, color, replace ) end
+
+---Load color data from image as a Color array (RGBA - 32bit)
+---- Success return Color{}
+---@param image any
+---@return any colors
+function RL.LoadImageColors( image ) end
+
+---Load colors palette from image as a Color array (RGBA - 32bit)
+---- Success return Color{}
+---@param image any
+---@param maxPaletteSize integer
+---@return any colors
+function RL.LoadImagePalette( image, maxPaletteSize ) end
+
+---Get image alpha border rectangle
+---- Success return Rectangle
+---@param image any
+---@param threshold number
+---@return any rectangle
+function RL.GetImageAlphaBorder( image, threshold ) end
+
+---Get image pixel color at (x, y) position
+---- Success return Color
+---@param image any
+---@param pixelPos table
+---@return any color
+function RL.GetImageColor( image, pixelPos ) end
+
+-- Textures - Image configuration functions
+
+---Set image data from Buffer
+---@param image any
+---@param data any
+---@return any RL.SetImageData
+function RL.SetImageData( image, data ) end
+
+---Get image data as Buffer
+---- Success return Buffer
+---@param image any
+---@return any imageData
+function RL.GetImageData( image ) end
+
+---Get image size
+---- Success return Vector2
+---@param image any
+---@return any size
+function RL.GetImageSize( image ) end
+
+---Get image mipmaps. Mipmap levels, 1 by default
+---- Success return int
+---@param image any
+---@return any mipmaps
+function RL.GetImageMipmaps( image ) end
+
+---Get image data format (PixelFormat type)
+---- Success return int
+---@param image any
+---@return any format
+function RL.GetImageFormat( image ) end
+
+-- Textures - Image drawing functions
+
+---Clear image background with given color
+---@param dst any
+---@param color table
+---@return any RL.ImageClearBackground
+function RL.ImageClearBackground( dst, color ) end
+
+---Draw pixel within an image
+---@param dst any
+---@param position table
+---@param color table
+---@return any RL.ImageDrawPixel
+function RL.ImageDrawPixel( dst, position, color ) end
+
+---Draw line within an image
+---@param dst any
+---@param start table
+---@param end table
+---@param color table
+---@return any RL.ImageDrawLine
+function RL.ImageDrawLine( dst, start, end, color ) end
+
+---Draw a line defining thickness within an image
+---@param dst any
+---@param start table
+---@param end table
+---@param thick integer
+---@param color table
+---@return any RL.ImageDrawLineEx
+function RL.ImageDrawLineEx( dst, start, end, thick, color ) end
+
+---Draw circle within an image
+---@param dst any
+---@param center table
+---@param radius integer
+---@param color table
+---@return any RL.ImageDrawCircle
+function RL.ImageDrawCircle( dst, center, radius, color ) end
+
+---Draw circle outline within an image
+---@param dst any
+---@param center table
+---@param radius integer
+---@param color table
+---@return any RL.ImageDrawCircleLines
+function RL.ImageDrawCircleLines( dst, center, radius, color ) end
+
+---Draw rectangle within an image
+---@param dst any
+---@param rec table
+---@param color table
+---@return any RL.ImageDrawRectangle
+function RL.ImageDrawRectangle( dst, rec, color ) end
+
+---Draw rectangle lines within an image
+---@param dst any
+---@param rec table
+---@param thick integer
+---@param color table
+---@return any RL.ImageDrawRectangleLines
+function RL.ImageDrawRectangleLines( dst, rec, thick, color ) end
+
+---Draw triangle within an image
+---@param dst any
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any RL.ImageDrawTriangle
+function RL.ImageDrawTriangle( dst, v1, v2, v3, color ) end
+
+---Draw triangle with interpolated colors within an image
+---@param dst any
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param c1 table
+---@param c2 table
+---@param c3 table
+---@return any RL.ImageDrawTriangleEx
+function RL.ImageDrawTriangleEx( dst, v1, v2, v3, c1, c2, c3 ) end
+
+---Draw triangle outline within an image
+---@param dst any
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any RL.ImageDrawTriangleLines
+function RL.ImageDrawTriangleLines( dst, v1, v2, v3, color ) end
+
+---Draw a triangle fan defined by points within an image (first vertex is the center)
+---@param dst any
+---@param points table
+---@param color table
+---@return any RL.ImageDrawTriangleFan
+function RL.ImageDrawTriangleFan( dst, points, color ) end
+
+---Draw a triangle strip defined by points within an image
+---@param dst any
+---@param points table
+---@param color table
+---@return any RL.ImageDrawTriangleStrip
+function RL.ImageDrawTriangleStrip( dst, points, color ) end
+
+---Draw a source image within a destination image (Tint applied to source)
+---@param dst any
+---@param src any
+---@param srcRec table
+---@param dstRec table
+---@param tint table
+---@return any RL.ImageDraw
+function RL.ImageDraw( dst, src, srcRec, dstRec, tint ) end
+
+---Draw text (using default font) within an image (destination)
+---@param dst any
+---@param text string
+---@param position table
+---@param fontSize number
+---@param tint table
+---@return any RL.ImageDrawText
+function RL.ImageDrawText( dst, text, position, fontSize, tint ) end
+
+---Draw text (Custom sprite font) within an image (Destination)
+---@param dst any
+---@param font any
+---@param text string
+---@param position table
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any RL.ImageDrawTextEx
+function RL.ImageDrawTextEx( dst, font, text, position, fontSize, spacing, tint ) end
+
+-- Textures - Texture loading functions
+
+---Get default texture. Return as lightuserdata
+---- Success return Texture
+---@return any texture
+function RL.GetTextureDefault() end
+
+---Load texture from file into GPU memory ( VRAM )
+---- Failure return nil
+---- Success return Texture
+---@param fileName string
+---@return any texture
+function RL.LoadTexture( fileName ) end
+
+---Load texture from image data
+---- Success return Texture
+---@param image any
+---@return any texture
+function RL.LoadTextureFromImage( image ) end
+
+---Load cubemap from image, multiple image cubemap layouts supported
+---- Success return Texture
+---@param image any
+---@param layout integer
+---@return any texture
+function RL.LoadTextureCubemap( image, layout ) end
+
+---Load Texture from data
+---- Success return Texture
+---@param textureData table
+---@return any texture
+function RL.LoadTextureFromData( textureData ) end
+
+---Load texture for rendering (framebuffer)
+---- Success return RenderTexture
+---@param size table
+---@return any renderTexture
+function RL.LoadRenderTexture( size ) end
+
+---Load RenderTexture from data (framebuffer)
+---- Success return RenderTexture
+---@param renderTextureData table
+---@return any renderTexture
+function RL.LoadRenderTextureFromData( renderTextureData ) end
+
+---Check if a texture is valid (loaded in GPU)
+---- Success return bool
+---@param texture any
+---@return any isValid
+function RL.IsTextureValid( texture ) end
+
+---Unload texture from GPU memory (VRAM)
+---@param texture any
+---@return any RL.UnloadTexture
+function RL.UnloadTexture( texture ) end
+
+---Check if a render texture is valid (loaded in GPU)
+---- Success return bool
+---@param target any
+---@return any isValid
+function RL.IsRenderTextureValid( target ) end
+
+---Unload render texture from GPU memory (VRAM)
+---@param target any
+---@return any RL.UnloadRenderTexture
+function RL.UnloadRenderTexture( target ) end
+
+---Update GPU texture with new data
+---@param texture any
+---@param pixels any
+---@return any RL.UpdateTexture
+function RL.UpdateTexture( texture, pixels ) end
+
+---Update GPU texture rectangle with new data.
+---@param texture any
+---@param rec table
+---@param pixels any
+---@return any RL.UpdateTextureRec
+function RL.UpdateTextureRec( texture, rec, pixels ) end
+
+-- Textures - Texture configuration functions
+
+---Generate GPU mipmaps for a texture
+---@param texture any
+---@return any RL.GenTextureMipmaps
+function RL.GenTextureMipmaps( texture ) end
+
+---Set texture scaling filter mode (TEXTURE_FILTER_POINT, TEXTURE_FILTER_BILINEAR...)
+---@param texture any
+---@param filter integer
+---@return any RL.SetTextureFilter
+function RL.SetTextureFilter( texture, filter ) end
+
+---Set texture wrapping mode (TEXTURE_WRAP_REPEAT, TEXTURE_WRAP_CLAMP...)
+---@param texture any
+---@param wrap integer
+---@return any RL.SetTextureWrap
+function RL.SetTextureWrap( texture, wrap ) end
+
+---Get OpenGL texture id
+---- Success return int
+---@param texture any
+---@return any id
+function RL.GetTextureId( texture ) end
+
+---Get texture size
+---- Success return Vector2
+---@param texture any
+---@return any size
+function RL.GetTextureSize( texture ) end
+
+---Get texture mipmaps. Mipmap levels, 1 by default
+---- Success return int
+---@param texture any
+---@return any mipmaps
+function RL.GetTextureMipmaps( texture ) end
+
+---Get texture data format (PixelFormat type)
+---- Success return int
+---@param texture any
+---@return any format
+function RL.GetTextureFormat( texture ) end
+
+-- Textures - Texture drawing functions
+
+---Draw a Texture2D
+---@param texture any
+---@param position table
+---@param tint table
+---@return any RL.DrawTexture
+function RL.DrawTexture( texture, position, tint ) end
+
+---Draw a Texture2D with extended parameters
+---@param texture any
+---@param position table
+---@param rotation number
+---@param scale number
+---@param tint table
+---@return any RL.DrawTextureEx
+function RL.DrawTextureEx( texture, position, rotation, scale, tint ) end
+
+---Draw a part of a texture defined by a rectangle
+---@param texture any
+---@param source table
+---@param position table
+---@param tint table
+---@return any RL.DrawTextureRec
+function RL.DrawTextureRec( texture, source, position, tint ) end
+
+---Draw a part of a texture defined by a rectangle with "pro" parameters
+---@param texture any
+---@param source table
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any RL.DrawTexturePro
+function RL.DrawTexturePro( texture, source, dest, origin, rotation, tint ) end
+
+---Draws a texture (or part of it) that stretches or shrinks nicely
+---@param texture any
+---@param nPatchInfo any
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any RL.DrawTextureNPatch
+function RL.DrawTextureNPatch( texture, nPatchInfo, dest, origin, rotation, tint ) end
+
+---Draws a texture (or part of it) that repeats nicely
+---@param texture any
+---@param nPatchInfo any
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any RL.DrawTextureNPatchRepeat
+function RL.DrawTextureNPatchRepeat( texture, nPatchInfo, dest, origin, rotation, tint ) end
+
+-- Textures - RenderTexture configuration functions
+
+---Get OpenGL framebuffer object id
+---- Success return int
+---@param renderTexture any
+---@return any id
+function RL.GetRenderTextureId( renderTexture ) end
+
+---Get color buffer attachment texture. Returns as lightuserdata
+---- Success return Texture
+---@param renderTexture any
+---@return any texture
+function RL.GetRenderTextureTexture( renderTexture ) end
+
+---Get depth buffer attachment texture. Returns as lightuserdata
+---- Success return Texture
+---@param renderTexture any
+---@return any texture
+function RL.GetRenderTextureDepthTexture( renderTexture ) end
+
+-- Textures - Color/pixel related functions
+
+---Check if two colors are equal
+---- Success return bool
+---@param col1 table
+---@param col2 table
+---@return any isEqual
+function RL.ColorIsEqual( col1, col2 ) end
+
+---Returns color with alpha applied, alpha goes from 0.0f to 1.0f
+---- Success return Color
+---@param color table
+---@param alpha number
+---@return any color
+function RL.Fade( color, alpha ) end
+
+---Returns hexadecimal value for a Color
+---- Success return int
+---@param color table
+---@return any value
+function RL.ColorToInt( color ) end
+
+---Returns Color normalized as float [0..1]
+---- Success return Vector4
+---@param color table
+---@return any color
+function RL.ColorNormalize( color ) end
+
+---Color from normalized values [0..1]
+---- Success return Color
+---@param normalized table
+---@return any color
+function RL.ColorFromNormalized( normalized ) end
+
+---Returns HSV values for a Color, hue [0..360], saturation/value [0..1]
+---- Success return Vector3
+---@param color table
+---@return any HSV
+function RL.ColorToHSV( color ) end
+
+---Returns a Color from HSV values, hue [0..360], saturation/value [0..1]
+---- Success return Color
+---@param hue number
+---@param saturation number
+---@param value number
+---@return any color
+function RL.ColorFromHSV( hue, saturation, value ) end
+
+---Get color multiplied with another color
+---- Success return Color
+---@param color table
+---@param tint table
+---@return any color
+function RL.ColorTint( color, tint ) end
+
+---Get color with brightness correction, brightness factor goes from -1.0f to 1.0f
+---- Success return Color
+---@param color table
+---@param factor number
+---@return any color
+function RL.ColorBrightness( color, factor ) end
+
+---Get color with contrast correction, contrast values between -1.0f and 1.0f
+---- Success return Color
+---@param color table
+---@param contrast number
+---@return any color
+function RL.ColorContrast( color, contrast ) end
+
+---Returns color with alpha applied, alpha goes from 0.0f to 1.0f
+---- Success return Color
+---@param color table
+---@param alpha number
+---@return any color
+function RL.ColorAlpha( color, alpha ) end
+
+---Returns src alpha-blended into dst color with tint
+---- Success return Color
+---@param dst table
+---@param src table
+---@param tint table
+---@return any color
+function RL.ColorAlphaBlend( dst, src, tint ) end
+
+---Get color lerp interpolation between two colors, factor [0.0f..1.0f]
+---- Success return Color
+---@param color1 table
+---@param color2 table
+---@param factor number
+---@return any color
+function RL.ColorLerp( color1, color2, factor ) end
+
+---Get Color structure from hexadecimal value
+---- Success return Color
+---@param hexValue integer
+---@return any color
+function RL.GetColor( hexValue ) end
+
+---Get pixel data size in bytes for certain format
+---- Success return int
+---@param size table
+---@param format integer
+---@return any size
+function RL.GetPixelDataSize( size, format ) end
+
+-- Text - Font loading/unloading functions
+
+---Get the default Font. Return as lightuserdata
+---- Success return Font
+---@return any font
+function RL.GetFontDefault() end
+
+---Load font from file into GPU memory (VRAM)
+---- Failure return nil
+---- Success return Font
+---@param fileName string
+---@return any font
+function RL.LoadFont( fileName ) end
+
+---Load font from file with extended parameters, use NULL for codepoints to load the default character set
+---- Failure return nil
+---- Success return Font
+---@param fileName string
+---@param fontSize integer
+---@param codepoints table|nil
+---@return any font
+function RL.LoadFontEx( fileName, fontSize, codepoints ) end
+
+---Load font from Image (XNA style)
+---- Success return Font
+---@param image any
+---@param key table
+---@param firstChar integer
+---@return any font
+function RL.LoadFontFromImage( image, key, firstChar ) end
+
+---Load font from memory buffer, fileType refers to extension: i.e. '.ttf'. NOTE: fileData type should be unsigned char
+---- Success return Font
+---@param fileType string
+---@param fileData any
+---@param fontSize integer
+---@param codepoints table
+---@return any font
+function RL.LoadFontFromMemory( fileType, fileData, fontSize, codepoints ) end
+
+---Load Font from data
+---- Success return Font
+---@param fontData table
+---@return any font
+function RL.LoadFontFromData( fontData ) end
+
+---Load font copy as new userdata
+---- Success return Font
+---@param font any
+---@return any font
+function RL.FontCopy( font ) end
+
+---Check if a font is valid (font data loaded, WARNING: GPU texture not checked)
+---- Success return bool
+---@param font any
+---@return any isValid
+function RL.IsFontValid( font ) end
+
+---Load font data for further use. NOTE: fileData type should be unsigned char
+---- Success return GlyphInfo{}
+---@param fileData any
+---@param fontSize integer
+---@param codepoints table
+---@param type integer
+---@return any glyphs
+function RL.LoadFontData( fileData, fontSize, codepoints, type ) end
+
+---Generate image font atlas using chars info. NOTE: Packing method: 0-Default, 1-Skyline
+---- Success Image, Rectangle{}
+---@param glyphs table
+---@param fontSize integer
+---@param padding integer
+---@param packMethod integer
+---@return any image
+---@return any rectangles
+function RL.GenImageFontAtlas( glyphs, fontSize, padding, packMethod ) end
+
+---Unload font from GPU memory (VRAM)
+---@param font any
+---@return any RL.UnloadFont
+function RL.UnloadFont( font ) end
+
+---Export font as code file, returns true on success
+---- Success return bool
+---@param font any
+---@param fileName string
+---@return any RL.ExportFontAsCode
+function RL.ExportFontAsCode( font, fileName ) end
+
+-- Text - Text drawing functions
+
+---Draw current FPS
+---@param pos table
+---@return any RL.DrawFPS
+function RL.DrawFPS( pos ) end
+
+---Draw text (using default font)
+---@param text string
+---@param position table
+---@param fontSize number
+---@param tint table
+---@return any RL.DrawText
+function RL.DrawText( text, position, fontSize, tint ) end
+
+---Draw text using font and additional parameters
+---@param font any
+---@param text string
+---@param position table
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any RL.DrawTextEx
+function RL.DrawTextEx( font, text, position, fontSize, spacing, tint ) end
+
+---Draw text using Font and pro parameters (rotation)
+---@param font any
+---@param text string
+---@param position table
+---@param origin table
+---@param rotation number
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any RL.DrawTextPro
+function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spacing, tint ) end
+
+---Draw one character (codepoint)
+---@param font any
+---@param codepoint integer
+---@param position table
+---@param fontSize number
+---@param tint table
+---@return any RL.DrawTextCodepoint
+function RL.DrawTextCodepoint( font, codepoint, position, fontSize, tint ) end
+
+---Draw multiple character (codepoint)
+---@param font any
+---@param codepoints table
+---@param position table
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any RL.DrawTextCodepoints
+function RL.DrawTextCodepoints( font, codepoints, position, fontSize, spacing, tint ) end
+
+---Draw text inside rectangle limits. Return character id from mouse position (default 0).
+---textOffset can be used to set start position inside rectangle. Usefull to pass from previous
+---DrawTextBoxed for continuous text.
+---Support for tint change with "\a#FFFFFFFF"
+---- Success return int, Vector2
+---@param font any
+---@param text string
+---@param rec table
+---@param fontSize number
+---@param spacing number
+---@param wordWrap boolean
+---@param tint table
+---@param limitHeight boolean
+---@param textOffset table|nil
+---@param tabSize integer|nil
+---@return any mouseCharId
+---@return any textOffset
+function RL.DrawTextBoxed( font, text, rec, fontSize, spacing, wordWrap, tint, limitHeight, textOffset, tabSize ) end
+
+-- Text - Text font info functions
+
+---Set vertical line spacing when drawing with line-breaks
+---@param spacing integer
+---@return any RL.SetTextLineSpacing
+function RL.SetTextLineSpacing( spacing ) end
+
+---Get vertical line spacing when drawing with line-breaks
+---- Success return int
+---@return any spacing
+function RL.GetTextLineSpacing() end
+
+---Measure string width for default font
+---- Success return int
+---@param text string
+---@param fontSize integer
+---@return any width
+function RL.MeasureText( text, fontSize ) end
+
+---Measure string size for Font
+---- Success return Vector2
+---@param font any
+---@param text string
+---@param fontSize number
+---@param spacing number
+---@return any size
+function RL.MeasureTextEx( font, text, fontSize, spacing ) end
+
+---Measure text inside rectangle limits.
+---- Success return Vector2, Vector2
+---@param font any
+---@param text string
+---@param rec table
+---@param fontSize number
+---@param spacing number
+---@param wordWrap boolean
+---@param tint table
+---@param limitHeight boolean
+---@param textOffset table
+---@param tabSize integer|nil
+---@return any size
+---@return any textOffset
+function RL.MeasureTextBoxed( font, text, rec, fontSize, spacing, wordWrap, tint, limitHeight, textOffset, tabSize ) end
+
+---Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
+---- Success return int
+---@param font any
+---@param codepoint integer
+---@return any index
+function RL.GetGlyphIndex( font, codepoint ) end
+
+---Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found. Return as lightuserdata
+---- Success return GlyphInfo
+---@param font any
+---@param codepoint integer
+---@return any glyphInfo
+function RL.GetGlyphInfo( font, codepoint ) end
+
+---Get glyph font info data by index. Return as lightuserdata
+---- Failure return nil
+---- Success return GlyphInfo
+---@param font any
+---@param index integer
+---@return any glyphInfo
+function RL.GetGlyphInfoByIndex( font, index ) end
+
+---Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
+---- Success return Rectangle
+---@param font any
+---@param codepoint integer
+---@return any rect
+function RL.GetGlyphAtlasRec( font, codepoint ) end
+
+---Get glyph rectangle in font atlas by index
+---- Failure return nil
+---- Success return Rectangle
+---@param font any
+---@param index integer
+---@return any rect
+function RL.GetGlyphAtlasRecByIndex( font, index ) end
+
+---Get font base size (default chars height)
+---- Success return int
+---@param font any
+---@return any baseSize
+function RL.GetFontBaseSize( font ) end
+
+---Get font number of glyph characters
+---- Success return int
+---@param font any
+---@return any glyphCount
+function RL.GetFontGlyphCount( font ) end
+
+---Get font padding around the glyph characters
+---- Success return int
+---@param font any
+---@return any glyphPadding
+function RL.GetFontGlyphPadding( font ) end
+
+---Get font texture atlas containing the glyphs. Return as lightuserdata
+---- Success return Texture
+---@param font any
+---@return any texture
+function RL.GetFontTexture( font ) end
+
+-- Text - GlyphInfo management functions
+
+---Load GlyphInfo from data
+---- Success return GlyphInfo
+---@param glyphInfoData table
+---@return any glyphInfo
+function RL.LoadGlyphInfo( glyphInfoData ) end
+
+---Unload glyphInfo image from CPU memory (RAM)
+---@param glyphInfo any
+---@return any RL.UnloadGlyphInfo
+function RL.UnloadGlyphInfo( glyphInfo ) end
+
+---Set glyphInfo character value (Unicode)
+---@param glyphInfo any
+---@param value integer
+---@return any RL.SetGlyphInfoValue
+function RL.SetGlyphInfoValue( glyphInfo, value ) end
+
+---Set glyphInfo character offset when drawing
+---@param glyphInfo any
+---@param offset table
+---@return any RL.SetGlyphInfoOffset
+function RL.SetGlyphInfoOffset( glyphInfo, offset ) end
+
+---Set glyphInfo character advance position X
+---@param glyphInfo any
+---@param advanceX integer
+---@return any RL.SetGlyphInfoAdvanceX
+function RL.SetGlyphInfoAdvanceX( glyphInfo, advanceX ) end
+
+---Set glyphInfo character image data
+---@param glyphInfo any
+---@param image any
+---@return any RL.SetGlyphInfoImage
+function RL.SetGlyphInfoImage( glyphInfo, image ) end
+
+---Get glyphInfo character value (Unicode)
+---- Success return int
+---@param glyphInfo any
+---@return any value
+function RL.GetGlyphInfoValue( glyphInfo ) end
+
+---Get glyphInfo character offset when drawing
+---- Success return Vector2
+---@param glyphInfo any
+---@return any offset
+function RL.GetGlyphInfoOffset( glyphInfo ) end
+
+---Get glyphInfo character advance position X
+---- Success return int
+---@param glyphInfo any
+---@return any advanceX
+function RL.GetGlyphInfoAdvanceX( glyphInfo ) end
+
+---Get glyphInfo character image data. Return as lightuserdata
+---- Success return Image
+---@param glyphInfo any
+---@return any image
+function RL.GetGlyphInfoImage( glyphInfo ) end
+
+-- Text - Text codepoints management functions (unicode characters)
+
+---Load UTF-8 text encoded from codepoints array
+---- Success return string
+---@param codepoints table
+---@return any string
+function RL.LoadUTF8( codepoints ) end
+
+---Load all codepoints from a UTF-8 text string
+---- Success return int{}
+---@param text string
+---@return any codepoints
+function RL.LoadCodepoints( text ) end
+
+---Get total number of codepoints in a UTF-8 encoded string
+---- Success return int
+---@param text string
+---@return any count
+function RL.GetCodepointCount( text ) end
+
+---Get codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+---- Success return int, int
+---@param text string
+---@param position integer
+---@return any codepoint
+---@return any codepointSize
+function RL.GetCodepoint( text, position ) end
+
+---Get next codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+---- Success return int, int
+---@param text string
+---@param position integer
+---@return any codepoint
+---@return any codepointSize
+function RL.GetCodepointNext( text, position ) end
+
+---Get previous codepoint in a UTF-8 encoded string, 0x3f('?') is returned on failure
+---- Success return int, int
+---@param text string
+---@param position integer
+---@return any codepoint
+---@return any codepointSize
+function RL.GetCodepointPrevious( text, position ) end
+
+---Encode one codepoint into UTF-8 byte array
+---- Success return string
+---@param codepoint integer
+---@return any string
+function RL.CodepointToUTF8( codepoint ) end
+
+-- Text - Text strings management functions (no UTF-8 strings, only byte chars)
+
+---Get a piece of a text string
+---- Success return string
+---@param text string
+---@param position integer
+---@param length integer
+---@return any text
+function RL.TextSubtext( text, position, length ) end
+
+---Replace text string
+---- Success return string
+---@param text string
+---@param replace string
+---@param by string
+---@return any text
+function RL.TextReplace( text, replace, by ) end
+
+---Insert text in a specific position, moves all text forward
+---- Success return string
+---@param text string
+---@param insert string
+---@param position integer
+---@return any text
+function RL.TextInsert( text, insert, position ) end
+
+---Split text into multiple strings
+---- Success return string{}
+---@param text string
+---@param delimiter any
+---@return any splits
+function RL.TextSplit( text, delimiter ) end
+
+---Find first text occurrence within a string
+---- Success return int
+---@param text string
+---@param find string
+---@return any index
+function RL.TextFindIndex( text, find ) end
+
+---Get Pascal case notation version of provided string
+---- Success return string
+---@param text string
+---@return any text
+function RL.TextToPascal( text ) end
+
+---Get Snake case notation version of provided string
+---- Success return string
+---@param text string
+---@return any text
+function RL.TextToSnake( text ) end
+
+---Get Camel case notation version of provided string
+---- Success return string
+---@param text string
+---@return any text
+function RL.TextToCamel( text ) end
+
+-- Models - Basic geometric 3D shapes drawing functions
+
+---Draw a line in 3D world space
+---@param startPos table
+---@param endPos table
+---@param color table
+---@return any RL.DrawLine3D
+function RL.DrawLine3D( startPos, endPos, color ) end
+
+---Draw a point in 3D space, actually a small line
+---@param position table
+---@param color table
+---@return any RL.DrawPoint3D
+function RL.DrawPoint3D( position, color ) end
+
+---Draw a circle in 3D world space
+---@param center table
+---@param radius number
+---@param rotationAxis table
+---@param rotationAngle number
+---@param color table
+---@return any RL.DrawCircle3D
+function RL.DrawCircle3D( center, radius, rotationAxis, rotationAngle, color ) end
+
+---Draw a color-filled triangle (Vertex in counter-clockwise order!)
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any RL.DrawTriangle3D
+function RL.DrawTriangle3D( v1, v2, v3, color ) end
+
+---Draw a triangle strip defined by points
+---@param points table
+---@param color table
+---@return any RL.DrawTriangleStrip3D
+function RL.DrawTriangleStrip3D( points, color ) end
+
+---Draw cube
+---@param position table
+---@param size table
+---@param color table
+---@return any RL.DrawCube
+function RL.DrawCube( position, size, color ) end
+
+---Draw cube wires
+---@param position table
+---@param size table
+---@param color table
+---@return any RL.DrawCubeWires
+function RL.DrawCubeWires( position, size, color ) end
+
+---Draw sphere
+---@param centerPos table
+---@param radius number
+---@param color table
+---@return any RL.DrawSphere
+function RL.DrawSphere( centerPos, radius, color ) end
+
+---Draw sphere with extended parameters
+---@param centerPos table
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@param color table
+---@return any RL.DrawSphereEx
+function RL.DrawSphereEx( centerPos, radius, rings, slices, color ) end
+
+---Draw sphere wires
+---@param centerPos table
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@param color table
+---@return any RL.DrawSphereWires
+function RL.DrawSphereWires( centerPos, radius, rings, slices, color ) end
+
+---Draw a cylinder/cone
+---@param position table
+---@param radiusTop number
+---@param radiusBottom number
+---@param height number
+---@param slices integer
+---@param color table
+---@return any RL.DrawCylinder
+function RL.DrawCylinder( position, radiusTop, radiusBottom, height, slices, color ) end
+
+---Draw a cylinder with base at startPos and top at endPos
+---@param startPos table
+---@param endPos table
+---@param startRadius number
+---@param endRadius number
+---@param sides integer
+---@param color table
+---@return any RL.DrawCylinderEx
+function RL.DrawCylinderEx( startPos, endPos, startRadius, endRadius, sides, color ) end
+
+---Draw a cylinder/cone wires
+---@param position table
+---@param radiusTop number
+---@param radiusBottom number
+---@param height number
+---@param slices integer
+---@param color table
+---@return any RL.DrawCylinderWires
+function RL.DrawCylinderWires( position, radiusTop, radiusBottom, height, slices, color ) end
+
+---Draw a cylinder wires with base at startPos and top at endPos
+---@param startPos table
+---@param endPos table
+---@param startRadius number
+---@param endRadius number
+---@param sides integer
+---@param color table
+---@return any RL.DrawCylinderWiresEx
+function RL.DrawCylinderWiresEx( startPos, endPos, startRadius, endRadius, sides, color ) end
+
+---Draw a capsule with the center of its sphere caps at startPos and endPos
+---@param startPos table
+---@param endPos table
+---@param radius number
+---@param slices integer
+---@param rings integer
+---@param color table
+---@return any RL.DrawCapsule
+function RL.DrawCapsule( startPos, endPos, radius, slices, rings, color ) end
+
+---Draw capsule wireframe with the center of its sphere caps at startPos and endPos
+---@param startPos table
+---@param endPos table
+---@param radius number
+---@param slices integer
+---@param rings integer
+---@param color table
+---@return any RL.DrawCapsuleWires
+function RL.DrawCapsuleWires( startPos, endPos, radius, slices, rings, color ) end
+
+---Draw a plane XZ
+---@param centerPos table
+---@param size table
+---@param color table
+---@return any RL.DrawPlane
+function RL.DrawPlane( centerPos, size, color ) end
+
+---Draw 3D textured quad. (Texture coordinates opengl style 0.0 - 1.0)
+---@param texture any
+---@param vertices table
+---@param texCoords table
+---@param colors table
+---@return any RL.DrawQuad3DTexture
+function RL.DrawQuad3DTexture( texture, vertices, texCoords, colors ) end
+
+---Draw a ray line
+---@param ray any
+---@param color table
+---@return any RL.DrawRay
+function RL.DrawRay( ray, color ) end
+
+---Draw a grid (Centered at ( 0, 0, 0 ))
+---@param slices integer
+---@param spacing number
+---@return any RL.DrawGrid
+function RL.DrawGrid( slices, spacing ) end
+
+---Draw a grid with extended parameters. Optionally you can define divider with different color for every n slices
+---@param slices table
+---@param spacing table
+---@param transform table
+---@param color table
+---@param divider table|nil
+---@param dividerColor table|nil
+---@return any RL.DrawGridEx
+function RL.DrawGridEx( slices, spacing, transform, color, divider, dividerColor ) end
+
+-- Models - Model management functions
+
+---Load model from files (Meshes and materials)
+---- Failure return nil
+---- Success return Model
+---@param fileName string
+---@return any model
+function RL.LoadModel( fileName ) end
+
+---Load model from generated mesh (Default material)
+---- Success return Model
+---@param mesh any
+---@return any model
+function RL.LoadModelFromMesh( mesh ) end
+
+---Check if a model is valid (loaded in GPU, VAO/VBOs)
+---- Success return bool
+---@param model any
+---@return any isValid
+function RL.IsModelValid( model ) end
+
+---Unload model (meshes/materials) from memory (RAM and/or VRAM)
+---@param model any
+---@return any RL.UnloadModel
+function RL.UnloadModel( model ) end
+
+---Compute model bounding box limits (considers all meshes)
+---- Success return BoundingBox
+---@param model any
+---@return any boundingBox
+function RL.GetModelBoundingBox( model ) end
+
+---Set model transform matrix
+---@param model any
+---@param transform table
+---@return any RL.SetModelTransform
+function RL.SetModelTransform( model, transform ) end
+
+---Set model mesh.
+---- Failure return false
+---- Success return true
+---@param model any
+---@param meshId integer
+---@param mesh any
+---@return any success
+function RL.SetModelMesh( model, meshId, mesh ) end
+
+---Set material to model material
+---- Failure return false
+---- Success return true
+---@param model any
+---@param materialId integer
+---@param material any
+---@return any success
+function RL.SetModelMaterial( model, materialId, material ) end
+
+---Set material for a mesh (Mesh and material on this model)
+---@param model any
+---@param meshId integer
+---@param materialId integer
+---@return any RL.SetModelMeshMaterial
+function RL.SetModelMeshMaterial( model, meshId, materialId ) end
+
+---Set model bone information (skeleton)
+---- Failure return false
+---- Success return true
+---@param model any
+---@param boneId integer
+---@param bone any
+---@return any success
+function RL.SetModelBone( model, boneId, bone ) end
+
+---Set model bones base transformation (pose)
+---- Failure return false
+---- Success return true
+---@param model any
+---@param boneId integer
+---@param pose any
+---@return any success
+function RL.SetModelBindPose( model, boneId, pose ) end
+
+---Get model transform matrix
+---- Success return Matrix
+---@param model any
+---@return any transform
+function RL.GetModelTransform( model ) end
+
+---Get model number of meshes
+---- Success return int
+---@param model any
+---@return any meshCount
+function RL.GetModelMeshCount( model ) end
+
+---Get model number of materials
+---- Success return int
+---@param model any
+---@return any meshCount
+function RL.GetModelMaterialCount( model ) end
+
+---Get model mesh. Return as lightuserdata
+---- Failure return nil
+---- Success return Mesh
+---@param model any
+---@param meshId integer
+---@return any mesh
+function RL.GetModelMesh( model, meshId ) end
+
+---Get model material. Return as lightuserdata
+---- Failure return nil
+---- Success return Material
+---@param model any
+---@param materialId integer
+---@return any material
+function RL.GetModelMaterial( model, materialId ) end
+
+---Get model number of bones
+---- Success return int
+---@param model any
+---@return any boneCount
+function RL.GetModelBoneCount( model ) end
+
+---Get model bones information (skeleton)
+---- Failure return nil
+---- Success return BoneInfo
+---@param model any
+---@param boneId integer
+---@return any bone
+function RL.GetModelBone( model, boneId ) end
+
+---Get models bones base transformation (pose)
+---- Failure return nil
+---- Success return Transform
+---@param model any
+---@param boneId integer
+---@return any pose
+function RL.GetModelBindPose( model, boneId ) end
+
+-- Models - Model drawing functions
+
+---Draw a model (With texture if set)
+---@param model any
+---@param position table
+---@param scale number
+---@param tint table
+---@return any RL.DrawModel
+function RL.DrawModel( model, position, scale, tint ) end
+
+---Draw a model with extended parameters
+---@param model any
+---@param position table
+---@param rotationAxis table
+---@param rotationAngle number
+---@param scale table
+---@param tint table
+---@return any RL.DrawModelEx
+function RL.DrawModelEx( model, position, rotationAxis, rotationAngle, scale, tint ) end
+
+---Draw a model wires (with texture if set)
+---@param model any
+---@param position table
+---@param scale number
+---@param tint table
+---@return any RL.DrawModelWires
+function RL.DrawModelWires( model, position, scale, tint ) end
+
+---Draw a model wires (with texture if set) with extended parameters
+---@param model any
+---@param position table
+---@param rotationAxis table
+---@param rotationAngle number
+---@param scale table
+---@param tint table
+---@return any RL.DrawModelWiresEx
+function RL.DrawModelWiresEx( model, position, rotationAxis, rotationAngle, scale, tint ) end
+
+---Draw a model as points
+---@param model any
+---@param position table
+---@param scale number
+---@param tint table
+---@return any RL.DrawModelPoints
+function RL.DrawModelPoints( model, position, scale, tint ) end
+
+---Draw a model as points with extended parameters
+---@param model any
+---@param position table
+---@param rotationAxis table
+---@param rotationAngle number
+---@param scale table
+---@param tint table
+---@return any RL.DrawModelPointsEx
+function RL.DrawModelPointsEx( model, position, rotationAxis, rotationAngle, scale, tint ) end
+
+---Draw bounding box (wires)
+---@param box any
+---@param color table
+---@return any RL.DrawBoundingBox
+function RL.DrawBoundingBox( box, color ) end
+
+---Draw a billboard texture
+---@param camera any
+---@param texture any
+---@param position table
+---@param size number
+---@param tint table
+---@return any RL.DrawBillboard
+function RL.DrawBillboard( camera, texture, position, size, tint ) end
+
+---Draw a billboard texture defined by source
+---@param camera any
+---@param texture any
+---@param source table
+---@param position table
+---@param size table
+---@param tint table
+---@return any RL.DrawBillboardRec
+function RL.DrawBillboardRec( camera, texture, source, position, size, tint ) end
+
+---Draw a billboard texture defined by source and rotation
+---@param camera any
+---@param texture any
+---@param source table
+---@param position table
+---@param up table
+---@param size table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any RL.DrawBillboardPro
+function RL.DrawBillboardPro( camera, texture, source, position, up, size, origin, rotation, tint ) end
+
+-- Models - Mesh management functions
+
+---Update mesh vertex data in GPU.
+---NOTE: Mainly intented to be used with custom meshes.
+---@param mesh any
+---@param meshData table
+---@return any RL.UpdateMesh
+function RL.UpdateMesh( mesh, meshData ) end
+
+---Unload mesh data from CPU and GPU
+---@param mesh any
+---@return any RL.UnloadMesh
+function RL.UnloadMesh( mesh ) end
+
+---Draw a 3d mesh with material and transform
+---@param mesh any
+---@param material any
+---@param transform table
+---@return any RL.DrawMesh
+function RL.DrawMesh( mesh, material, transform ) end
+
+---Draw multiple mesh instances with material and different transforms
+---@param mesh any
+---@param material any
+---@param transforms any
+---@param instances integer
+---@return any RL.DrawMeshInstanced
+function RL.DrawMeshInstanced( mesh, material, transforms, instances ) end
+
+---Updades mesh color vertex attribute buffer
+---NOTE: Currently only works on custom mesh
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@param color table
+---@return any success
+function RL.SetMeshColor( mesh, color ) end
+
+---Export mesh data to file, returns true on success
+---- Success return bool
+---@param mesh any
+---@param fileName string
+---@return any success
+function RL.ExportMesh( mesh, fileName ) end
+
+---Export mesh as code file (.h) defining multiple arrays of vertex attributes
+---- Success return bool
+---@param mesh any
+---@param fileName string
+---@return any success
+function RL.ExportMeshAsCode( mesh, fileName ) end
+
+---Compute mesh bounding box limits
+---- Success return BoundingBox
+---@param mesh any
+---@return any boundingBox
+function RL.GetMeshBoundingBox( mesh ) end
+
+---Compute mesh tangents
+---@param mesh any
+---@return any RL.GenMeshTangents
+function RL.GenMeshTangents( mesh ) end
+
+---Get mesh vertex attributes data as table.
+---- Success return Mesh{}
+---@param mesh any
+---@return any meshData
+function RL.GetMeshData( mesh ) end
+
+-- Models - Mesh generation functions
+
+---Generate polygonal mesh
+---- Success return Mesh
+---@param sides integer
+---@param radius number
+---@return any mesh
+function RL.GenMeshPoly( sides, radius ) end
+
+---Generate plane mesh (With subdivisions)
+---- Success return Mesh
+---@param width number
+---@param length number
+---@param resX integer
+---@param resZ integer
+---@return any mesh
+function RL.GenMeshPlane( width, length, resX, resZ ) end
+
+---Generate cuboid mesh
+---- Success return Mesh
+---@param size table
+---@return any mesh
+function RL.GenMeshCube( size ) end
+
+---Generate sphere mesh (Standard sphere)
+---- Success return Mesh
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@return any mesh
+function RL.GenMeshSphere( radius, rings, slices ) end
+
+---Generate half-sphere mesh (no bottom cap)
+---- Success return Mesh
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@return any mesh
+function RL.GenMeshHemiSphere( radius, rings, slices ) end
+
+---Generate cylinder mesh
+---- Success return Mesh
+---@param radius number
+---@param height number
+---@param slices integer
+---@return any mesh
+function RL.GenMeshCylinder( radius, height, slices ) end
+
+---Generate cone/pyramid mesh
+---- Success return Mesh
+---@param radius number
+---@param height number
+---@param slices integer
+---@return any mesh
+function RL.GenMeshCone( radius, height, slices ) end
+
+---Generate torus mesh
+---- Success return Mesh
+---@param radius number
+---@param size number
+---@param radSeg integer
+---@param sides integer
+---@return any mesh
+function RL.GenMeshTorus( radius, size, radSeg, sides ) end
+
+---Generate torus mesh
+---- Success return Mesh
+---@param radius number
+---@param size number
+---@param radSeg integer
+---@param sides integer
+---@return any mesh
+function RL.GenMeshKnot( radius, size, radSeg, sides ) end
+
+---Generate heightmap mesh from image data
+---- Success return Mesh
+---@param heightmap any
+---@param size table
+---@return any mesh
+function RL.GenMeshHeightmap( heightmap, size ) end
+
+---Generate cubes-based map mesh from image data
+---- Success return Mesh
+---@param cubicmap any
+---@param cubeSize table
+---@return any mesh
+function RL.GenMeshCubicmap( cubicmap, cubeSize ) end
+
+---Generate custom mesh from vertex attribute data and uploads it into a VAO (if supported) and VBO
+---- Success return Mesh
+---@param meshData table
+---@param dynamic boolean
+---@return any mesh
+function RL.GenMeshCustom( meshData, dynamic ) end
+
+-- Models - Material management functions
+
+---Load materials from model file
+---- Success return Material{}
+---@param fileName string
+---@return any materials
+function RL.LoadMaterials( fileName ) end
+
+---Default material for reference. Return as lightuserdata
+---- Success return Material
+---@return any material
+function RL.GetMaterialDefault() end
+
+---Load default material as new object
+---- Success return Material
+---@return any material
+function RL.LoadMaterialDefault() end
+
+---Load material from table. See material table definition
+---- Success return Material
+---@param materialData table
+---@return any material
+function RL.CreateMaterial( materialData ) end
+
+---Check if a material is valid (shader assigned, map textures loaded in GPU)
+---- Success return bool
+---@param material any
+---@return any isValid
+function RL.IsMaterialValid( material ) end
+
+---Unload material from GPU memory (VRAM). Note! Use freeAll to unload shaders and textures
+---@param material any
+---@param freeAll boolean
+---@return any RL.UnloadMaterial
+function RL.UnloadMaterial( material, freeAll ) end
+
+---Set texture for a material map type (MATERIAL_MAP_ALBEDO, MATERIAL_MAP_METALNESS...)
+---@param material any
+---@param mapType integer
+---@param texture any
+---@return any RL.SetMaterialTexture
+function RL.SetMaterialTexture( material, mapType, texture ) end
+
+---Set color for a material map type
+---@param material any
+---@param mapType integer
+---@param color table
+---@return any RL.SetMaterialColor
+function RL.SetMaterialColor( material, mapType, color ) end
+
+---Set value for a material map type
+---@param material any
+---@param mapType integer
+---@param value number
+---@return any RL.SetMaterialValue
+function RL.SetMaterialValue( material, mapType, value ) end
+
+---Set shader for material
+---@param material any
+---@param shader any
+---@return any RL.SetMaterialShader
+function RL.SetMaterialShader( material, shader ) end
+
+---Set material generic parameters (if required)
+---@param material any
+---@param params table
+---@return any RL.SetMaterialParams
+function RL.SetMaterialParams( material, params ) end
+
+---Get texture from material map type. Return as lightuserdata
+---- Success return Texture
+---@param material any
+---@param mapType integer
+---@return any texture
+function RL.GetMaterialTexture( material, mapType ) end
+
+---Get color from material map type
+---- Success return Color
+---@param material any
+---@param mapType integer
+---@return any color
+function RL.GetMaterialColor( material, mapType ) end
+
+---Get color from material map type
+---- Success return float
+---@param material any
+---@param mapType integer
+---@return any value
+function RL.GetMaterialValue( material, mapType ) end
+
+---Get material shader. Return as lightuserdata
+---- Success return Shader
+---@param material any
+---@return any shader
+function RL.GetMaterialShader( material ) end
+
+---Get material parameters
+---- Success return float{}
+---@param material any
+---@return any params
+function RL.GetMaterialParams( material ) end
+
+-- Model - Model animations management functions
+
+---Load model animations from file
+---- Failure return nil
+---- Success return ModelAnimations{}
+---@param fileName string
+---@return any animations
+function RL.LoadModelAnimations( fileName ) end
+
+---Update model animation pose
+---@param model any
+---@param animation any
+---@param frame integer
+---@return any RL.UpdateModelAnimation
+function RL.UpdateModelAnimation( model, animation, frame ) end
+
+---Update model animation mesh bone matrices (GPU skinning)
+---@param model any
+---@param animation any
+---@param frame integer
+---@return any RL.UpdateModelAnimationBones
+function RL.UpdateModelAnimationBones( model, animation, frame ) end
+
+---Unload animation data
+---@param animation any
+---@return any RL.UnloadModelAnimation
+function RL.UnloadModelAnimation( animation ) end
+
+---Unload animation table data
+---@param animations table
+---@return any RL.UnloadModelAnimations
+function RL.UnloadModelAnimations( animations ) end
+
+---Check model animation skeleton match
+---- Success return bool
+---@param model any
+---@param animation any
+---@return any valid
+function RL.IsModelAnimationValid( model, animation ) end
+
+---Set modelAnimation bones information (skeleton)
+---- Failure return false
+---- Success return true
+---@param animation any
+---@param boneId integer
+---@param bone any
+---@return any success
+function RL.SetModelAnimationBone( animation, boneId, bone ) end
+
+---Set modelAnimation bones base transformation (pose)
+---- Failure return false
+---- Success return true
+---@param animation any
+---@param frame integer
+---@param boneId integer
+---@param pose any
+---@return any success
+function RL.SetModelAnimationFramePose( animation, frame, boneId, pose ) end
+
+---Set modelAnimation name
+---@param animation any
+---@param name string
+---@return any RL.SetModelAnimationName
+function RL.SetModelAnimationName( animation, name ) end
+
+---Return modelAnimation bone count
+---- Success return int
+---@param animation any
+---@return any boneCount
+function RL.GetModelAnimationBoneCount( animation ) end
+
+---Return modelAnimation frame count
+---- Success return int
+---@param animation any
+---@return any frameCount
+function RL.GetModelAnimationFrameCount( animation ) end
+
+---Get modelAnimation bones information (skeleton)
+---- Failure return nil
+---- Success return BoneInfo
+---@param animation any
+---@param boneId integer
+---@return any bone
+function RL.GetModelAnimationBone( animation, boneId ) end
+
+---Get modelAnimation bones base transformation (pose)
+---- Failure return nil
+---- Success return Transform
+---@param animation any
+---@param frame integer
+---@param boneId integer
+---@return any pose
+function RL.GetModelAnimationFramePose( animation, frame, boneId ) end
+
+---Get modelAnimation name
+---- Success return string
+---@param animation any
+---@return any name
+function RL.GetModelAnimationName( animation ) end
+
+-- Model - Collision detection functions
+
+---Check collision between two spheres
+---- Success return bool
+---@param center1 table
+---@param radius1 number
+---@param center2 table
+---@param radius2 number
+---@return any collision
+function RL.CheckCollisionSpheres( center1, radius1, center2, radius2 ) end
+
+---Check collision between two bounding boxes
+---- Success return bool
+---@param box1 any
+---@param box2 any
+---@return any collision
+function RL.CheckCollisionBoxes( box1, box2 ) end
+
+---Check collision between box and sphere
+---- Success return bool
+---@param box any
+---@param center table
+---@param radius number
+---@return any collision
+function RL.CheckCollisionBoxSphere( box, center, radius ) end
+
+---Get collision info between ray and sphere. ( RayCollision is Lua table of { hit, distance, point, normal } )
+---- Success return RayCollision
+---@param ray any
+---@param center table
+---@param radius number
+---@return any rayCollision
+function RL.GetRayCollisionSphere( ray, center, radius ) end
+
+---Get collision info between ray and box
+---- Success return RayCollision
+---@param ray any
+---@param box any
+---@return any rayCollision
+function RL.GetRayCollisionBox( ray, box ) end
+
+---Get collision info between ray and mesh
+---- Success return RayCollision
+---@param ray any
+---@param mesh any
+---@param transform table
+---@return any rayCollision
+function RL.GetRayCollisionMesh( ray, mesh, transform ) end
+
+---Get collision info between ray and triangle
+---- Success return RayCollision
+---@param ray any
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@return any rayCollision
+function RL.GetRayCollisionTriangle( ray, p1, p2, p3 ) end
+
+---Get collision info between ray and quad. NOTE: The points are expected to be in counter-clockwise winding
+---- Success return RayCollision
+---@param ray any
+---@param p1 table
+---@param p2 table
+---@param p3 table
+---@param p4 table
+---@return any rayCollision
+function RL.GetRayCollisionQuad( ray, p1, p2, p3, p4 ) end
+
+---Get cell positions inside box that intersect with the ray. Also returns ray exit point. Returns empty table if ray misses the box
+---- Success return Vector3{}, RayCollision|nil
+---@param ray any
+---@param box any
+---@param cellSize table
+---@return any cells
+---@return any exitPoint
+function RL.GetRayBoxCells( ray, box, cellSize ) end
+
+-- Audio - Audio device management functions
+
+---Initialize audio device and context
+---@return any RL.InitAudioDevice
+function RL.InitAudioDevice() end
+
+---Close the audio device and context
+---@return any RL.CloseAudioDevice
+function RL.CloseAudioDevice() end
+
+---Check if audio device has been initialized successfully
+---- Success return bool
+---@return any isReady
+function RL.IsAudioDeviceReady() end
+
+---Set master volume (listener)
+---@param volume number
+---@return any RL.SetMasterVolume
+function RL.SetMasterVolume( volume ) end
+
+---Get master volume (listener)
+---- Success return float
+---@return any volume
+function RL.GetMasterVolume() end
+
+-- Audio - Wave/Sound loading/unloading functions
+
+---Load sound from file
+---- Failure return nil
+---- Success return Sound
+---@param fileName string
+---@return any sound
+function RL.LoadSound( fileName ) end
+
+---Load wave data from file
+---- Failure return nil
+---- Success return Wave
+---@param fileName string
+---@return any wave
+function RL.LoadWave( fileName ) end
+
+---Load wave from memory buffer, fileType refers to extension: i.e. '.wav'
+---- Success return Wave
+---@param fileType string
+---@param data any
+---@return any wave
+function RL.LoadWaveFromMemory( fileType, data ) end
+
+---Checks if wave data is valid (data loaded and parameters)
+---- Success return bool
+---@param wave any
+---@return any isValid
+function RL.IsWaveValid( wave ) end
+
+---Load sound from wave data
+---- Success return Sound
+---@param wave any
+---@return any sound
+function RL.LoadSoundFromWave( wave ) end
+
+---Create a new sound that shares the same sample data as the source sound, does not own the sound data
+---- Success return Sound
+---@param source any
+---@return any sound
+function RL.LoadSoundAlias( source ) end
+
+---Checks if a sound is valid (data loaded and buffers initialized)
+---- Success return bool
+---@param sound any
+---@return any isValid
+function RL.IsSoundValid( sound ) end
+
+---Update sound buffer with new data
+---@param sound any
+---@param data any
+---@param sampleCount integer
+---@return any RL.UpdateSound
+function RL.UpdateSound( sound, data, sampleCount ) end
+
+---Unload wave data
+---@param wave any
+---@return any RL.UnloadWave
+function RL.UnloadWave( wave ) end
+
+---Unload sound
+---@param sound any
+---@return any RL.UnloadSound
+function RL.UnloadSound( sound ) end
+
+---Unload a sound alias (does not deallocate sample data)
+---@param alias any
+---@return any RL.UnloadSoundAlias
+function RL.UnloadSoundAlias( alias ) end
+
+---Export wave data to file, returns true on success
+---- Success return bool
+---@param wave any
+---@param fileName string
+---@return any success
+function RL.ExportWave( wave, fileName ) end
+
+---Export wave sample data to code (.h), returns true on success
+---- Success return true
+---@param wave any
+---@param fileName string
+---@return any success
+function RL.ExportWaveAsCode( wave, fileName ) end
+
+-- Audio - Wave/Sound management functions
+
+---Play a sound
+---@param sound any
+---@return any RL.PlaySound
+function RL.PlaySound( sound ) end
+
+---Stop playing a sound
+---@param sound any
+---@return any RL.StopSound
+function RL.StopSound( sound ) end
+
+---Pause a sound
+---@param sound any
+---@return any RL.PauseSound
+function RL.PauseSound( sound ) end
+
+---Resume a paused sound
+---@param sound any
+---@return any RL.ResumeSound
+function RL.ResumeSound( sound ) end
+
+---Check if a sound is currently playing
+---- Success return bool
+---@param sound any
+---@return any playing
+function RL.IsSoundPlaying( sound ) end
+
+---Set volume for a sound (1.0 is max level)
+---@param sound any
+---@param volume number
+---@return any RL.SetSoundVolume
+function RL.SetSoundVolume( sound, volume ) end
+
+---Set pitch for a sound (1.0 is base level)
+---@param sound any
+---@param pitch number
+---@return any RL.SetSoundPitch
+function RL.SetSoundPitch( sound, pitch ) end
+
+---Set pan for a sound (0.5 is center)
+---@param sound any
+---@param pan number
+---@return any RL.SetSoundPan
+function RL.SetSoundPan( sound, pan ) end
+
+---Get sound audio stream. Return as lightuserdata
+---- Success return AudioStream
+---@param sound any
+---@return any stream
+function RL.GetSoundStream( sound ) end
+
+---Convert wave data to desired format
+---@param wave any
+---@param sampleRate integer
+---@param sampleSize integer
+---@param channels integer
+---@return any RL.WaveFormat
+function RL.WaveFormat( wave, sampleRate, sampleSize, channels ) end
+
+---Load samples data from wave as a 32bit float data array
+---- Success return float{}
+---@param wave any
+---@return any samples
+function RL.LoadWaveSamples( wave ) end
+
+---Copy a wave to a new wave
+---- Success return Wave
+---@param wave any
+---@return any wave
+function RL.WaveCopy( wave ) end
+
+---Crop a wave to defined samples range
+---@param wave any
+---@param initSample integer
+---@param finalSample integer
+---@return any RL.WaveCrop
+function RL.WaveCrop( wave, initSample, finalSample ) end
+
+-- Audio - Music management functions
+
+---Load music stream from file
+---- Success return Music
+---@param fileName string
+---@return any music
+function RL.LoadMusicStream( fileName ) end
+
+---Load music stream from data
+---- Success return Music
+---@param fileType string
+---@param data any
+---@return any music
+function RL.LoadMusicStreamFromMemory( fileType, data ) end
+
+---Checks if a music stream is valid (context and buffers initialized)
+---- Success return bool
+---@param music any
+---@return any isValid
+function RL.IsMusicValid( music ) end
+
+---Unload music stream
+---@param music any
+---@return any RL.UnloadMusicStream
+function RL.UnloadMusicStream( music ) end
+
+---Start music playing
+---@param music any
+---@return any RL.PlayMusicStream
+function RL.PlayMusicStream( music ) end
+
+---Check if music is playing
+---- Success return bool
+---@param music any
+---@return any playing
+function RL.IsMusicStreamPlaying( music ) end
+
+---Updates buffers for music streaming
+---@param music any
+---@return any RL.UpdateMusicStream
+function RL.UpdateMusicStream( music ) end
+
+---Stop music playing
+---@param music any
+---@return any RL.StopMusicStream
+function RL.StopMusicStream( music ) end
+
+---Pause music playing
+---@param music any
+---@return any RL.PauseMusicStream
+function RL.PauseMusicStream( music ) end
+
+---Resume playing paused music
+---@param music any
+---@return any RL.ResumeMusicStream
+function RL.ResumeMusicStream( music ) end
+
+---Seek music to a position (in seconds)
+---@param music any
+---@param position number
+---@return any RL.SeekMusicStream
+function RL.SeekMusicStream( music, position ) end
+
+---Set volume for music (1.0 is max level)
+---@param music any
+---@param volume number
+---@return any RL.SetMusicVolume
+function RL.SetMusicVolume( music, volume ) end
+
+---Set pitch for a music (1.0 is base level)
+---@param music any
+---@param pitch number
+---@return any RL.SetMusicPitch
+function RL.SetMusicPitch( music, pitch ) end
+
+---Set pan for a music (0.5 is center)
+---@param music any
+---@param pan number
+---@return any RL.SetMusicPan
+function RL.SetMusicPan( music, pan ) end
+
+---Set looping for a music
+---@param music any
+---@param looping boolean
+---@return any RL.SetMusicLooping
+function RL.SetMusicLooping( music, looping ) end
+
+---Get looping of a music
+---- Success return bool
+---@param music any
+---@return any looping
+function RL.GetMusicLooping( music ) end
+
+---Get music time length (in seconds)
+---- Success return float
+---@param music any
+---@return any length
+function RL.GetMusicTimeLength( music ) end
+
+---Get current music time played (in seconds)
+---- Success return float
+---@param music any
+---@return any timePlayed
+function RL.GetMusicTimePlayed( music ) end
+
+---Get music audio stream. Return as lightuserdata
+---- Success return AudioStream
+---@param music any
+---@return any stream
+function RL.GetMusicStream( music ) end
+
+-- Audio - AudioStream management functions
+
+---Load audio stream (to stream raw audio pcm data)
+---- Success return AudioStream
+---@param sampleRate integer
+---@param sampleSize integer
+---@param channels integer
+---@return any audioStream
+function RL.LoadAudioStream( sampleRate, sampleSize, channels ) end
+
+---Checks if an audio stream is valid (buffers initialized)
+---- Success return bool
+---@param stream any
+---@return any isValid
+function RL.IsAudioStreamValid( stream ) end
+
+---Unload audio stream and free memory
+---@param stream any
+---@return any RL.UnloadAudioStream
+function RL.UnloadAudioStream( stream ) end
+
+---Update audio stream buffers with data
+---@param stream any
+---@param data any
+---@param frameCount integer
+---@return any RL.UpdateAudioStream
+function RL.UpdateAudioStream( stream, data, frameCount ) end
+
+---Check if any audio stream buffers requires refill
+---- Success return bool
+---@param stream any
+---@return any isProcessed
+function RL.IsAudioStreamProcessed( stream ) end
+
+---Play audio stream
+---@param stream any
+---@return any RL.PlayAudioStream
+function RL.PlayAudioStream( stream ) end
+
+---Pause audio stream
+---@param stream any
+---@return any RL.PauseAudioStream
+function RL.PauseAudioStream( stream ) end
+
+---Resume audio stream
+---@param stream any
+---@return any RL.ResumeAudioStream
+function RL.ResumeAudioStream( stream ) end
+
+---Check if audio stream is playing
+---- Success return bool
+---@param stream any
+---@return any isPlaying
+function RL.IsAudioStreamPlaying( stream ) end
+
+---Stop audio stream
+---@param stream any
+---@return any RL.StopAudioStream
+function RL.StopAudioStream( stream ) end
+
+---Set volume for audio stream (1.0 is max level)
+---@param stream any
+---@param volume number
+---@return any RL.SetAudioStreamVolume
+function RL.SetAudioStreamVolume( stream, volume ) end
+
+---Set pitch for audio stream (1.0 is base level)
+---@param stream any
+---@param pitch number
+---@return any RL.SetAudioStreamPitch
+function RL.SetAudioStreamPitch( stream, pitch ) end
+
+---Set pan for audio stream (0.5 is centered)
+---@param stream any
+---@param pan number
+---@return any RL.SetAudioStreamPan
+function RL.SetAudioStreamPan( stream, pan ) end
+
+---Default size for new audio streams
+---@param size integer
+---@return any RL.SetAudioStreamBufferSizeDefault
+function RL.SetAudioStreamBufferSizeDefault( size ) end
+
+---Audio thread callback to request new data.
+---AudioCallback should be lightuserdata function pointer
+---@param stream any
+---@param callback any
+---@return any RL.SetAudioStreamCallback
+function RL.SetAudioStreamCallback( stream, callback ) end
+
+---Attach audio stream processor to stream, receives the samples as 'float'.
+---AudioCallback should be lightuserdata function pointer
+---@param stream any
+---@param processor any
+---@return any RL.AttachAudioStreamProcessor
+function RL.AttachAudioStreamProcessor( stream, processor ) end
+
+---Detach audio stream processor from stream.
+---AudioCallback should be lightuserdata function pointer
+---@param stream any
+---@param processor any
+---@return any RL.DetachAudioStreamProcessor
+function RL.DetachAudioStreamProcessor( stream, processor ) end
+
+---Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'.
+---AudioCallback should be lightuserdata function pointer
+---@param processor any
+---@return any RL.AttachAudioMixedProcessor
+function RL.AttachAudioMixedProcessor( processor ) end
+
+---Detach audio stream processor from the entire audio pipeline.
+---AudioCallback should be lightuserdata function pointer
+---@param processor any
+---@return any RL.DetachAudioMixedProcessor
+function RL.DetachAudioMixedProcessor( processor ) end
+
+-- Math - Utils
+
+---Round float value
+---- Success return int
+---@param value number
+---@return any result
+function RL.Round( value ) end
+
+---Sign of value
+---- Success return int
+---@param value number
+---@return any result
+function RL.Sign( value ) end
+
+---Clamp float value
+---- Success return float
+---@param value number
+---@param min number
+---@param max number
+---@return any result
+function RL.Clamp( value, min, max ) end
+
+---Calculate linear interpolation between two floats
+---- Success return float
+---@param a number
+---@param b number
+---@param amount number
+---@return any result
+function RL.Lerp( a, b, amount ) end
+
+---Normalize input value within input range
+---- Success return float
+---@param value number
+---@param a number
+---@param b number
+---@return any result
+function RL.Normalize( value, a, b ) end
+
+---Remap input value within input range to output range
+---- Success return float
+---@param value number
+---@param inputStart number
+---@param inputEnd number
+---@param outputStart number
+---@param outputEnd number
+---@return any result
+function RL.Remap( value, inputStart, inputEnd, outputStart, outputEnd ) end
+
+---Wrap input value from min to max
+---- Success return float
+---@param value number
+---@param min number
+---@param max number
+---@return any result
+function RL.Wrap( value, min, max ) end
+
+---Check whether two given floats are almost equal
+---- Success return bool
+---@param x number
+---@param y number
+---@return any result
+function RL.FloatEquals( x, y ) end
+
+-- Math - Vector2
+
+---Vector with components value 0.0f
+---- Success return Vector2
+---@return any result
+function RL.Vector2Zero() end
+
+---Vector with components value 1.0f
+---- Success return Vector2
+---@return any result
+function RL.Vector2One() end
+
+---Add two vectors (v1 + v2)
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Add( v1, v2 ) end
+
+---Add vector and float value
+---- Success return Vector2
+---@param v table
+---@param add number
+---@return any result
+function RL.Vector2AddValue( v, add ) end
+
+---Subtract two vectors (v1 - v2)
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Subtract( v1, v2 ) end
+
+---Subtract vector by float value
+---- Success return Vector2
+---@param v table
+---@param sub number
+---@return any result
+function RL.Vector2SubtractValue( v, sub ) end
+
+---Calculate vector length
+---- Success return float
+---@param v any
+---@return any result
+function RL.Vector2Length( v ) end
+
+---Calculate vector square length
+---- Success return float
+---@param v any
+---@return any result
+function RL.Vector2LengthSqr( v ) end
+
+---Calculate two vectors dot product
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2DotProduct( v1, v2 ) end
+
+---Calculate distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Distance( v1, v2 ) end
+
+---Calculate square distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2DistanceSqr( v1, v2 ) end
+
+---Calculate angle between two vectors
+---NOTE: Angle is calculated from origin point (0, 0)
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Angle( v1, v2 ) end
+
+---Calculate angle defined by a two vectors line
+---NOTE: Parameters need to be normalized
+---Current implementation should be aligned with glm::angle
+---- Success return float
+---@param a table
+---@param b table
+---@return any result
+function RL.Vector2LineAngle( a, b ) end
+
+---Scale vector (multiply by value)
+---- Success return Vector2
+---@param v table
+---@param scale number
+---@return any result
+function RL.Vector2Scale( v, scale ) end
+
+---Multiply vector by vector
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Multiply( v1, v2 ) end
+
+---Negate vector
+---- Success return Vector2
+---@param v table
+---@return any result
+function RL.Vector2Negate( v ) end
+
+---Divide vector by vector
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Divide( v1, v2 ) end
+
+---Normalize provided vector
+---- Success return Vector2
+---@param v table
+---@return any result
+function RL.Vector2Normalize( v ) end
+
+---Transforms a Vector2 by a given Matrix
+---- Success return Vector2
+---@param v table
+---@param mat table
+---@return any result
+function RL.Vector2Transform( v, mat ) end
+
+---Calculate linear interpolation between two vectors
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@param amount number
+---@return any result
+function RL.Vector2Lerp( v1, v2, amount ) end
+
+---Calculate reflected vector to normal
+---- Success return Vector2
+---@param v table
+---@param normal table
+---@return any result
+function RL.Vector2Reflect( v, normal ) end
+
+---Get min value for each pair of components
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Min( v1, v2 ) end
+
+---Get max value for each pair of components
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Max( v1, v2 ) end
+
+---Rotate vector by angle
+---- Success return Vector2
+---@param v table
+---@param angle number
+---@return any result
+function RL.Vector2Rotate( v, angle ) end
+
+---Move Vector towards target
+---- Success return Vector2
+---@param v table
+---@param target table
+---@param maxDistance number
+---@return any result
+function RL.Vector2MoveTowards( v, target, maxDistance ) end
+
+---Invert the given vector
+---- Success return Vector2
+---@param v table
+---@return any result
+function RL.Vector2Invert( v ) end
+
+---Clamp the components of the vector between
+---min and max values specified by the given vectors
+---- Success return Vector2
+---@param v table
+---@param min table
+---@param max table
+---@return any result
+function RL.Vector2Clamp( v, min, max ) end
+
+---Clamp the magnitude of the vector between two min and max values
+---- Success return Vector2
+---@param v table
+---@param min number
+---@param max number
+---@return any result
+function RL.Vector2ClampValue( v, min, max ) end
+
+---Check whether two given vectors are almost equal
+---- Success return bool
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Equals( v1, v2 ) end
+
+---Compute the direction of a refracted ray
+---v: normalized direction of the incoming ray
+---n: normalized normal vector of the interface of two optical media
+---r: ratio of the refractive index of the medium from where the ray comes
+--- to the refractive index of the medium on the other side of the surface
+---- Success return Vector2
+---@param v table
+---@param n table
+---@param r number
+---@return any result
+function RL.Vector2Refract( v, n, r ) end
+
+-- Math - Vector 3
+
+---Vector with components value 0.0f
+---- Success return Vector3
+---@return any result
+function RL.Vector3Zero() end
+
+---Vector with components value 1.0f
+---- Success return Vector3
+---@return any result
+function RL.Vector3One() end
+
+---Add two vectors
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Add( v1, v2 ) end
+
+---Add vector and float value
+---- Success return Vector3
+---@param v table
+---@param add number
+---@return any result
+function RL.Vector3AddValue( v, add ) end
+
+---Subtract two vectors
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Subtract( v1, v2 ) end
+
+---Subtract vector by float value
+---- Success return Vector3
+---@param v table
+---@param sub number
+---@return any result
+function RL.Vector3SubtractValue( v, sub ) end
+
+---Multiply vector by scalar
+---- Success return Vector3
+---@param v table
+---@param scalar number
+---@return any result
+function RL.Vector3Scale( v, scalar ) end
+
+---Multiply vector by vector
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Multiply( v1, v2 ) end
+
+---Calculate two vectors cross product
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3CrossProduct( v1, v2 ) end
+
+---Calculate one vector perpendicular vector
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Perpendicular( v ) end
+
+---Calculate vector length
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector3Length( v ) end
+
+---Calculate vector square length
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector3LengthSqr( v ) end
+
+---Calculate two vectors dot product
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3DotProduct( v1, v2 ) end
+
+---Calculate distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Distance( v1, v2 ) end
+
+---Calculate square distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3DistanceSqr( v1, v2 ) end
+
+---Calculate angle between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Angle( v1, v2 ) end
+
+---Negate provided vector (invert direction)
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Negate( v ) end
+
+---Divide vector by vector
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Divide( v1, v2 ) end
+
+---Normalize provided vector
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Normalize( v ) end
+
+---Calculate the projection of the vector v1 on to v2
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Project( v1, v2 ) end
+
+---Calculate the rejection of the vector v1 on to v2
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Reject( v1, v2 ) end
+
+---Orthonormalize provided vectors. Makes vectors normalized and orthogonal to each other.
+---Gram-Schmidt function implementation
+---- Success return Vector3, Vector3
+---@param v1 table
+---@param v2 table
+---@return any v1
+---@return any v2
+function RL.Vector3OrthoNormalize( v1, v2 ) end
+
+---Transforms a Vector3 by a given Matrix
+---- Success return Vector3
+---@param v table
+---@param mat table
+---@return any result
+function RL.Vector3Transform( v, mat ) end
+
+---Transform a vector by quaternion rotation
+---- Success return Vector3
+---@param v table
+---@param q table
+---@return any result
+function RL.Vector3RotateByQuaternion( v, q ) end
+
+---Rotates a vector around an axis
+---- Success return Vector3
+---@param v table
+---@param axis table
+---@param angle number
+---@return any result
+function RL.Vector3RotateByAxisAngle( v, axis, angle ) end
+
+---Move Vector towards target
+---- Success return Vector3
+---@param v table
+---@param target table
+---@param maxDistance number
+---@return any result
+function RL.Vector3MoveTowards( v, target, maxDistance ) end
+
+---Calculate linear interpolation between two vectors
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@param amount number
+---@return any result
+function RL.Vector3Lerp( v1, v2, amount ) end
+
+---Calculate cubic hermite interpolation between two vectors and their tangents
+---as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic
+---- Success return Vector3
+---@param v1 table
+---@param tangent1 table
+---@param v2 table
+---@param tangent2 table
+---@param amount number
+---@return any result
+function RL.Vector3CubicHermite( v1, tangent1, v2, tangent2, amount ) end
+
+---Calculate reflected vector to normal
+---- Success return Vector3
+---@param v table
+---@param normal table
+---@return any result
+function RL.Vector3Reflect( v, normal ) end
+
+---Get min value for each pair of components
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Min( v1, v2 ) end
+
+---Get max value for each pair of components
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Max( v1, v2 ) end
+
+---Compute barycenter coordinates (u, v, w) for point p with respect to triangle (a, b, c)
+---NOTE: Assumes P is on the plane of the triangle
+---- Success return Vector3
+---@param p table
+---@param a table
+---@param b table
+---@param c table
+---@return any result
+function RL.Vector3Barycenter( p, a, b, c ) end
+
+---Projects a Vector3 from screen space into object space
+---NOTE: We are avoiding calling other raymath functions despite available
+---- Success return Vector3
+---@param source table
+---@param projection table
+---@param view table
+---@return any result
+function RL.Vector3Unproject( source, projection, view ) end
+
+---Invert the given vector
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Invert( v ) end
+
+---Clamp the components of the vector between
+---min and max values specified by the given vectors
+---- Success return Vector3
+---@param v table
+---@param min table
+---@param max table
+---@return any result
+function RL.Vector3Clamp( v, min, max ) end
+
+---Clamp the magnitude of the vector between two values
+---- Success return Vector3
+---@param v table
+---@param min number
+---@param max number
+---@return any result
+function RL.Vector3ClampValue( v, min, max ) end
+
+---Check whether two given vectors are almost equal
+---- Success return bool
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Equals( v1, v2 ) end
+
+---Compute the direction of a refracted ray where v specifies the
+---normalized direction of the incoming ray, n specifies the
+---normalized normal vector of the interface of two optical media,
+---and r specifies the ratio of the refractive index of the medium
+---from where the ray comes to the refractive index of the medium
+---on the other side of the surface
+---- Success return Vector3
+---@param v table
+---@param n table
+---@param r number
+---@return any result
+function RL.Vector3Refract( v, n, r ) end
+
+-- Math - Vector4
+
+---Vector with components value 0.0f
+---- Success return Vector4
+---@return any result
+function RL.Vector4Zero() end
+
+---Vector with components value 1.0f
+---- Success return Vector4
+---@return any result
+function RL.Vector4One() end
+
+---Add two vectors
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Add( v1, v2 ) end
+
+---Add vector and float value
+---- Success return Vector4
+---@param v table
+---@param add number
+---@return any result
+function RL.Vector4AddValue( v, add ) end
+
+---Subtract two vectors
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Subtract( v1, v2 ) end
+
+---Subtract vector by float value
+---- Success return Vector4
+---@param v table
+---@param sub number
+---@return any result
+function RL.Vector4SubtractValue( v, sub ) end
+
+---Calculate vector length
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector4Length( v ) end
+
+---Calculate vector square length
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector4LengthSqr( v ) end
+
+---Calculate two vectors dot product
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4DotProduct( v1, v2 ) end
+
+---Calculate distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Distance( v1, v2 ) end
+
+---Calculate square distance between two vectors
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4DistanceSqr( v1, v2 ) end
+
+---Multiply vector by scalar
+---- Success return Vector4
+---@param v table
+---@param scalar number
+---@return any result
+function RL.Vector4Scale( v, scalar ) end
+
+---Multiply vector by vector
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Multiply( v1, v2 ) end
+
+---Negate provided vector (invert direction)
+---- Success return Vector4
+---@param v table
+---@return any result
+function RL.Vector4Negate( v ) end
+
+---Divide vector by vector
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Divide( v1, v2 ) end
+
+---Normalize provided vector
+---- Success return Vector4
+---@param v table
+---@return any result
+function RL.Vector4Normalize( v ) end
+
+---Get min value for each pair of components
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Min( v1, v2 ) end
+
+---Get max value for each pair of components
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Max( v1, v2 ) end
+
+---Calculate linear interpolation between two vectors
+---- Success return Vector4
+---@param v1 table
+---@param v2 table
+---@param amount number
+---@return any result
+function RL.Vector4Lerp( v1, v2, amount ) end
+
+---Move Vector towards target
+---- Success return Vector4
+---@param v table
+---@param target table
+---@param maxDistance number
+---@return any result
+function RL.Vector4MoveTowards( v, target, maxDistance ) end
+
+---Invert the given vector
+---- Success return Vector4
+---@param v table
+---@return any result
+function RL.Vector4Invert( v ) end
+
+---Check whether two given vectors are almost equal
+---- Success return bool
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector4Equals( v1, v2 ) end
+
+-- Math - Matrix
+
+---Compute matrix determinant
+---- Success return float
+---@param mat table
+---@return any result
+function RL.MatrixDeterminant( mat ) end
+
+---Get the trace of the matrix (sum of the values along the diagonal)
+---- Success return float
+---@param mat table
+---@return any result
+function RL.MatrixTrace( mat ) end
+
+---Transposes provided matrix
+---- Success return Matrix
+---@param mat table
+---@return any result
+function RL.MatrixTranspose( mat ) end
+
+---Invert provided matrix
+---- Success return Matrix
+---@param mat table
+---@return any result
+function RL.MatrixInvert( mat ) end
+
+---Get identity matrix
+---- Success return Matrix
+---@return any result
+function RL.MatrixIdentity() end
+
+---Add two matrices
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixAdd( left, right ) end
+
+---Subtract two matrices (left - right)
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixSubtract( left, right ) end
+
+---Get two matrix multiplication
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixMultiply( left, right ) end
+
+---Get translation matrix
+---- Success return Matrix
+---@param translate table
+---@return any result
+function RL.MatrixTranslate( translate ) end
+
+---Create rotation matrix from axis and angle. NOTE: Angle should be provided in radians
+---- Success return Matrix
+---@param axis table
+---@param angle number
+---@return any result
+function RL.MatrixRotate( axis, angle ) end
+
+---Get x-rotation matrix (angle in radians)
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateX( angle ) end
+
+---Get y-rotation matrix (angle in radians)
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateY( angle ) end
+
+---Get z-rotation matrix (angle in radians)
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateZ( angle ) end
+
+---Get xyz-rotation matrix (angles in radians)
+---- Success return Matrix
+---@param angles table
+---@return any result
+function RL.MatrixRotateXYZ( angles ) end
+
+---Get zyx-rotation matrix (angles in radians)
+---- Success return Matrix
+---@param angles table
+---@return any result
+function RL.MatrixRotateZYX( angles ) end
+
+---Get scaling matrix
+---- Success return Matrix
+---@param scale table
+---@return any result
+function RL.MatrixScale( scale ) end
+
+---Get perspective projection matrix
+---- Success return Matrix
+---@param left any
+---@param right any
+---@param bottom any
+---@param top any
+---@param near any
+---@param far any
+---@return any result
+function RL.MatrixFrustum( left, right, bottom, top, near, far ) end
+
+---Get perspective projection matrix
+---- Success return Matrix
+---@param fovy any
+---@param aspect any
+---@param near any
+---@param far any
+---@return any result
+function RL.MatrixPerspective( fovy, aspect, near, far ) end
+
+---Get orthographic projection matrix
+---- Success return Matrix
+---@param left any
+---@param right any
+---@param bottom any
+---@param top any
+---@param near any
+---@param far any
+---@return any result
+function RL.MatrixOrtho( left, right, bottom, top, near, far ) end
+
+---Get camera look-at matrix (View matrix)
+---- Success return Matrix
+---@param eye table
+---@param target table
+---@param up table
+---@return any result
+function RL.MatrixLookAt( eye, target, up ) end
+
+---Decompose a transformation matrix into its rotational, translational and scaling components
+---- Success return Vector3, Quaternion, Vector3
+---@param mat table
+---@return any translation
+---@return any rotation
+---@return any scale
+function RL.MatrixDecompose( mat ) end
+
+-- Math - Quaternion
+
+---Add two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionAdd( q1, q2 ) end
+
+---Add quaternion and float value
+---- Success return Quaternion
+---@param q table
+---@param add number
+---@return any result
+function RL.QuaternionAddValue( q, add ) end
+
+---Subtract two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionSubtract( q1, q2 ) end
+
+---Subtract quaternion and float value
+---- Success return Quaternion
+---@param q table
+---@param sub number
+---@return any result
+function RL.QuaternionSubtractValue( q, sub ) end
+
+---Get identity quaternion
+---- Success return Quaternion
+---@return any result
+function RL.QuaternionIdentity() end
+
+---Computes the length of a quaternion
+---- Success return float
+---@param q table
+---@return any result
+function RL.QuaternionLength( q ) end
+
+---Normalize provided quaternion
+---- Success return Quaternion
+---@param q table
+---@return any result
+function RL.QuaternionNormalize( q ) end
+
+---Invert provided quaternion
+---- Success return Quaternion
+---@param q table
+---@return any result
+function RL.QuaternionInvert( q ) end
+
+---Calculate two quaternion multiplication
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionMultiply( q1, q2 ) end
+
+---Scale quaternion by float value
+---- Success return Quaternion
+---@param q table
+---@param mul number
+---@return any result
+function RL.QuaternionScale( q, mul ) end
+
+---Divide two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionDivide( q1, q2 ) end
+
+---Calculate linear interpolation between two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@param amount number
+---@return any result
+function RL.QuaternionLerp( q1, q2, amount ) end
+
+---Calculate slerp-optimized interpolation between two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@param amount number
+---@return any result
+function RL.QuaternionNlerp( q1, q2, amount ) end
+
+---Calculates spherical linear interpolation between two quaternions
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@param amount number
+---@return any result
+function RL.QuaternionSlerp( q1, q2, amount ) end
+
+---Calculate quaternion cubic spline interpolation using Cubic Hermite Spline algorithm
+---as described in the GLTF 2.0 specification: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#interpolation-cubic
+---- Success return Quaternion
+---@param q1 table
+---@param outTangent1 table
+---@param q2 table
+---@param inTangent2 table
+---@param t number
+---@return any result
+function RL.QuaternionCubicHermiteSpline( q1, outTangent1, q2, inTangent2, t ) end
+
+---Calculate quaternion based on the rotation from one vector to another
+---- Success return Quaternion
+---@param from table
+---@param to table
+---@return any result
+function RL.QuaternionFromVector3ToVector3( from, to ) end
+
+---Get a quaternion for a given rotation matrix
+---- Success return Quaternion
+---@param mat table
+---@return any result
+function RL.QuaternionFromMatrix( mat ) end
+
+---Get a matrix for a given quaternion
+---- Success return Matrix
+---@param q table
+---@return any result
+function RL.QuaternionToMatrix( q ) end
+
+---Get rotation quaternion for an angle and axis
+---NOTE: angle must be provided in radians
+---- Success return Quaternion
+---@param axis table
+---@param angle number
+---@return any result
+function RL.QuaternionFromAxisAngle( axis, angle ) end
+
+---Get the rotation angle and axis for a given quaternion
+---- Success return Vector3, float
+---@param q table
+---@return any axis
+---@return any angle
+function RL.QuaternionToAxisAngle( q ) end
+
+---Get the quaternion equivalent to Euler angles
+---NOTE: Rotation order is ZYX
+---- Success return Quaternion
+---@param pitch number
+---@param yaw number
+---@param roll number
+---@return any result
+function RL.QuaternionFromEuler( pitch, yaw, roll ) end
+
+---Get the Euler angles equivalent to quaternion (roll, pitch, yaw)
+---NOTE: Angles are returned in a Vector3 struct in radians
+---- Success return Vector3
+---@param q table
+---@return any result
+function RL.QuaternionToEuler( q ) end
+
+---Transform a quaternion given a transformation matrix
+---- Success return Quaternion
+---@param q table
+---@param mat table
+---@return any result
+function RL.QuaternionTransform( q, mat ) end
+
+---Check whether two given quaternions are almost equal
+---- Success return bool
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionEquals( q1, q2 ) end
+
+-- Math - Frustum
+
+---Extract frustum from projection and modelView matrices.
+---- Success return Vector4{}
+---@param projection table
+---@param modelview table
+---@return any frustum
+function RL.ExtractFrustum( projection, modelview ) end
+
+---Check if point inside frustum
+---- Success return bool
+---@param frustum table
+---@param position table
+---@return any inFrustum
+function RL.PointInFrustum( frustum, position ) end
+
+---Check if sphere inside frustum
+---- Success return bool
+---@param frustum table
+---@param position table
+---@return any inFrustum
+function RL.SphereInFrustum( frustum, position ) end
+
+---Check if AABB inside frustum
+---- Success return bool
+---@param frustum table
+---@param min table
+---@param max table
+---@return any inFrustum
+function RL.AABBInFrustum( frustum, min, max ) end
+
+-- Gui - Global gui state control functions
+
+---Enable gui controls (global state)
+---@return any RL.GuiEnable
+function RL.GuiEnable() end
+
+---Disable gui controls (global state)
+---@return any RL.GuiDisable
+function RL.GuiDisable() end
+
+---Lock gui controls (global state)
+---@return any RL.GuiLock
+function RL.GuiLock() end
+
+---Unlock gui controls (global state)
+---@return any RL.GuiUnlock
+function RL.GuiUnlock() end
+
+---Check if gui is locked (global state)
+---- Success return bool
+---@return any locked
+function RL.GuiIsLocked() end
+
+---Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
+---@param alpha number
+---@return any RL.GuiSetAlpha
+function RL.GuiSetAlpha( alpha ) end
+
+---Set gui state (global state)
+---@param state integer
+---@return any RL.GuiSetState
+function RL.GuiSetState( state ) end
+
+---Get gui state (global state)
+---- Success return int
+---@return any state
+function RL.GuiGetState() end
+
+---Set guiSliderDragging
+---@param dragging boolean
+---@return any RL.GuiSetSliderDragging
+function RL.GuiSetSliderDragging( dragging ) end
+
+---Get guiSliderDragging
+---- Success return bool
+---@return any isSliderDragging
+function RL.GuiGetSliderDragging() end
+
+---Set guiSliderActive
+---@param rect any
+---@return any RL.GuiSetSliderActive
+function RL.GuiSetSliderActive( rect ) end
+
+---Get guiSliderActive
+---- Success return Rectangle
+---@return any isSliderDragging
+function RL.GuiGetSliderActive() end
+
+-- Gui - Font set/get functions
+
+---Set gui custom font (global state)
+---@param font any
+---@return any RL.GuiSetFont
+function RL.GuiSetFont( font ) end
+
+---Get gui font (global state). Return as lightuserdata
+---- Success return Font
+---@return any font
+function RL.GuiGetFont() end
+
+-- Gui - Style set/get functions
+
+---Set one style property
+---@param control integer
+---@param property integer
+---@param value integer
+---@return any RL.GuiSetStyle
+function RL.GuiSetStyle( control, property, value ) end
+
+---Get one style property
+---- Success return int
+---@param control integer
+---@param property integer
+---@return any value
+function RL.GuiGetStyle( control, property ) end
+
+-- Gui - Styles loading functions
+
+---Load style file over global style variable (.rgs)
+---- Failure return nil
+---- Success return true
+---@param fileName string
+---@return any success
+function RL.GuiLoadStyle( fileName ) end
+
+---Load style default over global style
+---@return any RL.GuiLoadStyleDefault
+function RL.GuiLoadStyleDefault() end
+
+-- Gui - Tooltips management functions
+
+---Enable gui tooltips (global state)
+---@return any RL.GuiEnableTooltip
+function RL.GuiEnableTooltip() end
+
+---Disable gui tooltips (global state)
+---@return any RL.GuiDisableTooltip
+function RL.GuiDisableTooltip() end
+
+---Set tooltip string
+---@param tooltip string
+---@return any RL.GuiSetTooltip
+function RL.GuiSetTooltip( tooltip ) end
+
+-- Gui - Icons functionality
+
+---Get text with icon id prepended (if supported)
+---- Success return string
+---@param iconId integer
+---@param text string|nil
+---@return any text
+function RL.GuiIconText( iconId, text ) end
+
+---Set icon scale (1 by default)
+---@param scale integer
+---@return any RL.GuiSetIconScale
+function RL.GuiSetIconScale( scale ) end
+
+---Get raygui icons data in buffer. guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB
+---- Success return Buffer
+---@return any iconsBuffer
+function RL.GuiGetIcons() end
+
+---Set raygui icons data in buffer. guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB
+---- Failure return false
+---- Success return true
+---@param iconBuffer any
+---@return any success
+function RL.GuiSetIcons( iconBuffer ) end
+
+---Load raygui icons file (.rgi) into internal icons data
+---- Failure return nil
+---- Success return strings{}
+---@param fileName string
+---@param loadIconsName boolean
+---@return any iconNames
+function RL.GuiLoadIcons( fileName, loadIconsName ) end
+
+---Draw icon
+---@param iconId integer
+---@param pos table
+---@param pixelSize integer
+---@param color table
+---@return any RL.GuiDrawIcon
+function RL.GuiDrawIcon( iconId, pos, pixelSize, color ) end
+
+-- Gui - Container/separator controls, useful for controls organization
+
+---Window Box control, shows a window that can be closed
+---- Success return int
+---@param bounds table
+---@param title string|nil
+---@return any result
+function RL.GuiWindowBox( bounds, title ) end
+
+---Group Box control with text name
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiGroupBox( bounds, text ) end
+
+---Line separator control, could contain text
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiLine( bounds, text ) end
+
+---Panel control, useful to group controls
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiPanel( bounds, text ) end
+
+---Tab Bar control, returns TAB to be closed or -1
+---- Success return int, int
+---@param bounds table
+---@param text string
+---@param active integer
+---@return any result
+---@return any active
+function RL.GuiTabBar( bounds, text, active ) end
+
+---Scroll Panel control
+---- Success return int, Vector2, Rectangle
+---@param bounds table
+---@param text string|nil
+---@param content table
+---@param scroll table
+---@param view table
+---@return any result
+---@return any scroll
+---@return any view
+function RL.GuiScrollPanel( bounds, text, content, scroll, view ) end
+
+-- Gui - Basic controls set
+
+---Label control, shows text
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiLabel( bounds, text ) end
+
+---Button control, returns true when clicked
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiButton( bounds, text ) end
+
+---Label button control, show true when clicked
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiLabelButton( bounds, text ) end
+
+---Toggle Button control, returns true when active
+---- Success return int, bool
+---@param bounds table
+---@param text string|nil
+---@param active boolean
+---@return any result
+---@return any active
+function RL.GuiToggle( bounds, text, active ) end
+
+---Toggle Group control, returns active toggle index
+---- Success return int, int
+---@param bounds table
+---@param text string|nil
+---@param active integer
+---@return any result
+---@return any active
+function RL.GuiToggleGroup( bounds, text, active ) end
+
+---Toggle Slider control, returns true when clicked
+---- Success return int, int
+---@param bounds table
+---@param text string|nil
+---@param active integer
+---@return any result
+---@return any active
+function RL.GuiToggleSlider( bounds, text, active ) end
+
+---Check Box control, returns true when active
+---- Success return bool, Rectangle
+---@param bounds table
+---@param text string|nil
+---@param checked boolean
+---@return any result
+---@return any checked
+---@return any textBounds
+function RL.GuiCheckBox( bounds, text, checked ) end
+
+---Combo Box control, returns selected item index
+---- Success return int, int
+---@param bounds table
+---@param text string|nil
+---@param active integer
+---@return any result
+---@return any active
+function RL.GuiComboBox( bounds, text, active ) end
+
+---Dropdown Box control, returns selected item
+---- Success return int, int
+---@param bounds table
+---@param text string
+---@param active integer
+---@param editMode boolean
+---@return any result
+---@return any active
+function RL.GuiDropdownBox( bounds, text, active, editMode ) end
+
+---Spinner control, returns selected value
+---- Success return int, int, Rectangle
+---@param bounds table
+---@param text string|nil
+---@param value integer
+---@param minValue integer
+---@param maxValue integer
+---@param editMode boolean
+---@return any result
+---@return any value
+---@return any textBounds
+function RL.GuiSpinner( bounds, text, value, minValue, maxValue, editMode ) end
+
+---Value Box control, updates input text with numbers
+---- Success return int, int, Rectangle
+---@param bounds table
+---@param text string|nil
+---@param value integer
+---@param minValue integer
+---@param maxValue integer
+---@param editMode boolean
+---@return any result
+---@return any value
+---@return any textBounds
+function RL.GuiValueBox( bounds, text, value, minValue, maxValue, editMode ) end
+
+---Text Box control, updates input text
+---- Success return int, string
+---@param bounds table
+---@param text string
+---@param bufferSize integer
+---@param editMode boolean
+---@return any result
+---@return any text
+function RL.GuiTextBox( bounds, text, bufferSize, editMode ) end
+
+---Slider control, returns selected value
+---- Success return int, float, Rectangle, Rectangle
+---@param bounds table
+---@param textLeft string|nil
+---@param textRight string|nil
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any result
+---@return any value
+---@return any textLeftBounds
+---@return any textRightBounds
+function RL.GuiSlider( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Slider Bar control, returns selected value
+---- Success return int, float, Rectangle, Rectangle
+---@param bounds table
+---@param textLeft string|nil
+---@param textRight string|nil
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any result
+---@return any value
+---@return any textLeftBounds
+---@return any textRightBounds
+function RL.GuiSliderBar( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Progress Bar control, shows current progress value
+---- Success return int, float, Rectangle, Rectangle
+---@param bounds table
+---@param textLeft string|nil
+---@param textRight string|nil
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any result
+---@return any value
+---@return any textLeftBounds
+---@return any textRightBounds
+function RL.GuiProgressBar( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Status Bar control, shows info text
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiStatusBar( bounds, text ) end
+
+---Dummy control for placeholders
+---- Success return int
+---@param bounds table
+---@param text string|nil
+---@return any result
+function RL.GuiDummyRec( bounds, text ) end
+
+---Grid control, returns mouse cell position
+---- Success return int, Vector2
+---@param bounds table
+---@param text string|nil
+---@param spacing number
+---@param subdivs integer
+---@param mouseCell table
+---@return any result
+---@return any mouseCell
+function RL.GuiGrid( bounds, text, spacing, subdivs, mouseCell ) end
+
+---Scroll bar control
+---- Success return int
+---@param bounds table
+---@param value integer
+---@param minValue integer
+---@param maxValue integer
+---@return any value
+function RL.GuiScrollBar( bounds, value, minValue, maxValue ) end
+
+-- Gui - Advance controls set
+
+---List View control, returns selected list item index
+---- Success return int, int, int
+---@param bounds table
+---@param text string|nil
+---@param scrollIndex integer
+---@param active integer
+---@return any result
+---@return any scrollIndex
+---@return any active
+function RL.GuiListView( bounds, text, scrollIndex, active ) end
+
+---List View with extended parameters
+---- Success return int, int, int, int
+---@param bounds table
+---@param text string
+---@param scrollIndex integer
+---@param active integer
+---@param focus integer
+---@return any result
+---@return any scrollIndex
+---@return any active
+---@return any focus
+function RL.GuiListViewEx( bounds, text, scrollIndex, active, focus ) end
+
+---Message Box control, displays a message
+---- Success return int
+---@param bounds table
+---@param title string|nil
+---@param message string
+---@param buttons string
+---@return any result
+function RL.GuiMessageBox( bounds, title, message, buttons ) end
+
+---Text Input Box control, ask for text, supports secret
+---- Success return int, string, bool
+---@param bounds table
+---@param title string
+---@param message string
+---@param buttons string
+---@param text string
+---@param textMaxSize integer
+---@param secretViewActive boolean
+---@return any result
+---@return any text
+---@return any secretViewActive
+function RL.GuiTextInputBox( bounds, title, message, buttons, text, textMaxSize, secretViewActive ) end
+
+---Color Picker control (multiple color controls)
+---- Success return int, Color
+---@param bounds table
+---@param text string|nil
+---@param color table
+---@return any result
+---@return any color
+function RL.GuiColorPicker( bounds, text, color ) end
+
+---Color Panel control
+---- Success return int, Color
+---@param bounds table
+---@param text string|nil
+---@param color table
+---@return any result
+---@return any color
+function RL.GuiColorPanel( bounds, text, color ) end
+
+---Color Bar Alpha control
+---- Success return int, float
+---@param bounds table
+---@param text string|nil
+---@param alpha number
+---@return any result
+---@return any alpha
+function RL.GuiColorBarAlpha( bounds, text, alpha ) end
+
+---Color Bar Hue control
+---- Success return int, float
+---@param bounds table
+---@param text string|nil
+---@param value number
+---@return any result
+---@return any value
+function RL.GuiColorBarHue( bounds, text, value ) end
+
+---Color Picker control that avoids conversion to RGB on each call (multiple color controls)
+---- Success return int, Vector3
+---@param bounds table
+---@param text string|nil
+---@param colorHsv table
+---@return any result
+---@return any colorHsv
+function RL.GuiColorPickerHSV( bounds, text, colorHsv ) end
+
+---Color Panel control that returns HSV color value, used by GuiColorPickerHSV()
+---- Success return int, Vector3
+---@param bounds table
+---@param text string|nil
+---@param colorHsv table
+---@return any result
+---@return any colorHsv
+function RL.GuiColorPanelHSV( bounds, text, colorHsv ) end
+
+-- Lights - Light management functions
+
+---Create a light and get shader locations
+---- Success return Light
+---@param type integer
+---@param position table
+---@param target table
+---@param color table
+---@param shader any
+---@return any light
+function RL.CreateLight( type, position, target, color, shader ) end
+
+---Send light properties to shader
+---@param shader any
+---@param light any
+---@return any RL.UpdateLightValues
+function RL.UpdateLightValues( shader, light ) end
+
+---Set light type
+---@param light any
+---@param type integer
+---@return any RL.SetLightType
+function RL.SetLightType( light, type ) end
+
+---Set light position
+---@param light any
+---@param position table
+---@return any RL.SetLightPosition
+function RL.SetLightPosition( light, position ) end
+
+---Set light target
+---@param light any
+---@param target table
+---@return any RL.SetLightTarget
+function RL.SetLightTarget( light, target ) end
+
+---Set light color
+---@param light any
+---@param color table
+---@return any RL.SetLightColor
+function RL.SetLightColor( light, color ) end
+
+---Set light enabled
+---@param light any
+---@param enabled boolean
+---@return any RL.SetLightEnabled
+function RL.SetLightEnabled( light, enabled ) end
+
+---Get light type
+---- Success return int
+---@param light any
+---@return any type
+function RL.GetLightType( light ) end
+
+---Get light position
+---- Success return Vector3
+---@param light any
+---@return any position
+function RL.GetLightPosition( light ) end
+
+---Get light target
+---- Success return Vector3
+---@param light any
+---@return any target
+function RL.GetLightTarget( light ) end
+
+---Get light color
+---- Success return Color
+---@param light any
+---@return any color
+function RL.GetLightColor( light ) end
+
+---Get light enabled
+---- Success return bool
+---@param light any
+---@return any enabled
+function RL.IsLightEnabled( light ) end
+
+-- RLGL - Matrix operations
+
+---Choose the current matrix to be transformed
+---@param mode integer
+---@return any RL.rlMatrixMode
+function RL.rlMatrixMode( mode ) end
+
+---Push the current matrix to stack
+---@return any RL.rlPushMatrix
+function RL.rlPushMatrix() end
+
+---Pop latest inserted matrix from stack
+---@return any RL.rlPopMatrix
+function RL.rlPopMatrix() end
+
+---Reset current matrix to identity matrix
+---@return any RL.rlLoadIdentity
+function RL.rlLoadIdentity() end
+
+---Multiply the current matrix by a translation matrix
+---@param translation table
+---@return any RL.rlTranslatef
+function RL.rlTranslatef( translation ) end
+
+---Multiply the current matrix by a rotation matrix
+---@param angle number
+---@param rotation table
+---@return any RL.rlRotatef
+function RL.rlRotatef( angle, rotation ) end
+
+---Multiply the current matrix by a scaling matrix
+---@param scale table
+---@return any RL.rlScalef
+function RL.rlScalef( scale ) end
+
+---Multiply the current matrix by another matrix
+---@param matrix table
+---@return any RL.rlMultMatrixf
+function RL.rlMultMatrixf( matrix ) end
+
+---Multiply the current matrix by a perspective matrix generated by parameters
+---@param left number
+---@param right number
+---@param bottom number
+---@param top number
+---@param znear number
+---@param zfar number
+---@return any RL.rlFrustum
+function RL.rlFrustum( left, right, bottom, top, znear, zfar ) end
+
+---Multiply the current matrix by an orthographic matrix generated by parameters
+---@param left number
+---@param right number
+---@param bottom number
+---@param top number
+---@param znear number
+---@param zfar number
+---@return any RL.rlOrtho
+function RL.rlOrtho( left, right, bottom, top, znear, zfar ) end
+
+---Set the viewport area (transformation from normalized device coordinates to window coordinates)
+---NOTE: We store current viewport dimensions
+---@param viewport table
+---@return any RL.rlViewport
+function RL.rlViewport( viewport ) end
+
+---Set clip planes distances
+---@param nearPlane number
+---@param farPlane number
+---@return any RL.rlSetClipPlanes
+function RL.rlSetClipPlanes( nearPlane, farPlane ) end
+
+---Get cull plane distance near
+---- Success return float
+---@return any distance
+function RL.rlGetCullDistanceNear() end
+
+---Get cull plane distance far
+---- Success return float
+---@return any distance
+function RL.rlGetCullDistanceFar() end
+
+-- RLGL - Vertex level operations
+
+---Initialize drawing mode (how to organize vertex)
+---@param mode integer
+---@return any RL.rlBegin
+function RL.rlBegin( mode ) end
+
+---Finish vertex providing
+---@return any RL.rlEnd
+function RL.rlEnd() end
+
+---Define one vertex (position)
+---@param position table
+---@return any RL.rlVertex2f
+function RL.rlVertex2f( position ) end
+
+---Define one vertex (position)
+---@param position table
+---@return any RL.rlVertex3f
+function RL.rlVertex3f( position ) end
+
+---Define one vertex (texture coordinate) - 2 float
+---@param texCoord table
+---@return any RL.rlTexCoord2f
+function RL.rlTexCoord2f( texCoord ) end
+
+---Define one vertex (normal) - 3 float
+---@param normal table
+---@return any RL.rlNormal3f
+function RL.rlNormal3f( normal ) end
+
+---Define one vertex (color) - 4 byte
+---@param color table
+---@return any RL.rlColor4ub
+function RL.rlColor4ub( color ) end
+
+---Define one vertex (color) - 3 float
+---@param color table
+---@return any RL.rlColor3f
+function RL.rlColor3f( color ) end
+
+---Define one vertex (color) - 4 float
+---@param color table
+---@return any RL.rlColor4f
+function RL.rlColor4f( color ) end
+
+-- RLGL - Vertex buffers state
+
+---Enable vertex array (VAO, if supported)
+---- Success return bool
+---@param vaoId integer
+---@return any supported
+function RL.rlEnableVertexArray( vaoId ) end
+
+---Disable vertex array (VAO, if supported)
+---@return any RL.rlDisableVertexArray
+function RL.rlDisableVertexArray() end
+
+---Enable vertex buffer (VBO)
+---- Failure return false
+---- Success return true
+---@param id integer
+---@return any RL.rlEnableVertexBuffer
+function RL.rlEnableVertexBuffer( id ) end
+
+---Disable vertex buffer (VBO)
+---@return any RL.rlDisableVertexBuffer
+function RL.rlDisableVertexBuffer() end
+
+---Enable vertex buffer element (VBO element)
+---@param id integer
+---@return any RL.rlEnableVertexBufferElement
+function RL.rlEnableVertexBufferElement( id ) end
+
+---Disable vertex buffer element (VBO element)
+---@return any RL.rlDisableVertexBufferElement
+function RL.rlDisableVertexBufferElement() end
+
+---Enable vertex attribute index
+---@param index integer
+---@return any RL.rlEnableVertexAttribute
+function RL.rlEnableVertexAttribute( index ) end
+
+---Disable vertex attribute index
+---@param index integer
+---@return any RL.rlDisableVertexAttribute
+function RL.rlDisableVertexAttribute( index ) end
+
+---Enable attribute state pointer
+---@param vertexAttribType integer
+---@param buffer any
+---@return any RL.rlEnableStatePointer
+function RL.rlEnableStatePointer( vertexAttribType, buffer ) end
+
+---Disable attribute state pointer
+---@param vertexAttribType integer
+---@return any RL.rlDisableStatePointer
+function RL.rlDisableStatePointer( vertexAttribType ) end
+
+-- RLGL - Textures state
+
+---Select and active a texture slot
+---@param slot integer
+---@return any RL.rlActiveTextureSlot
+function RL.rlActiveTextureSlot( slot ) end
+
+---Enable texture
+---@param id integer
+---@return any RL.rlEnableTexture
+function RL.rlEnableTexture( id ) end
+
+---Disable texture
+---@return any RL.rlDisableTexture
+function RL.rlDisableTexture() end
+
+---Enable texture cubemap
+---@param id integer
+---@return any RL.rlEnableTextureCubemap
+function RL.rlEnableTextureCubemap( id ) end
+
+---Disable texture cubemap
+---@return any RL.rlDisableTextureCubemap
+function RL.rlDisableTextureCubemap() end
+
+---Set texture parameters (filter, wrap)
+---@param id integer
+---@param param integer
+---@param value integer
+---@return any RL.rlTextureParameters
+function RL.rlTextureParameters( id, param, value ) end
+
+---Set cubemap parameters (filter, wrap)
+---@param id integer
+---@param param integer
+---@param value integer
+---@return any RL.rlCubemapParameters
+function RL.rlCubemapParameters( id, param, value ) end
+
+-- RLGL - Shader state
+
+---Enable shader program
+---@param id integer
+---@return any RL.rlEnableShader
+function RL.rlEnableShader( id ) end
+
+---Disable shader program
+---@return any RL.rlDisableShader
+function RL.rlDisableShader() end
+
+-- RLGL - Framebuffer state
+
+---Enable render texture (fbo)
+---@param id integer
+---@return any RL.rlEnableFramebuffer
+function RL.rlEnableFramebuffer( id ) end
+
+---Disable render texture (fbo), return to default framebuffer
+---@return any RL.rlDisableFramebuffer
+function RL.rlDisableFramebuffer() end
+
+---Get the currently active render texture (fbo), 0 for default framebuffer
+---- Success return int
+---@return any framebuffer
+function RL.rlGetActiveFramebuffer() end
+
+---Activate multiple draw color buffers
+---@param count integer
+---@return any RL.rlActiveDrawBuffers
+function RL.rlActiveDrawBuffers( count ) end
+
+---Blit active framebuffer to main framebuffer
+---@param srcRect table
+---@param dstRect table
+---@param bufferMask integer
+---@return any RL.rlBlitFramebuffer
+function RL.rlBlitFramebuffer( srcRect, dstRect, bufferMask ) end
+
+---Bind framebuffer (FBO)
+---@param target integer
+---@param framebuffer integer
+---@return any RL.rlBindFramebuffer
+function RL.rlBindFramebuffer( target, framebuffer ) end
+
+-- RLGL - General render state
+
+---Enable color blending
+---@return any RL.rlEnableColorBlend
+function RL.rlEnableColorBlend() end
+
+---Disable color blending
+---@return any RL.rlDisableColorBlend
+function RL.rlDisableColorBlend() end
+
+---Enable depth test
+---@return any RL.rlEnableDepthTest
+function RL.rlEnableDepthTest() end
+
+---Disable depth test
+---@return any RL.rlDisableDepthTest
+function RL.rlDisableDepthTest() end
+
+---Enable depth write
+---@return any RL.rlEnableDepthMask
+function RL.rlEnableDepthMask() end
+
+---Disable depth write
+---@return any RL.rlDisableDepthMask
+function RL.rlDisableDepthMask() end
+
+---Enable backface culling
+---@return any RL.rlEnableBackfaceCulling
+function RL.rlEnableBackfaceCulling() end
+
+---Disable backface culling
+---@return any RL.rlDisableBackfaceCulling
+function RL.rlDisableBackfaceCulling() end
+
+---Color mask control
+---@param r boolean
+---@param g boolean
+---@param b boolean
+---@param a boolean
+---@return any RL.rlColorMask
+function RL.rlColorMask( r, g, b, a ) end
+
+---Set face culling mode
+---@param mode integer
+---@return any RL.rlSetCullFace
+function RL.rlSetCullFace( mode ) end
+
+---Enable scissor test
+---@return any RL.rlEnableScissorTest
+function RL.rlEnableScissorTest() end
+
+---Disable scissor test
+---@return any RL.rlDisableScissorTest
+function RL.rlDisableScissorTest() end
+
+---Scissor test
+---@param area table
+---@return any RL.rlScissor
+function RL.rlScissor( area ) end
+
+---Enable wire mode
+---@return any RL.rlEnableWireMode
+function RL.rlEnableWireMode() end
+
+---Enable point mode
+---@return any RL.rlEnablePointMode
+function RL.rlEnablePointMode() end
+
+---Disable wire mode
+---@return any RL.rlDisableWireMode
+function RL.rlDisableWireMode() end
+
+---Set the line drawing width
+---@param width number
+---@return any RL.rlSetLineWidth
+function RL.rlSetLineWidth( width ) end
+
+---Get the line drawing width
+---- Success return float
+---@return any width
+function RL.rlGetLineWidth() end
+
+---Enable line aliasing
+---@return any RL.rlEnableSmoothLines
+function RL.rlEnableSmoothLines() end
+
+---Disable line aliasing
+---@return any RL.rlDisableSmoothLines
+function RL.rlDisableSmoothLines() end
+
+---Enable stereo rendering
+---@return any RL.rlEnableStereoRender
+function RL.rlEnableStereoRender() end
+
+---Enable stereo rendering
+---@return any RL.rlDisableStereoRender
+function RL.rlDisableStereoRender() end
+
+---Check if stereo render is enabled
+---- Success return bool
+---@return any enabled
+function RL.rlIsStereoRenderEnabled() end
+
+---Clear color buffer with color
+---@param color table
+---@return any RL.rlClearColor
+function RL.rlClearColor( color ) end
+
+---Clear used screen buffers (color and depth)
+---@return any RL.rlClearScreenBuffers
+function RL.rlClearScreenBuffers() end
+
+---Check and log OpenGL error codes
+---@return any RL.rlCheckErrors
+function RL.rlCheckErrors() end
+
+---Set blending mode
+---@param mode integer
+---@return any RL.rlSetBlendMode
+function RL.rlSetBlendMode( mode ) end
+
+---Set blending mode factor and equation (using OpenGL factors)
+---@param glSrcFactor integer
+---@param glDstFactor integer
+---@param glEquation integer
+---@return any RL.rlSetBlendFactors
+function RL.rlSetBlendFactors( glSrcFactor, glDstFactor, glEquation ) end
+
+---Set blending mode factors and equations separately (using OpenGL factors)
+---@param glSrcRGB integer
+---@param glDstRGB integer
+---@param glSrcAlpha integer
+---@param glDstAlpha integer
+---@param glEqRGB integer
+---@param glEqAlpha integer
+---@return any RL.rlSetBlendFactorsSeparate
+function RL.rlSetBlendFactorsSeparate( glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha ) end
+
+-- RLGL - Initialization functions
+
+---Get current OpenGL version
+---- Success return int
+---@return any version
+function RL.rlGetVersion() end
+
+---Set current framebuffer width
+---@param width integer
+---@return any version
+function RL.rlSetFramebufferWidth( width ) end
+
+---Get default framebuffer width
+---- Success return int
+---@return any width
+function RL.rlGetFramebufferWidth() end
+
+---Set current framebuffer height
+---@param height integer
+---@return any version
+function RL.rlSetFramebufferHeight( height ) end
+
+---Get default framebuffer height
+---- Success return int
+---@return any height
+function RL.rlGetFramebufferHeight() end
+
+---Get default texture id
+---- Success return int
+---@return any id
+function RL.rlGetTextureIdDefault() end
+
+---Get default shader id
+---- Success return int
+---@return any id
+function RL.rlGetShaderIdDefault() end
+
+---Get default shader locations
+---- Success return int{}
+---@return any locations
+function RL.rlGetShaderLocsDefault() end
+
+-- RLGL - Render batch management
+
+---Load a render batch system
+---- Success return rlRenderBatch
+---@param numBuffers integer
+---@param bufferElements integer
+---@return any renderBatch
+function RL.rlLoadRenderBatch( numBuffers, bufferElements ) end
+
+---Unload render batch system
+---@param renderBatch any
+---@return any RL.rlUnloadRenderBatch
+function RL.rlUnloadRenderBatch( renderBatch ) end
+
+---Draw render batch data (Update->Draw->Reset)
+---@param renderBatch any
+---@return any RL.rlDrawRenderBatch
+function RL.rlDrawRenderBatch( renderBatch ) end
+
+---Set the active render batch for rlgl (nil for default internal)
+---@param renderBatch any
+---@return any RL.rlSetRenderBatchActive
+function RL.rlSetRenderBatchActive( renderBatch ) end
+
+---Update and draw internal render batch
+---@return any RL.rlDrawRenderBatchActive
+function RL.rlDrawRenderBatchActive() end
+
+---Check internal buffer overflow for a given number of vertex and force a rlRenderBatch draw call if required
+---- Success return bool
+---@param vCount integer
+---@return any overflow
+function RL.rlCheckRenderBatchLimit( vCount ) end
+
+---Set current texture for render batch and check buffers limits
+---@param id integer
+---@return any RL.rlSetTexture
+function RL.rlSetTexture( id ) end
+
+-- RLGL - Vertex buffers management
+
+---Load vertex array (vao) if supported
+---- Success return int
+---@return any vaoId
+function RL.rlLoadVertexArray() end
+
+---Load a vertex buffer attribute
+---- Success return int
+---@param buffer any
+---@param dynamic boolean
+---@return any vboId
+function RL.rlLoadVertexBuffer( buffer, dynamic ) end
+
+---Load a new attributes element buffer
+---- Success return int
+---@param buffer any
+---@param dynamic boolean
+---@return any vboId
+function RL.rlLoadVertexBufferElement( buffer, dynamic ) end
+
+---Update GPU buffer with new data
+---@param bufferId integer
+---@param buffer any
+---@param offset integer
+---@return any RL.rlUpdateVertexBuffer
+function RL.rlUpdateVertexBuffer( bufferId, buffer, offset ) end
+
+---Update vertex buffer elements with new data
+---@param id integer
+---@param buffer any
+---@param offset integer
+---@return any RL.rlUpdateVertexBufferElements
+function RL.rlUpdateVertexBufferElements( id, buffer, offset ) end
+
+---Unload vertex array object (VAO)
+---@param vaoId integer
+---@return any RL.rlUnloadVertexArray
+function RL.rlUnloadVertexArray( vaoId ) end
+
+---Unload vertex buffer (VBO)
+---@param vboId integer
+---@return any RL.rlUnloadVertexBuffer
+function RL.rlUnloadVertexBuffer( vboId ) end
+
+---Set vertex attribute data configuration
+---@param index integer
+---@param compSize integer
+---@param type integer
+---@param normalized boolean
+---@param stride integer
+---@param offset integer
+---@return any RL.rlSetVertexAttribute
+function RL.rlSetVertexAttribute( index, compSize, type, normalized, stride, offset ) end
+
+---Set vertex attribute divisor
+---@param index integer
+---@param divisor integer
+---@return any RL.rlSetVertexAttributeDivisor
+function RL.rlSetVertexAttributeDivisor( index, divisor ) end
+
+---Set vertex attribute default value
+---@param locIndex integer
+---@param value table
+---@param attribType integer
+---@return any RL.rlSetVertexAttributeDefault
+function RL.rlSetVertexAttributeDefault( locIndex, value, attribType ) end
+
+---Draw vertex array
+---@param offset integer
+---@param count integer
+---@return any RL.rlDrawVertexArray
+function RL.rlDrawVertexArray( offset, count ) end
+
+---Draw vertex array elements
+---@param offset integer
+---@param count integer
+---@param buffer any
+---@return any RL.rlDrawVertexArrayElements
+function RL.rlDrawVertexArrayElements( offset, count, buffer ) end
+
+---Draw vertex array instanced
+---@param offset integer
+---@param count integer
+---@param instances integer
+---@return any RL.rlDrawVertexArrayInstanced
+function RL.rlDrawVertexArrayInstanced( offset, count, instances ) end
+
+---Draw vertex array elements instanced
+---@param offset integer
+---@param count integer
+---@param buffer any
+---@param instances integer
+---@return any RL.rlDrawVertexArrayElementsInstanced
+function RL.rlDrawVertexArrayElementsInstanced( offset, count, buffer, instances ) end
+
+-- RLGL - Textures management
+
+---Load texture in GPU
+---- Success return int
+---@param data any
+---@param size table
+---@param format integer
+---@param mipmapCount integer
+---@return any id
+function RL.rlLoadTexture( data, size, format, mipmapCount ) end
+
+---Load depth texture/renderbuffer (to be attached to fbo)
+---- Success return int
+---@param size table
+---@param useRenderBuffer boolean
+---@return any id
+function RL.rlLoadTextureDepth( size, useRenderBuffer ) end
+
+---Load texture cubemap data
+---- Success return int
+---@param data any
+---@param size integer
+---@param format integer
+---@param mipmapCount integer
+---@return any id
+function RL.rlLoadTextureCubemap( data, size, format, mipmapCount ) end
+
+---Update GPU texture with new data
+---@param id integer
+---@param offset table
+---@param size table
+---@param format integer
+---@param data any
+---@return any RL.rlUpdateTexture
+function RL.rlUpdateTexture( id, offset, size, format, data ) end
+
+---Get OpenGL internal formats
+---- Success return int, int, int
+---@param format integer
+---@return any glInternalFormat
+---@return any glFormat
+---@return any glType
+function RL.rlGetGlTextureFormats( format ) end
+
+---Get name string for pixel format
+---- Success return string
+---@param format integer
+---@return any name
+function RL.rlGetPixelFormatName( format ) end
+
+---Unload texture from GPU memory
+---@param id integer
+---@return any RL.rlUnloadTexture
+function RL.rlUnloadTexture( id ) end
+
+---Generate mipmap data for selected texture
+---- Success return int
+---@param id integer
+---@param size table
+---@param format integer
+---@return any mipmapCount
+function RL.rlGenTextureMipmaps( id, size, format ) end
+
+---Read texture pixel data
+---- Success return Buffer
+---@param id integer
+---@param size table
+---@param format integer
+---@return any data
+function RL.rlReadTexturePixels( id, size, format ) end
+
+---Read screen pixel data (color buffer)
+---- Success return Buffer
+---@param size table
+---@return any data
+function RL.rlReadScreenPixels( size ) end
+
+-- RLGL - Framebuffer management (fbo)
+
+---Load an empty framebuffer
+---- Success return int
+---@return any fboId
+function RL.rlLoadFramebuffer() end
+
+---Attach texture/renderbuffer to a framebuffer
+---@param fboId integer
+---@param texId integer
+---@param attachType integer
+---@param texType integer
+---@param mipLevel integer
+---@return any RL.rlFramebufferAttach
+function RL.rlFramebufferAttach( fboId, texId, attachType, texType, mipLevel ) end
+
+---Verify framebuffer is complete
+---- Success return bool
+---@param id integer
+---@return any isComplete
+function RL.rlFramebufferComplete( id ) end
+
+---Delete framebuffer from GPU
+---@param id integer
+---@return any RL.rlUnloadFramebuffer
+function RL.rlUnloadFramebuffer( id ) end
+
+-- RLGL - Shaders management
+
+---Load shader from code strings
+---- Success return int
+---@param vsCode string
+---@param fsCode string
+---@return any shaderId
+function RL.rlLoadShaderCode( vsCode, fsCode ) end
+
+---Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)
+---- Success return int
+---@param shaderCode string
+---@param type integer
+---@return any shaderId
+function RL.rlCompileShader( shaderCode, type ) end
+
+---Load custom shader program
+---- Success return int
+---@param vShaderId integer
+---@param fShaderId integer
+---@return any shaderProgramId
+function RL.rlLoadShaderProgram( vShaderId, fShaderId ) end
+
+---Unload shader program
+---@param id integer
+---@return any RL.rlUnloadShaderProgram
+function RL.rlUnloadShaderProgram( id ) end
+
+---Get shader location uniform
+---- Success return int
+---@param shaderId integer
+---@param uniformName string
+---@return any location
+function RL.rlGetLocationUniform( shaderId, uniformName ) end
+
+---Get shader location attribute
+---- Success return int
+---@param shaderId integer
+---@param attribName string
+---@return any location
+function RL.rlGetLocationAttrib( shaderId, attribName ) end
+
+---Set shader value uniform
+---@param locIndex integer
+---@param value any
+---@param uniformType integer
+---@param count integer
+---@return any RL.rlSetUniform
+function RL.rlSetUniform( locIndex, value, uniformType, count ) end
+
+---Set shader value matrix
+---@param locIndex integer
+---@param mat table
+---@return any RL.rlSetUniformMatrix
+function RL.rlSetUniformMatrix( locIndex, mat ) end
+
+---Set shader value matrices
+---@param locIndex integer
+---@param mat table
+---@return any RL.rlSetUniformMatrices
+function RL.rlSetUniformMatrices( locIndex, mat ) end
+
+---Set shader value sampler
+---@param locIndex integer
+---@param textureId integer
+---@return any RL.rlSetUniformSampler
+function RL.rlSetUniformSampler( locIndex, textureId ) end
+
+---Set shader currently active (id and locations)
+---@param id integer
+---@param locs table
+---@return any RL.rlSetShader
+function RL.rlSetShader( id, locs ) end
+
+-- RLGL - Compute shader management
+
+---Load compute shader program
+---- Success return int
+---@param shaderId integer
+---@return any programId
+function RL.rlLoadComputeShaderProgram( shaderId ) end
+
+---Dispatch compute shader (equivalent to *draw* for graphics pipeline)
+---@param groupX integer
+---@param groupY integer
+---@param groupZ integer
+---@return any RL.rlComputeShaderDispatch
+function RL.rlComputeShaderDispatch( groupX, groupY, groupZ ) end
+
+-- RLGL - Shader buffer storage object management (ssbo)
+
+---Load shader storage buffer object (SSBO)
+---- Success return int
+---@param size integer
+---@param data any
+---@param usageHint integer
+---@return any buffer
+function RL.rlLoadShaderBuffer( size, data, usageHint ) end
+
+---Unload shader storage buffer object (SSBO)
+---@param ssboId integer
+---@return any RL.rlUnloadShaderBuffer
+function RL.rlUnloadShaderBuffer( ssboId ) end
+
+---Update SSBO buffer data
+---@param id integer
+---@param data any
+---@param offset integer
+---@return any RL.rlUpdateShaderBuffer
+function RL.rlUpdateShaderBuffer( id, data, offset ) end
+
+---Bind SSBO buffer
+---@param id integer
+---@param index integer
+---@return any RL.rlBindShaderBuffer
+function RL.rlBindShaderBuffer( id, index ) end
+
+---Read SSBO buffer data (GPU->CPU)
+---- Success return Buffer
+---@param id integer
+---@param count integer
+---@param offset integer
+---@return any data
+function RL.rlReadShaderBuffer( id, count, offset ) end
+
+---Copy SSBO data between buffers
+---@param destId integer
+---@param srcId integer
+---@param destOffset integer
+---@param srcOffset integer
+---@param count integer
+---@return any RL.rlCopyShaderBuffer
+function RL.rlCopyShaderBuffer( destId, srcId, destOffset, srcOffset, count ) end
+
+---Get SSBO buffer size
+---- Success return int
+---@param id integer
+---@return any size
+function RL.rlGetShaderBufferSize( id ) end
+
+-- RLGL - Buffer management
+
+---Bind image texture
+---@param id integer
+---@param index integer
+---@param format integer
+---@param readonly boolean
+---@return any RL.rlBindImageTexture
+function RL.rlBindImageTexture( id, index, format, readonly ) end
+
+-- RLGL - Matrix state management
+
+---Get internal modelview matrix
+---- Success return Matrix
+---@return any modelview
+function RL.rlGetMatrixModelview() end
+
+---Get internal projection matrix
+---- Success return Matrix
+---@return any projection
+function RL.rlGetMatrixProjection() end
+
+---Get internal accumulated transform matrix
+---- Success return Matrix
+---@return any transform
+function RL.rlGetMatrixTransform() end
+
+---Get internal projection matrix for stereo render (selected eye)
+---- Success return Matrix
+---@param eye integer
+---@return any projection
+function RL.rlGetMatrixProjectionStereo( eye ) end
+
+---Get internal view offset matrix for stereo render (selected eye)
+---- Success return Matrix
+---@param eye integer
+---@return any viewOffset
+function RL.rlGetMatrixViewOffsetStereo( eye ) end
+
+---Set a custom projection matrix (replaces internal projection matrix)
+---@param proj table
+---@return any RL.rlSetMatrixProjection
+function RL.rlSetMatrixProjection( proj ) end
+
+---Set a custom modelview matrix (replaces internal modelview matrix)
+---@param view table
+---@return any RL.rlSetMatrixModelview
+function RL.rlSetMatrixModelview( view ) end
+
+---Set eyes projection matrices for stereo rendering
+---@param right table
+---@param left table
+---@return any RL.rlSetMatrixProjectionStereo
+function RL.rlSetMatrixProjectionStereo( right, left ) end
+
+---Set eyes view offsets matrices for stereo rendering
+---@param right table
+---@param left table
+---@return any RL.rlSetMatrixViewOffsetStereo
+function RL.rlSetMatrixViewOffsetStereo( right, left ) end
+
+-- OpenGL - Rendering
+
+---Clear buffers to preset values
+---@param mask integer
+---@return any RL.glClear
+function RL.glClear( mask ) end
+
+-- OpenGL - Frame Buffers
+
+---Copy a block of pixels from one framebuffer object to another.
+---Use nil RenderTexture for window framebuffer
+---@param srcTex any
+---@param dstTex any
+---@param srcRect table
+---@param dstRect table
+---@param mask integer
+---@param filter integer
+---@return any RL.glBlitFramebuffer
+function RL.glBlitFramebuffer( srcTex, dstTex, srcRect, dstRect, mask, filter ) end
+
+-- OpenGL - State Management
+
+---Specify mapping of depth values from normalized device coordinates to window coordinates
+---@param nearVal number
+---@param farVal number
+---@return any RL.glDepthRange
+function RL.glDepthRange( nearVal, farVal ) end
+
+---Enable server-side GL capabilities
+---@param cap integer
+---@return any RL.glEnable
+function RL.glEnable( cap ) end
+
+---Disable server-side GL capabilities
+---@param cap integer
+---@return any RL.glDisable
+function RL.glDisable( cap ) end
+
+---Set the scale and units used to calculate depth values
+---@param factor number
+---@param units number
+---@return any RL.glPolygonOffset
+function RL.glPolygonOffset( factor, units ) end
+
+---Set front and back function and reference value for stencil testing
+---@param func integer
+---@param ref integer
+---@param mask integer
+---@return any RL.glStencilFunc
+function RL.glStencilFunc( func, ref, mask ) end
+
+---Set front and/or back function and reference value for stencil testing
+---@param face integer
+---@param func integer
+---@param ref integer
+---@param mask integer
+---@return any RL.glStencilFuncSeparate
+function RL.glStencilFuncSeparate( face, func, ref, mask ) end
+
+---Control the front and back writing of individual bits in the stencil planes
+---@param mask integer
+---@return any RL.glStencilMask
+function RL.glStencilMask( mask ) end
+
+---Control the front and/or back writing of individual bits in the stencil planes
+---@param face integer
+---@param mask integer
+---@return any RL.glStencilMaskSeparate
+function RL.glStencilMaskSeparate( face, mask ) end
+
+---Set front and back stencil test actions
+---@param sfail integer
+---@param dpfail integer
+---@param dppass integer
+---@return any RL.glStencilOp
+function RL.glStencilOp( sfail, dpfail, dppass ) end
+
+---Set front and back stencil test actions
+---@param face integer
+---@param sfail integer
+---@param dpfail integer
+---@param dppass integer
+---@return any RL.glStencilOpSeparate
+function RL.glStencilOpSeparate( face, sfail, dpfail, dppass ) end
+
+-- OpenGL - Utility
+
+---Return a string describing the current GL connection. GL_EXTENSIONS returns the extension string supported by the implementation at index
+---- Success return string
+---@param name integer
+---@param index integer|nil
+---@return any connection
+function RL.glGetString( name, index ) end
+
+-- Easings - Linear Easing functions
+
+---Ease linear
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseLinear( t, b, c, d ) end
+
+-- Easings - Sine Easing functions
+
+---Ease sine in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseSineIn( t, b, c, d ) end
+
+---Ease sine out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseSineOut( t, b, c, d ) end
+
+---Ease sine in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseSineInOut( t, b, c, d ) end
+
+-- Easings - Circular Easing functions
+
+---Ease circle in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCircIn( t, b, c, d ) end
+
+---Ease circle out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCircOut( t, b, c, d ) end
+
+---Ease circle in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCircInOut( t, b, c, d ) end
+
+-- Easings - Cubic Easing functions
+
+---Ease cubic in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCubicIn( t, b, c, d ) end
+
+---Ease cubic out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCubicOut( t, b, c, d ) end
+
+---Ease cubic in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseCubicInOut( t, b, c, d ) end
+
+-- Easings - Quadratic Easing functions
+
+---Ease quadratic in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseQuadIn( t, b, c, d ) end
+
+---Ease quadratic out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseQuadOut( t, b, c, d ) end
+
+---Ease quadratic in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseQuadInOut( t, b, c, d ) end
+
+-- Easings - Exponential Easing functions
+
+---Ease exponential in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseExpoIn( t, b, c, d ) end
+
+---Ease exponential out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseExpoOut( t, b, c, d ) end
+
+---Ease exponential in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseExpoInOut( t, b, c, d ) end
+
+-- Easings - Back Easing functions
+
+---Ease back in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBackIn( t, b, c, d ) end
+
+---Ease back out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBackOut( t, b, c, d ) end
+
+---Ease back in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBackInOut( t, b, c, d ) end
+
+-- Easings - Bounce Easing functions
+
+---Ease bounce in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBounceIn( t, b, c, d ) end
+
+---Ease bounce out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBounceOut( t, b, c, d ) end
+
+---Ease bounce in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseBounceInOut( t, b, c, d ) end
+
+-- Easings - Elastic Easing functions
+
+---Ease elastic in
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseElasticIn( t, b, c, d ) end
+
+---Ease elastic out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseElasticOut( t, b, c, d ) end
+
+---Ease elastic in out
+---- Success return float
+---@param t number
+---@param b number
+---@param c number
+---@param d number
+---@return any value
+function RL.EaseElasticInOut( t, b, c, d ) end
+
+-- Bitwise Operations - Arithmetic
+
+---Equivalent to a & b in C
+---- Success return int
+---@param a integer
+---@param b integer
+---@return any result
+function RL.BitAnd( a, b ) end
+
+---Equivalent to a | b in C
+---- Success return int
+---@param a integer
+---@param b integer
+---@return any result
+function RL.BitOr( a, b ) end
+
+---Equivalent to a ^ b in C
+---- Success return int
+---@param a integer
+---@param b integer
+---@return any result
+function RL.BitXor( a, b ) end
+
+---Equivalent to ~v in C
+---- Success return int
+---@param v integer
+---@return any result
+function RL.BitNot( v ) end
+
+---Equivalent to v << n in C
+---- Success return int
+---@param v integer
+---@param n integer
+---@return any result
+function RL.BitShiftLeft( v, n ) end
+
+---Equivalent to v >> n in C
+---- Success return int
+---@param v integer
+---@param n integer
+---@return any result
+function RL.BitShiftRight( v, n ) end
+
+---Set bit in index i to state b in value v
+---- Success return int
+---@param v integer
+---@param i integer
+---@param b boolean
+---@return any result
+function RL.BitSet( v, i, b ) end
+
+---Get bit in index i from value v
+---- Success return bool
+---@param v integer
+---@param i integer
+---@return any bit
+function RL.BitGet( v, i ) end
+
+---Toggle bit in index i in value v
+---- Success return int
+---@param v integer
+---@param i integer
+---@return any result
+function RL.BitToggle( v, i ) end
+
+-- GLFW Core - Input-related functions: keyboard
+
+---This function returns the name of the specified printable key, encoded as UTF-8.
+---If the key is KEY_UNKNOWN, the scancode is used to identify the key,
+---otherwise the scancode is ignored. If you specify a non-printable key,
+---or KEY_UNKNOWN and a scancode that maps to a non-printable key,
+---this function returns nil but does not emit an error.
+---- Success return string or nil
+---@param key integer
+---@param scancode integer
+---@return any keyName
+function RL.GetKeyName( key, scancode ) end
+
+---This function returns the platform-specific scancode of the specified key.
+---If the key is KEY_UNKNOWN or does not exist on the keyboard this method will return -1.
+---- Success return int
+---@param key integer
+---@return any scancode
+function RL.GetKeyScancode( key ) end
+