summaryrefslogtreecommitdiff
path: root/ReiLua_API.lua
diff options
context:
space:
mode:
authorjussi2023-04-06 12:31:37 +0300
committerjussi2023-04-06 12:31:37 +0300
commit2526c9732e7ea35bc9ed3e43a4db77b7e6364c5a (patch)
tree825775577403d9341045571adb266173513c4bbd /ReiLua_API.lua
parent198a74c0aa27389c062c47bc29187c58a9d6c4a1 (diff)
downloadreilua-enhanced-2526c9732e7ea35bc9ed3e43a4db77b7e6364c5a.tar.gz
reilua-enhanced-2526c9732e7ea35bc9ed3e43a4db77b7e6364c5a.tar.bz2
reilua-enhanced-2526c9732e7ea35bc9ed3e43a4db77b7e6364c5a.zip
All global variables and functions are not in global RL table. doc_parser creates also ReiLua_API.lua.
Diffstat (limited to 'ReiLua_API.lua')
-rw-r--r--ReiLua_API.lua5385
1 files changed, 5385 insertions, 0 deletions
diff --git a/ReiLua_API.lua b/ReiLua_API.lua
new file mode 100644
index 0000000..3623336
--- /dev/null
+++ b/ReiLua_API.lua
@@ -0,0 +1,5385 @@
+-- Put this file into your project folder to provide annotations when using Lua language server.
+
+RL={}
+
+-- Functions.
+
+---This function will be called first when 'main.lua' is found
+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.process( delta ) end
+---This function will be called every frame after process 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 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
+
+-- Globals - ConfigFlags
+
+RL.FLAG_VSYNC_HINT=64
+RL.FLAG_FULLSCREEN_MODE=2
+RL.FLAG_WINDOW_RESIZABLE=4
+RL.FLAG_WINDOW_UNDECORATED=8
+RL.FLAG_WINDOW_HIDDEN=128
+RL.FLAG_WINDOW_MINIMIZED=512
+RL.FLAG_WINDOW_MAXIMIZED=1024
+RL.FLAG_WINDOW_UNFOCUSED=2048
+RL.FLAG_WINDOW_TOPMOST=4096
+RL.FLAG_WINDOW_ALWAYS_RUN=256
+RL.FLAG_WINDOW_TRANSPARENT=16
+RL.FLAG_WINDOW_HIGHDPI=8192
+RL.FLAG_MSAA_4X_HINT=32
+RL.FLAG_INTERLACED_HINT=65536
+
+-- Globals - TraceLogLevel
+
+RL.LOG_ALL=0
+RL.LOG_TRACE=1
+RL.LOG_DEBUG=2
+RL.LOG_INFO=3
+RL.LOG_WARNING=4
+RL.LOG_ERROR=5
+RL.LOG_FATAL=6
+RL.LOG_NONE=7
+
+-- Globals - KeyboardKey
+
+RL.GLFW_KEY_UNKNOWN=nil
+RL.KEY_NULL=0
+RL.KEY_APOSTROPHE=39
+RL.KEY_COMMA=44
+RL.KEY_MINUS=45
+RL.KEY_PERIOD=46
+RL.KEY_SLASH=47
+RL.KEY_ZERO=48
+RL.KEY_ONE=49
+RL.KEY_TWO=50
+RL.KEY_THREE=51
+RL.KEY_FOUR=52
+RL.KEY_FIVE=53
+RL.KEY_SIX=54
+RL.KEY_SEVEN=55
+RL.KEY_EIGHT=56
+RL.KEY_NINE=57
+RL.KEY_SEMICOLON=59
+RL.KEY_EQUAL=61
+RL.KEY_A=65
+RL.KEY_B=66
+RL.KEY_C=67
+RL.KEY_D=68
+RL.KEY_E=69
+RL.KEY_F=70
+RL.KEY_G=71
+RL.KEY_H=72
+RL.KEY_I=73
+RL.KEY_J=74
+RL.KEY_K=75
+RL.KEY_L=76
+RL.KEY_M=77
+RL.KEY_N=78
+RL.KEY_O=79
+RL.KEY_P=80
+RL.KEY_Q=81
+RL.KEY_R=82
+RL.KEY_S=83
+RL.KEY_T=84
+RL.KEY_U=85
+RL.KEY_V=86
+RL.KEY_W=87
+RL.KEY_X=88
+RL.KEY_Y=89
+RL.KEY_Z=90
+RL.KEY_LEFT_BRACKET=91
+RL.KEY_BACKSLASH=92
+RL.KEY_RIGHT_BRACKET=93
+RL.KEY_GRAVE=96
+RL.KEY_SPACE=32
+RL.KEY_ESCAPE=256
+RL.KEY_ENTER=257
+RL.KEY_TAB=258
+RL.KEY_BACKSPACE=259
+RL.KEY_INSERT=260
+RL.KEY_DELETE=261
+RL.KEY_RIGHT=262
+RL.KEY_LEFT=263
+RL.KEY_DOWN=264
+RL.KEY_UP=265
+RL.KEY_PAGE_UP=266
+RL.KEY_PAGE_DOWN=267
+RL.KEY_HOME=268
+RL.KEY_END=269
+RL.KEY_CAPS_LOCK=280
+RL.KEY_SCROLL_LOCK=281
+RL.KEY_NUM_LOCK=282
+RL.KEY_PRINT_SCREEN=283
+RL.KEY_PAUSE=284
+RL.KEY_F1=290
+RL.KEY_F2=291
+RL.KEY_F3=292
+RL.KEY_F4=293
+RL.KEY_F5=294
+RL.KEY_F6=295
+RL.KEY_F7=296
+RL.KEY_F8=297
+RL.KEY_F9=298
+RL.KEY_F10=299
+RL.KEY_F11=300
+RL.KEY_F12=301
+RL.KEY_LEFT_SHIFT=340
+RL.KEY_LEFT_CONTROL=341
+RL.KEY_LEFT_ALT=342
+RL.KEY_LEFT_SUPER=343
+RL.KEY_RIGHT_SHIFT=344
+RL.KEY_RIGHT_CONTROL=345
+RL.KEY_RIGHT_ALT=346
+RL.KEY_RIGHT_SUPER=347
+RL.KEY_KB_MENU=348
+RL.KEY_KP_0=320
+RL.KEY_KP_1=321
+RL.KEY_KP_2=322
+RL.KEY_KP_3=323
+RL.KEY_KP_4=324
+RL.KEY_KP_5=325
+RL.KEY_KP_6=326
+RL.KEY_KP_7=327
+RL.KEY_KP_8=328
+RL.KEY_KP_9=329
+RL.KEY_KP_DECIMAL=330
+RL.KEY_KP_DIVIDE=331
+RL.KEY_KP_MULTIPLY=332
+RL.KEY_KP_SUBTRACT=333
+RL.KEY_KP_ADD=334
+RL.KEY_KP_ENTER=335
+RL.KEY_KP_EQUAL=336
+RL.KEY_BACK=4
+RL.KEY_MENU=82
+RL.KEY_VOLUME_UP=24
+RL.KEY_VOLUME_DOWN=25
+
+-- Globals - MouseButtons
+
+RL.MOUSE_BUTTON_LEFT=0
+RL.MOUSE_BUTTON_RIGHT=1
+RL.MOUSE_BUTTON_MIDDLE=2
+RL.MOUSE_BUTTON_SIDE=3
+RL.MOUSE_BUTTON_EXTRA=4
+RL.MOUSE_BUTTON_FORWARD=5
+RL.MOUSE_BUTTON_BACK=6
+
+-- Globals - MouseCursor
+
+RL.MOUSE_CURSOR_DEFAULT=0
+RL.MOUSE_CURSOR_ARROW=1
+RL.MOUSE_CURSOR_IBEAM=2
+RL.MOUSE_CURSOR_CROSSHAIR=3
+RL.MOUSE_CURSOR_POINTING_HAND=4
+RL.MOUSE_CURSOR_RESIZE_EW=5
+RL.MOUSE_CURSOR_RESIZE_NS=6
+RL.MOUSE_CURSOR_RESIZE_NWSE=7
+RL.MOUSE_CURSOR_RESIZE_NESW=8
+RL.MOUSE_CURSOR_RESIZE_ALL=9
+RL.MOUSE_CURSOR_NOT_ALLOWED=10
+
+-- Globals - GamepadButtons
+
+RL.GAMEPAD_BUTTON_UNKNOWN=0
+RL.GAMEPAD_BUTTON_LEFT_FACE_UP=1
+RL.GAMEPAD_BUTTON_LEFT_FACE_RIGHT=2
+RL.GAMEPAD_BUTTON_LEFT_FACE_DOWN=3
+RL.GAMEPAD_BUTTON_LEFT_FACE_LEFT=4
+RL.GAMEPAD_BUTTON_RIGHT_FACE_UP=5
+RL.GAMEPAD_BUTTON_RIGHT_FACE_RIGHT=6
+RL.GAMEPAD_BUTTON_RIGHT_FACE_DOWN=7
+RL.GAMEPAD_BUTTON_RIGHT_FACE_LEFT=8
+RL.GAMEPAD_BUTTON_LEFT_TRIGGER_1=9
+RL.GAMEPAD_BUTTON_LEFT_TRIGGER_2=10
+RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_1=11
+RL.GAMEPAD_BUTTON_RIGHT_TRIGGER_2=12
+RL.GAMEPAD_BUTTON_MIDDLE_LEFT=13
+RL.GAMEPAD_BUTTON_MIDDLE=14
+RL.GAMEPAD_BUTTON_MIDDLE_RIGHT=15
+RL.GAMEPAD_BUTTON_LEFT_THUMB=16
+RL.GAMEPAD_BUTTON_RIGHT_THUMB=17
+
+-- Globals - GamepadAxis
+
+RL.GAMEPAD_AXIS_LEFT_X=0
+RL.GAMEPAD_AXIS_LEFT_Y=1
+RL.GAMEPAD_AXIS_RIGHT_X=2
+RL.GAMEPAD_AXIS_RIGHT_Y=3
+RL.GAMEPAD_AXIS_LEFT_TRIGGER=4
+RL.GAMEPAD_AXIS_RIGHT_TRIGGER=5
+
+-- Globals - MapTypes
+
+RL.MATERIAL_MAP_ALBEDO=0
+RL.MATERIAL_MAP_METALNESS=1
+RL.MATERIAL_MAP_NORMAL=2
+RL.MATERIAL_MAP_ROUGHNESS=3
+RL.MATERIAL_MAP_OCCLUSION=4
+RL.MATERIAL_MAP_EMISSION=5
+RL.MATERIAL_MAP_HEIGHT=6
+RL.MATERIAL_MAP_CUBEMAP=7
+RL.MATERIAL_MAP_IRRADIANCE=8
+RL.MATERIAL_MAP_PREFILTER=9
+RL.MATERIAL_MAP_BRDF=10
+RL.MATERIAL_MAP_DIFFUSE=0
+RL.MATERIAL_MAP_SPECULAR=1
+
+-- Globals - ShaderLocationIndex
+
+RL.SHADER_LOC_VERTEX_POSITION=0
+RL.SHADER_LOC_VERTEX_TEXCOORD01=1
+RL.SHADER_LOC_VERTEX_TEXCOORD02=2
+RL.SHADER_LOC_VERTEX_NORMAL=3
+RL.SHADER_LOC_VERTEX_TANGENT=4
+RL.SHADER_LOC_VERTEX_COLOR=5
+RL.SHADER_LOC_MATRIX_MVP=6
+RL.SHADER_LOC_MATRIX_VIEW=7
+RL.SHADER_LOC_MATRIX_PROJECTION=8
+RL.SHADER_LOC_MATRIX_MODEL=9
+RL.SHADER_LOC_MATRIX_NORMAL=10
+RL.SHADER_LOC_VECTOR_VIEW=11
+RL.SHADER_LOC_COLOR_DIFFUSE=12
+RL.SHADER_LOC_COLOR_SPECULAR=13
+RL.SHADER_LOC_COLOR_AMBIENT=14
+RL.SHADER_LOC_MAP_ALBEDO=15
+RL.SHADER_LOC_MAP_METALNESS=16
+RL.SHADER_LOC_MAP_NORMAL=17
+RL.SHADER_LOC_MAP_ROUGHNESS=18
+RL.SHADER_LOC_MAP_OCCLUSION=19
+RL.SHADER_LOC_MAP_EMISSION=20
+RL.SHADER_LOC_MAP_HEIGHT=21
+RL.SHADER_LOC_MAP_CUBEMAP=22
+RL.SHADER_LOC_MAP_IRRADIANCE=23
+RL.SHADER_LOC_MAP_PREFILTER=24
+RL.SHADER_LOC_MAP_BRDF=25
+RL.SHADER_LOC_MAP_DIFFUSE=15
+RL.SHADER_LOC_MAP_SPECULAR=16
+
+-- Globals - ShaderUniformDataType
+
+RL.SHADER_UNIFORM_FLOAT=0
+RL.SHADER_UNIFORM_VEC2=1
+RL.SHADER_UNIFORM_VEC3=2
+RL.SHADER_UNIFORM_VEC4=3
+RL.SHADER_UNIFORM_INT=4
+RL.SHADER_UNIFORM_IVEC2=5
+RL.SHADER_UNIFORM_IVEC3=6
+RL.SHADER_UNIFORM_IVEC4=7
+RL.SHADER_UNIFORM_SAMPLER2D=8
+
+-- Globals - ShaderAttributeDataTypes
+
+RL.SHADER_ATTRIB_FLOAT=0
+RL.SHADER_ATTRIB_VEC2=1
+RL.SHADER_ATTRIB_VEC3=2
+RL.SHADER_ATTRIB_VEC4=3
+
+-- Globals - PixelFormats
+
+RL.PIXELFORMAT_UNCOMPRESSED_GRAYSCALE=1
+RL.PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA=2
+RL.PIXELFORMAT_UNCOMPRESSED_R5G6B5=3
+RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8=4
+RL.PIXELFORMAT_UNCOMPRESSED_R5G5B5A1=5
+RL.PIXELFORMAT_UNCOMPRESSED_R4G4B4A4=6
+RL.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8=7
+RL.PIXELFORMAT_UNCOMPRESSED_R32=8
+RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32=9
+RL.PIXELFORMAT_UNCOMPRESSED_R32G32B32A32=10
+RL.PIXELFORMAT_COMPRESSED_DXT1_RGB=11
+RL.PIXELFORMAT_COMPRESSED_DXT1_RGBA=12
+RL.PIXELFORMAT_COMPRESSED_DXT3_RGBA=13
+RL.PIXELFORMAT_COMPRESSED_DXT5_RGBA=14
+RL.PIXELFORMAT_COMPRESSED_ETC1_RGB=15
+RL.PIXELFORMAT_COMPRESSED_ETC2_RGB=16
+RL.PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA=17
+RL.PIXELFORMAT_COMPRESSED_PVRT_RGB=18
+RL.PIXELFORMAT_COMPRESSED_PVRT_RGBA=19
+RL.PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA=20
+RL.PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA=21
+
+-- Globals - TextureFilters
+
+RL.TEXTURE_FILTER_POINT=0
+RL.TEXTURE_FILTER_BILINEAR=1
+RL.TEXTURE_FILTER_TRILINEAR=2
+RL.TEXTURE_FILTER_ANISOTROPIC_4X=3
+RL.TEXTURE_FILTER_ANISOTROPIC_8X=4
+RL.TEXTURE_FILTER_ANISOTROPIC_16X=5
+
+-- Globals - TextureWrap
+
+RL.TEXTURE_WRAP_REPEAT=0
+RL.TEXTURE_WRAP_CLAMP=1
+RL.TEXTURE_WRAP_MIRROR_REPEAT=2
+RL.TEXTURE_WRAP_MIRROR_CLAMP=3
+
+-- Globals - CubemapLayout
+
+RL.CUBEMAP_LAYOUT_AUTO_DETECT=0
+RL.CUBEMAP_LAYOUT_LINE_VERTICAL=1
+RL.CUBEMAP_LAYOUT_LINE_HORIZONTAL=2
+RL.CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR=3
+RL.CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE=4
+RL.CUBEMAP_LAYOUT_PANORAMA=5
+
+-- Globals - FontType
+
+RL.FONT_DEFAULT=0
+RL.FONT_BITMAP=1
+RL.FONT_SDF=2
+
+-- Globals - BlendModes
+
+RL.BLEND_ALPHA=0
+RL.BLEND_ADDITIVE=1
+RL.BLEND_MULTIPLIED=2
+RL.BLEND_ADD_COLORS=3
+RL.BLEND_SUBTRACT_COLORS=4
+RL.BLEND_ALPHA_PREMULTIPLY=5
+RL.BLEND_CUSTOM=6
+
+-- Globals - Gesture
+
+RL.GESTURE_NONE=0
+RL.GESTURE_TAP=1
+RL.GESTURE_DOUBLETAP=2
+RL.GESTURE_HOLD=4
+RL.GESTURE_DRAG=8
+RL.GESTURE_SWIPE_RIGHT=16
+RL.GESTURE_SWIPE_LEFT=32
+RL.GESTURE_SWIPE_UP=64
+RL.GESTURE_SWIPE_DOWN=128
+RL.GESTURE_PINCH_IN=256
+RL.GESTURE_PINCH_OUT=512
+
+-- Globals - CameraMode
+
+RL.CAMERA_CUSTOM=0
+RL.CAMERA_FREE=1
+RL.CAMERA_ORBITAL=2
+RL.CAMERA_FIRST_PERSON=3
+RL.CAMERA_THIRD_PERSON=4
+
+-- Globals - CameraProjections
+
+RL.CAMERA_PERSPECTIVE=0
+RL.CAMERA_ORTHOGRAPHIC=1
+
+-- Globals - N-patchLayout
+
+RL.NPATCH_NINE_PATCH=0
+RL.NPATCH_THREE_PATCH_VERTICAL=1
+RL.NPATCH_THREE_PATCH_HORIZONTAL=2
+
+-- Globals - TextureModes
+
+RL.TEXTURE_SOURCE_TEXTURE=0
+RL.TEXTURE_SOURCE_RENDER_TEXTURE=1
+
+-- Globals - Colors
+
+RL.LIGHTGRAY={200,200,200,255}
+RL.GRAY={130,130,130,255}
+RL.DARKGRAY={80,80,80,255}
+RL.YELLOW={253,249,0,255}
+RL.GOLD={255,203,0,255}
+RL.ORANGE={255,161,0,255}
+RL.PINK={255,109,194,255}
+RL.RED={230,41,55,255}
+RL.MAROON={190,33,55,255}
+RL.GREEN={0,228,48,255}
+RL.LIME={0,158,47,255}
+RL.DARKGREEN={0,117,44,255}
+RL.SKYBLUE={102,191,255,255}
+RL.BLUE={0,121,241,255}
+RL.DARKBLUE={0,82,172,255}
+RL.PURPLE={200,122,255,255}
+RL.VIOLET={135,60,190,255}
+RL.DARKPURPLE={112,31,126,255}
+RL.BEIGE={211,176,131,255}
+RL.BROWN={127,106,79,255}
+RL.DARKBROWN={76,63,47,255}
+RL.WHITE={255,255,255,255}
+RL.BLACK={0,0,0,255}
+RL.BLANK={0,0,0,0}
+RL.MAGENTA={255,0,255,255}
+RL.RAYWHITE={245,245,245,255}
+
+-- Globals - Math
+
+RL.PI=3.1415927410126
+RL.DEG2RAD=0.017453292384744
+RL.RAD2DEG=57.295776367188
+
+-- Globals - GuiControlState
+
+RL.STATE_NORMAL=0
+RL.STATE_FOCUSED=1
+RL.STATE_PRESSED=2
+RL.STATE_DISABLED=3
+
+-- Globals - GuiTextAlignment
+
+RL.TEXT_ALIGN_LEFT=0
+RL.TEXT_ALIGN_CENTER=1
+RL.TEXT_ALIGN_RIGHT=2
+
+-- Globals - GuiControl
+
+RL.DEFAULT=0
+RL.LABEL=1
+RL.BUTTON=2
+RL.TOGGLE=3
+RL.SLIDER=4
+RL.PROGRESSBAR=5
+RL.CHECKBOX=6
+RL.COMBOBOX=7
+RL.DROPDOWNBOX=8
+RL.TEXTBOX=9
+RL.VALUEBOX=10
+RL.SPINNER=11
+RL.LISTVIEW=12
+RL.COLORPICKER=13
+RL.SCROLLBAR=14
+RL.STATUSBAR=15
+
+-- Globals - GuiControlProperty
+
+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
+RL.RESERVED=15
+
+-- Globals - GuiDefaultProperty
+
+RL.TEXT_SIZE=16
+RL.TEXT_SPACING=17
+RL.LINE_COLOR=18
+RL.BACKGROUND_COLOR=19
+
+-- Globals - GuiToggleProperty
+
+RL.GROUP_PADDING=16
+
+-- Globals - GuiSliderProperty
+
+RL.SLIDER_WIDTH=16
+RL.SLIDER_PADDING=17
+
+-- Globals - GuiProgressBarProperty
+
+RL.PROGRESS_PADDING=16
+
+-- Globals - GuiScrollBarProperty
+
+RL.ARROWS_SIZE=16
+RL.ARROWS_VISIBLE=17
+RL.SCROLL_SLIDER_PADDING=18
+RL.SCROLL_SLIDER_SIZE=19
+RL.SCROLL_PADDING=20
+RL.SCROLL_SPEED=21
+
+-- Globals - GuiCheckBoxProperty
+
+RL.CHECK_PADDING=16
+
+-- Globals - GuiComboBoxProperty
+
+RL.COMBO_BUTTON_WIDTH=16
+RL.COMBO_BUTTON_SPACING=17
+
+-- Globals - GuiDropdownBoxProperty
+
+RL.ARROW_PADDING=16
+RL.DROPDOWN_ITEMS_SPACING=17
+
+-- Globals - GuiTextBoxProperty
+
+RL.TEXT_INNER_PADDING=16
+RL.TEXT_LINES_SPACING=17
+
+-- Globals - GuiSpinnerProperty
+
+RL.SPIN_BUTTON_WIDTH=16
+RL.SPIN_BUTTON_SPACING=17
+
+-- Globals - GuiListViewProperty
+
+RL.LIST_ITEMS_HEIGHT=16
+RL.LIST_ITEMS_SPACING=17
+RL.SCROLLBAR_WIDTH=18
+RL.SCROLLBAR_SIDE=19
+
+-- Globals - GuiColorPickerProperty
+
+RL.COLOR_SELECTOR_SIZE=16
+RL.HUEBAR_WIDTH=17
+RL.HUEBAR_PADDING=18
+RL.HUEBAR_SELECTOR_HEIGHT=19
+RL.HUEBAR_SELECTOR_OVERFLOW=20
+
+-- Globals - LightType
+
+RL.LIGHT_DIRECTIONAL=0
+RL.LIGHT_POINT=1
+-- Core - Window
+
+---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
+
+---Set monitor for the current window (fullscreen mode)
+---- Failure return false
+---- Success return true
+---@param monitor integer
+---@return any success
+function RL.SetWindowMonitor( monitor ) end
+
+---Set window position on screen
+---- Failure return false
+---- Success return true
+---@param pos table
+---@return any success
+function RL.SetWindowPosition( pos ) end
+
+---Set window dimensions
+---- Failure return false
+---- Success return true
+---@param size table
+---@return any success
+function RL.SetWindowSize( size ) end
+
+---Set window minimum dimensions ( for FLAG_WINDOW_RESIZABLE )
+---- Failure return false
+---- Success return true
+---@param size table
+---@return any success
+function RL.SetWindowMinSize( size ) end
+
+---Get specified monitor position
+---- Failure return nil
+---- Success return Vector2
+---@param monitor integer
+---@return any position
+function RL.GetMonitorPosition( monitor ) end
+
+---Get specified monitor size
+---- Failure return nil
+---- Success return Vector2
+---@param monitor integer
+---@return any size
+function RL.GetMonitorSize( monitor ) end
+
+---Get window position on monitor
+---- Success return Vector2
+---@return any position
+function RL.GetWindowPosition() end
+
+---Get screen size
+---- Success return Vector2
+---@return any size
+function RL.GetScreenSize() end
+
+---Set window configuration state using flags ( FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE... )
+---- Failure return false
+---- Success return true
+---@param flag integer
+---@return any success
+function RL.SetWindowState( flag ) end
+
+---Check if one specific window flag is enabled ( FLAG_FULLSCREEN_MODE, FLAG_WINDOW_RESIZABLE... )
+---- Failure return nil
+---- Success return bool
+---@param flag integer
+---@return any state
+function RL.IsWindowState( 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
+
+---Check if window has been resized from last frame
+---- Success return bool
+---@return any resized
+function RL.IsWindowResized() end
+
+---Set icon for window ( Only PLATFORM_DESKTOP )
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.SetWindowIcon( image ) end
+
+---Set title for window ( Only PLATFORM_DESKTOP )
+---- Failure return false
+---- Success return true
+---@param title string
+---@return any success
+function RL.SetWindowTitle( title ) 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 physical size in millimetres
+---- Failure return false
+---- Success return Vector2
+---@param monitor integer
+---@return any size
+function RL.GetMonitorPhysicalSize( monitor ) end
+
+---Get specified monitor refresh rate
+---- Failure return false
+---- Success return int
+---@param monitor integer
+---@return any size
+function RL.GetMonitorRefreshRate( monitor ) end
+
+---Get window scale DPI factor
+---- Success return Vector2
+---@return any scale
+function RL.GetWindowScaleDPI() end
+
+---Get the human-readable, UTF-8 encoded name of the monitor
+---- Failure return false
+---- Success return string
+---@param monitor integer
+---@return any name
+function RL.GetMonitorName( monitor ) end
+
+---Close window and unload OpenGL context and free all resources
+---@return any RL.CloseWindow
+function RL.CloseWindow() end
+
+---Set clipboard text content
+---- Failure return false
+---- Success return true
+---@param text string
+---@return any success
+function RL.SetClipboardText( text ) end
+
+---Get clipboard text content
+---- Success return string
+---@return any text
+function RL.GetClipboardText() end
+
+-- Core - Timing
+
+---Set target FPS ( maximum )
+---- Failure return false
+---- Success return true
+---@param fps integer
+---@return any success
+function RL.SetTargetFPS( fps ) end
+
+---Get current FPS
+---- Success return int
+---@return any FPS
+function RL.GetFPS() 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
+
+-- Core - Misc
+
+---Takes a screenshot of current screen ( filename extension defines format )
+---- Failure return false
+---- Success return true
+---@param fileName string
+---@return any success
+function RL.TakeScreenshot( fileName ) end
+
+---Setup init configuration flags ( view FLAGS )
+---- Failure return false
+---- Success return true
+---@param flags integer
+---@return any success
+function RL.SetConfigFlags( flags ) end
+
+---Show trace log messages ( LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR... )
+---- Failure return false
+---- Success return true
+---@param logLevel integer
+---@param text string
+---@return any success
+function RL.TraceLog( logLevel, text ) end
+
+---Set the current threshold ( minimum ) log level
+---- Failure return false
+---- Success return true
+---@param logLevel integer
+---@return any success
+function RL.SetTraceLogLevel( logLevel ) end
+
+---Open URL with default system browser ( If available )
+---- Failure return false
+---- Success return true
+---@param url string
+---@return any success
+function RL.OpenURL( url ) end
+
+-- Core - Cursor
+
+---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
+
+---Set background color ( framebuffer clear color )
+---- Failure return false
+---- Success return true
+---@param color table
+---@return any success
+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 blending mode ( BLEND_ALPHA, BLEND_ADDITIVE, BLEND_MULTIPLIED... )
+---- Failure return false
+---- Success return true
+---@param mode integer
+---@return any success
+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 )
+---- Failure return false
+---- Success return true
+---@param rectange table
+---@return any success
+function RL.BeginScissorMode( rectange ) end
+
+---End scissor mode
+---@return any RL.EndScissorMode
+function RL.EndScissorMode() end
+
+-- Core - Shader
+
+---Load shader from files and bind default locations.
+---NOTE: Set nil if no shader
+---- Failure return -1
+---- Success return int
+---@param vsFileName string
+---@param fsFileName string
+---@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 -1
+---- Success return int
+---@param vsCode string
+---@param fsCode string
+---@return any shader
+function RL.LoadShaderFromMemory( vsCode, fsCode ) end
+
+---Begin custom shader drawing
+---- Failure return false
+---- Success return true
+---@param shader any
+---@return any success
+function RL.BeginShaderMode( shader ) end
+
+---End custom shader drawing ( use default shader )
+---@return any RL.EndShaderMode
+function RL.EndShaderMode() end
+
+---Get shader uniform location
+---- Failure return -1
+---- Success return int
+---@param shader any
+---@param uniformName string
+---@return any location
+function RL.GetShaderLocation( shader, uniformName ) end
+
+---Get shader attribute location
+---- Failure return -1
+---- Success return int
+---@param shader any
+---@param attribName string
+---@return any location
+function RL.GetShaderLocationAttrib( shader, attribName ) end
+
+---Set shader location index
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param shaderLocationIndex integer
+---@param location integer
+---@return any success
+function RL.SetShaderLocationIndex( shader, shaderLocationIndex, location ) end
+
+---Get shader location index
+---- Failure return false
+---- Success return int
+---@param shader any
+---@param shaderLocationIndex integer
+---@return any location
+function RL.GetShaderLocationIndex( shader, shaderLocationIndex ) end
+
+---Set shader uniform value ( matrix 4x4 )
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param locIndex integer
+---@param mat table
+---@return any success
+function RL.SetShaderValueMatrix( shader, locIndex, mat ) end
+
+---Set shader uniform value for texture ( sampler2d )
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param locIndex integer
+---@param texture any
+---@return any success
+function RL.SetShaderValueTexture( shader, locIndex, texture ) end
+
+---Set shader uniform value
+---NOTE: Even one value should be in table
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param locIndex integer
+---@param values any
+---@param uniformType integer
+---@return any success
+function RL.SetShaderValue( shader, locIndex, values, uniformType ) end
+
+---Set shader uniform value vector
+---NOTE: Even one value should be in table
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param locIndex integer
+---@param values any
+---@param uniformType integer
+---@param count integer
+---@return any success
+function RL.SetShaderValueV( shader, locIndex, values, uniformType, count ) end
+
+---Unload shader from GPU memory ( VRAM )
+---- Failure return false
+---- Success return true
+---@param shader any
+---@return any success
+function RL.UnloadShader( shader ) end
+
+-- Core - Input-related Keyboard
+
+---Detect if a key has been pressed once
+---- Failure return nil
+---- Success return bool
+---@param key integer
+---@return any pressed
+function RL.IsKeyPressed( key ) end
+
+---Detect if a key is being pressed
+---- Failure return nil
+---- Success return bool
+---@param key integer
+---@return any pressed
+function RL.IsKeyDown( key ) end
+
+---Detect if a key has been released once
+---- Failure return nil
+---- Success return bool
+---@param key integer
+---@return any released
+function RL.IsKeyReleased( key ) end
+
+---Check if a key is NOT being pressed
+---- Failure return nil
+---- 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
+
+---This function returns the name of the specified printable key, encoded as UTF-8.
+---This is typically the character that key would produce without any modifier keys,
+---intended for displaying key bindings to the user. For dead keys, it is typically
+---the diacritic it would add to a character.
+---Do not use this function for text input. You will break text input for many
+---languages even if it happens to work for yours.
+---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.
+---- Failure return -1
+---- 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.
+---- Failure return nil
+---- Success return int
+---@param key integer
+---@return any scancode
+function RL.GetKeyScancode( key ) end
+
+-- Core - Input-related Gamepad
+
+---Detect if a gamepad is available
+---- Failure return nil
+---- Success return bool
+---@param gamepad integer
+---@return any available
+function RL.IsGamepadAvailable( gamepad ) end
+
+---Detect if a gamepad button has been pressed once
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- Success return bool
+---@param gamepad integer
+---@param button integer
+---@return any released
+function RL.IsGamepadButtonReleased( gamepad, button ) end
+
+---Return gamepad axis count for a gamepad
+---- Failure return false
+---- Success return int
+---@param gamepad integer
+---@return any count
+function RL.GetGamepadAxisCount( gamepad ) end
+
+---Return axis movement value for a gamepad axis
+---- Failure return false
+---- Success return float
+---@param gamepad integer
+---@param axis integer
+---@return any value
+function RL.GetGamepadAxisMovement( gamepad, axis ) end
+
+---Return gamepad internal name id
+---- Failure return false
+---- Success return string
+---@param gamepad integer
+---@return any name
+function RL.GetGamepadName( gamepad ) end
+
+-- Core - Input-related Mouse
+
+---Detect if a mouse button has been pressed once
+---- Failure return nil
+---- Success return bool
+---@param button integer
+---@return any pressed
+function RL.IsMouseButtonPressed( button ) end
+
+---Detect if a mouse button is being pressed
+---- Failure return nil
+---- Success return bool
+---@param button integer
+---@return any pressed
+function RL.IsMouseButtonDown( button ) end
+
+---Detect if a mouse button has been released once
+---- Failure return nil
+---- Success return bool
+---@param button integer
+---@return any released
+function RL.IsMouseButtonReleased( button ) end
+
+---Check if a mouse button is NOT being pressed
+---- Failure return nil
+---- 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
+---- Failure return false
+---- Success return true
+---@param position table
+---@return any success
+function RL.SetMousePosition( position ) end
+
+---Set mouse offset
+---- Failure return false
+---- Success return true
+---@param offset table
+---@return any success
+function RL.SetMouseOffset( offset ) end
+
+---Set mouse scaling
+---- Failure return false
+---- Success return true
+---@param scale table
+---@return any success
+function RL.SetMouseScale( scale ) end
+
+---Returns mouse wheel movement Y
+---- Success return float
+---@return any movement
+function RL.GetMouseWheelMove() end
+
+---Set mouse cursor
+---- Failure return false
+---- Success return true
+---@param cursor integer
+---@return any success
+function RL.SetMouseCursor( cursor ) end
+
+-- Core - Input-related Touch
+
+---Get touch position XY for a touch point index ( relative to screen size )
+---- Failure return false
+---- Success return Vector2
+---@param index integer
+---@return any position
+function RL.GetTouchPosition( index ) end
+
+---Get touch point identifier for given index
+---- Failure return false
+---- 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 Gestures
+
+---Enable a set of gestures using flags
+---- Failure return false
+---- Success return true
+---@param int any
+---@return any success
+function RL.SetGesturesEnabled( int ) end
+
+---Check if a gesture have been detected
+---- Failure return nil
+---- 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 - File
+
+---Return game directory ( where main.lua is located )
+---- Success return string
+---@return any path
+function RL.GetBasePath() end
+
+---Check if file exists
+---- Failure return nil
+---- Success return bool
+---@param fileName string
+---@return any fileExists
+function RL.FileExists( fileName ) end
+
+---Check if a directory path exists
+---- Failure return nil
+---- Success return bool
+---@param dirPath string
+---@return any dirExists
+function RL.DirectoryExists( dirPath ) end
+
+---Check file extension ( Including point: .png, .wav )
+---- Failure return nil
+---- 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 )
+---- Failure return false
+---- 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' )
+---- Failure return false
+---- Success return string
+---@param fileName string
+---@return any extension
+function RL.GetFileExtension( fileName ) end
+
+---Get pointer to filename for a path string
+---- Failure return false
+---- Success return string
+---@param filePath string
+---@return any filePath
+function RL.GetFileName( filePath ) end
+
+---Get filename string without extension ( Uses static string )
+---- Failure return false
+---- Success return string
+---@param filePath string
+---@return any filePath
+function RL.GetFileNameWithoutExt( filePath ) end
+
+---Get full path for a given fileName with path ( Uses static string )
+---- Failure return false
+---- 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 )
+---- Failure return false
+---- 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
+
+---Load directory filepaths
+---- Failure return false
+---- Success return string{}
+---@param dirPath string
+---@return any fileNames
+function RL.LoadDirectoryFiles( dirPath ) end
+
+---Load directory filepaths with extension filtering and recursive directory scan
+---- Failure return false
+---- Success return string{}
+---@param basePath string
+---@param filter string
+---@param scanSubdirs boolean
+---@return any fileNames
+function RL.LoadDirectoryFilesEx( basePath, filter, scanSubdirs ) end
+
+---Change working directory, return true on success
+---- Failure return false
+---- Success return true
+---@param directory string
+---@return any success
+function RL.ChangeDirectory( directory ) end
+
+---Check if a given path is a file or a directory
+---- Failure return nil
+---- Success return bool
+---@param path string
+---@return any isFile
+function RL.IsPathFile( path ) end
+
+---Check if a file has been dropped into window
+---- Success return bool
+---@return any fileDropped
+function RL.IsFileDropped() end
+
+---Load dropped filepaths
+---- Success return string{}
+---@return any files
+function RL.LoadDroppedFiles() end
+
+---Get file modification time ( Last write time )
+---- Failure return false
+---- Success return int
+---@param fileName string
+---@return any time
+function RL.GetFileModTime( fileName ) end
+
+-- Core - Camera2D
+
+---Return camera2D id set to default configuration
+---- Success return int
+---@return any camera2D
+function RL.CreateCamera2D() end
+
+---Unload Camera2D
+---- Failure return false
+---- Success return true
+---@param Camera2D integer
+---@return any success
+function RL.UnloadCamera2D( Camera2D ) end
+
+---Begin 2D mode with custom camera ( 2D )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@return any success
+function RL.BeginMode2D( camera ) end
+
+---Ends 2D mode with custom camera
+---@return any RL.EndMode2D
+function RL.EndMode2D() end
+
+---Set camera target ( rotation and zoom origin )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param target table
+---@return any success
+function RL.SetCamera2DTarget( camera, target ) end
+
+---Set camera offset ( displacement from target )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param offset table
+---@return any success
+function RL.SetCamera2DOffset( camera, offset ) end
+
+---Set camera rotation in degrees
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param rotation number
+---@return any success
+function RL.SetCamera2DRotation( camera, rotation ) end
+
+---Set camera zoom ( scaling ), should be 1.0f by default
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param zoom number
+---@return any success
+function RL.SetCamera2DZoom( camera, zoom ) end
+
+---Get camera2D target
+---- Failure return nil
+---- Success return Vector2
+---@param camera any
+---@return any target
+function RL.GetCamera2DTarget( camera ) end
+
+---Get camera2D offset
+---- Failure return nil
+---- Success return Vector2
+---@param camera any
+---@return any offset
+function RL.GetCamera2DOffset( camera ) end
+
+---Get camera2D rotation
+---- Failure return nil
+---- Success return float
+---@param camera any
+---@return any rotation
+function RL.GetCamera2DRotation( camera ) end
+
+---Get camera2D zoom
+---- Failure return nil
+---- Success return float
+---@param camera any
+---@return any zoom
+function RL.GetCamera2DZoom( camera ) end
+
+-- Core - Camera3D
+
+---Return camera3D id set to default configuration
+---- Success return int
+---@return any camera
+function RL.CreateCamera3D() end
+
+---Unload Camera3D
+---- Failure return false
+---- Success return true
+---@param Camera3D integer
+---@return any success
+function RL.UnloadCamera3D( Camera3D ) end
+
+---Begin 3D mode with custom camera ( 3D )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@return any success
+function RL.BeginMode3D( camera ) end
+
+---Ends 3D mode and returns to default 2D orthographic mode
+---@return any RL.EndMode3D
+function RL.EndMode3D() end
+
+---Set camera position ( Remember to call "RL.UpdateCamera3D()" to apply changes )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param position table
+---@return any success
+function RL.SetCamera3DPosition( camera, position ) end
+
+---Set camera target it looks-at
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param target table
+---@return any success
+function RL.SetCamera3DTarget( camera, target ) end
+
+---Set camera up vector ( Rotation over it's axis )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param up table
+---@return any success
+function RL.SetCamera3DUp( camera, up ) end
+
+---Set camera field-of-view apperture in Y ( degrees ) in perspective, used as near plane width in orthographic
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param fovy number
+---@return any success
+function RL.SetCamera3DFovy( camera, fovy ) end
+
+---Set camera projection mode ( CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param projection integer
+---@return any success
+function RL.SetCamera3DProjection( camera, projection ) end
+
+---Set camera mode ( CAMERA_CUSTOM, CAMERA_FREE, CAMERA_ORBITAL... )
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param mode integer
+---@return any success
+function RL.SetCameraMode( camera, mode ) end
+
+---Get camera position
+---- Failure return nil
+---- Success return Vector3
+---@param camera any
+---@return any position
+function RL.GetCamera3DPosition( camera ) end
+
+---Get camera target it looks-at
+---- Failure return nil
+---- Success return Vector3
+---@param camera any
+---@return any target
+function RL.GetCamera3DTarget( camera ) end
+
+---Get camera up vector ( Rotation over it's axis )
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- Success return float
+---@param camera any
+---@return any fovy
+function RL.GetCamera3DFovy( camera ) end
+
+---Get camera projection mode
+---- Failure return nil
+---- Success return int
+---@param camera any
+---@return any projection
+function RL.GetCamera3DProjection( camera ) end
+
+---Update camera position for selected mode
+---- Failure return false
+---- Success return true
+---@param camera any
+---@return any success
+function RL.UpdateCamera3D( camera ) end
+
+---Set camera pan key to combine with mouse movement ( free camera )
+---- Failure return false
+---- Success return true
+---@param keyPan integer
+---@return any success
+function RL.SetCameraPanControl( keyPan ) end
+
+---Set camera alt key to combine with mouse movement ( free camera )
+---- Failure return false
+---- Success return true
+---@param keyAlt integer
+---@return any success
+function RL.SetCameraAltControl( keyAlt ) end
+
+---Set camera smooth zoom key to combine with mouse ( free camera )
+---- Failure return false
+---- Success return true
+---@param keySmoothZoom integer
+---@return any success
+function RL.SetCameraSmoothZoomControl( keySmoothZoom ) end
+
+---Set camera move controls ( 1st person and 3rd person cameras )
+---- Failure return false
+---- Success return true
+---@param keyFront integer
+---@param keyBack integer
+---@param keyRight integer
+---@param keyLeft integer
+---@param keyUp integer
+---@param keyDown integer
+---@return any success
+function RL.SetCameraMoveControls( keyFront, keyBack, keyRight, keyLeft, keyUp, keyDown ) end
+
+-- Core - Screen-space
+
+---Get a ray trace from mouse position
+---- Failure return false
+---- Success return Ray
+---@param mousePosition table
+---@param camera any
+---@return any ray
+function RL.GetMouseRay( mousePosition, camera ) end
+
+---Get camera transform matrix ( view matrix )
+---- Failure return false
+---- Success return Matrix
+---@param camera any
+---@return any matrix
+function RL.GetCameraMatrix( camera ) end
+
+---Get camera 2d transform matrix
+---- Failure return false
+---- Success return Matrix
+---@param camera any
+---@return any matrix
+function RL.GetCameraMatrix2D( camera ) end
+
+---Get the screen space position for a 3d world space position
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Vector2
+---@param position table
+---@param camera any
+---@return any position
+function RL.GetScreenToWorld2D( position, camera ) end
+
+-- Shapes - Drawing
+
+---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
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param source table
+---@return any success
+function RL.SetShapesTexture( texture, source ) end
+
+---Draw a pixel
+---- Failure return false
+---- Success return true
+---@param pos table
+---@param color table
+---@return any success
+function RL.DrawPixel( pos, color ) end
+
+---Draw a line defining thickness
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param thickness number
+---@param color table
+---@return any success
+function RL.DrawLine( startPos, endPos, thickness, color ) end
+
+---Draw a line using cubic-bezier curves in-out
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param thickness number
+---@param color table
+---@return any success
+function RL.DrawLineBezier( startPos, endPos, thickness, color ) end
+
+---Draw line using quadratic bezier curves with a control point
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param controlPos table
+---@param thickness number
+---@param color table
+---@return any success
+function RL.DrawLineBezierQuad( startPos, endPos, controlPos, thickness, color ) end
+
+---Draw line using quadratic bezier curves with a control point
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param startControlPos table
+---@param endControlPos table
+---@param thickness number
+---@param color table
+---@return any success
+function RL.DrawLineBezierCubic( startPos, endPos, startControlPos, endControlPos, thickness, color ) end
+
+---Draw lines sequence
+---- Failure return false
+---- Success return true
+---@param points any
+---@param pointsCount integer
+---@param color table
+---@return any success
+function RL.DrawLineStrip( points, pointsCount, color ) end
+
+---Draw a color-filled circle
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param color table
+---@return any success
+function RL.DrawCircle( center, radius, color ) end
+
+---Draw a piece of a circle
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any success
+function RL.DrawCircleSector( center, radius, startAngle, endAngle, segments, color ) end
+
+---Draw circle sector outline
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any success
+function RL.DrawCircleSectorLines( center, radius, startAngle, endAngle, segments, color ) end
+
+---Draw a gradient-filled circle
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param color1 table
+---@param color2 table
+---@return any success
+function RL.DrawCircleGradient( center, radius, color1, color2 ) end
+
+---Draw circle outline
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param color table
+---@return any success
+function RL.DrawCircleLines( center, radius, color ) end
+
+---Draw ellipse
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radiusH number
+---@param radiusV number
+---@param color table
+---@return any success
+function RL.DrawEllipse( center, radiusH, radiusV, color ) end
+
+---Draw ellipse outline
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radiusH number
+---@param radiusV number
+---@param color table
+---@return any success
+function RL.DrawEllipseLines( center, radiusH, radiusV, color ) end
+
+---Draw ring
+---- Failure return false
+---- Success return true
+---@param center table
+---@param innerRadius number
+---@param outerRadius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any success
+function RL.DrawRing( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end
+
+---Draw ring outline
+---- Failure return false
+---- Success return true
+---@param center table
+---@param innerRadius number
+---@param outerRadius number
+---@param startAngle number
+---@param endAngle number
+---@param segments integer
+---@param color table
+---@return any success
+function RL.DrawRingLines( center, innerRadius, outerRadius, startAngle, endAngle, segments, color ) end
+
+---Draw a color-filled rectangle
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param color table
+---@return any success
+function RL.DrawRectangle( rec, color ) end
+
+---Draw a color-filled rectangle with pro parameters
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param origin table
+---@param rotation number
+---@param color table
+---@return any success
+function RL.DrawRectanglePro( rec, origin, rotation, color ) end
+
+---Draw a vertical-gradient-filled rectangle
+---- Failure return false
+---- Success return true
+---@param rectangle table
+---@param color1 table
+---@param color2 table
+---@return any success
+function RL.DrawRectangleGradientV( rectangle, color1, color2 ) end
+
+---Draw a horizontal-gradient-filled rectangle
+---- Failure return false
+---- Success return true
+---@param rectangle table
+---@param color1 table
+---@param color2 table
+---@return any success
+function RL.DrawRectangleGradientH( rectangle, color1, color2 ) end
+
+---Draw a gradient-filled rectangle with custom vertex colors
+---- Failure return false
+---- Success return true
+---@param rectangle table
+---@param col1 table
+---@param col2 table
+---@param col3 table
+---@param col4 table
+---@return any success
+function RL.DrawRectangleGradientEx( rectangle, col1, col2, col3, col4 ) end
+
+---Draw rectangle outline
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param color table
+---@return any success
+function RL.DrawRectangleLines( rec, color ) end
+
+---Draw rectangle outline with extended parameters
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param lineThick integer
+---@param color table
+---@return any success
+function RL.DrawRectangleLinesEx( rec, lineThick, color ) end
+
+---Draw rectangle with rounded edges
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param roundness number
+---@param segments integer
+---@param color table
+---@return any success
+function RL.DrawRectangleRounded( rec, roundness, segments, color ) end
+
+---Draw rectangle with rounded edges outline
+---- Failure return false
+---- Success return true
+---@param rec table
+---@param roundness number
+---@param segments integer
+---@param lineThick integer
+---@param color table
+---@return any success
+function RL.DrawRectangleRoundedLines( rec, roundness, segments, lineThick, color ) end
+
+---Draw a color-filled triangle ( Vertex in counter-clockwise order! )
+---- Failure return false
+---- Success return true
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any success
+function RL.DrawTriangle( v1, v2, v3, color ) end
+
+---Draw triangle outline ( Vertex in counter-clockwise order! )
+---- Failure return false
+---- Success return true
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any success
+function RL.DrawTriangleLines( v1, v2, v3, color ) end
+
+---Draw a triangle fan defined by points ( first vertex is the center )
+---- Failure return false
+---- Success return true
+---@param points any
+---@param pointsCount integer
+---@param color table
+---@return any success
+function RL.DrawTriangleFan( points, pointsCount, color ) end
+
+---Draw a triangle strip defined by points
+---- Failure return false
+---- Success return true
+---@param points any
+---@param pointsCount integer
+---@param color table
+---@return any success
+function RL.DrawTriangleStrip( points, pointsCount, color ) end
+
+---Draw a regular polygon ( Vector version )
+---- Failure return false
+---- Success return true
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param color table
+---@return any success
+function RL.DrawPoly( center, sides, radius, rotation, color ) end
+
+---Draw a polygon outline of n sides
+---- Failure return false
+---- Success return true
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param color table
+---@return any success
+function RL.DrawPolyLines( center, sides, radius, rotation, color ) end
+
+---Draw a polygon outline of n sides with extended parameters
+---- Failure return false
+---- Success return true
+---@param center table
+---@param sides integer
+---@param radius number
+---@param rotation number
+---@param lineThick number
+---@param color table
+---@return any success
+function RL.DrawPolyLinesEx( center, sides, radius, rotation, lineThick, color ) end
+
+-- Shapes - Collision
+
+---Check collision between two rectangles
+---- Failure return nil
+---- Success return bool
+---@param rec1 table
+---@param rec2 table
+---@return any collision
+function RL.CheckCollisionRecs( rec1, rec2 ) end
+
+---Check collision between two circles
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- Success return bool
+---@param center table
+---@param radius number
+---@param rec table
+---@return any collision
+function RL.CheckCollisionCircleRec( center, radius, rec ) end
+
+---Check if point is inside rectangle
+---- Failure return nil
+---- Success return bool
+---@param point table
+---@param rec table
+---@return any collision
+function RL.CheckCollisionPointRec( point, rec ) end
+
+---Check if point is inside circle
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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 the collision between two lines defined by two points each, returns collision point by reference
+---- Failure return nil
+---- 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]
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- Success return Rectangle
+---@param rec1 table
+---@param rec2 table
+---@return any rectangle
+function RL.GetCollisionRec( rec1, rec2 ) end
+
+-- Textures - Image Loading
+
+---Load image from file into CPU memory ( RAM )
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any image
+function RL.LoadImage( fileName ) end
+
+---Load image from GPU texture data
+---- Failure return -1
+---- Success return int
+---@param texture any
+---@return any image
+function RL.LoadImageFromTexture( texture ) end
+
+---Load image from screen buffer and ( screenshot )
+---- Success return int
+---@return any image
+function RL.LoadImageFromScreen() end
+
+---Unload image from CPU memory ( RAM )
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.UnloadImage( image ) end
+
+---Export image data to file, returns true on success
+---- Failure return nil
+---- Success return bool
+---@param image any
+---@param fileName string
+---@return any success
+function RL.ExportImage( image, fileName ) end
+
+---Export image as code file defining an array of bytes, returns true on success
+---- Failure return nil
+---- Success return bool
+---@param image any
+---@param fileName string
+---@return any success
+function RL.ExportImageAsCode( image, fileName ) end
+
+-- Textures - Image Generation
+
+---Generate image: plain color
+---- Failure return -1
+---- Success return int
+---@param width integer
+---@param height integer
+---@param color table
+---@return any image
+function RL.GenImageColor( width, height, color ) end
+
+---Generate image: vertical gradient
+---- Failure return -1
+---- Success return int
+---@param size table
+---@param top table
+---@param bottom table
+---@return any image
+function RL.GenImageGradientV( size, top, bottom ) end
+
+---Generate image: horizontal gradient
+---- Failure return -1
+---- Success return int
+---@param size table
+---@param left table
+---@param right table
+---@return any image
+function RL.GenImageGradientH( size, left, right ) end
+
+---Generate image: radial gradient
+---- Failure return -1
+---- Success return int
+---@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: checked
+---- Failure return -1
+---- Success return int
+---@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
+---- Failure return -1
+---- Success return int
+---@param size table
+---@param factor number
+---@return any image
+function RL.GenImageWhiteNoise( size, factor ) end
+
+---Generate image: cellular algorithm. Bigger tileSize means bigger cells
+---- Failure return -1
+---- Success return int
+---@param size table
+---@param tileSize integer
+---@return any image
+function RL.GenImageCellular( size, tileSize ) end
+
+-- Textures - Image Manipulation Functions
+
+---Create an image duplicate ( useful for transformations )
+---- Failure return -1
+---- Success return int
+---@param image any
+---@return any image
+function RL.ImageCopy( image ) end
+
+---Create an image from another image piece
+---- Failure return -1
+---- Success return int
+---@param image any
+---@param rec table
+---@return any image
+function RL.ImageFromImage( image, rec ) end
+
+---Create an image from text ( custom sprite font )
+---- Failure return -1
+---- Success return int
+---@param font any
+---@param text string
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any image
+function RL.ImageText( font, text, fontSize, spacing, tint ) end
+
+---Convert image data to desired format
+---- Failure return false
+---- Success return true
+---@param image any
+---@param newFormat integer
+---@return any success
+function RL.ImageFormat( image, newFormat ) end
+
+---Convert image to POT ( power-of-two )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param fill table
+---@return any success
+function RL.ImageToPOT( image, fill ) end
+
+---Crop an image to a defined rectangle
+---- Failure return false
+---- Success return true
+---@param image any
+---@param crop table
+---@return any success
+function RL.ImageCrop( image, crop ) end
+
+---Crop image depending on alpha value
+---- Failure return false
+---- Success return true
+---@param image any
+---@param threshold number
+---@return any success
+function RL.ImageAlphaCrop( image, threshold ) end
+
+---Clear alpha channel to desired color
+---- Failure return false
+---- Success return true
+---@param image any
+---@param color table
+---@param threshold number
+---@return any success
+function RL.ImageAlphaClear( image, color, threshold ) end
+
+---Apply alpha mask to image
+---- Failure return false
+---- Success return true
+---@param image any
+---@param alphaMask any
+---@return any success
+function RL.ImageAlphaMask( image, alphaMask ) end
+
+---Premultiply alpha channel
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageAlphaPremultiply( image ) end
+
+---Resize image ( Bicubic scaling algorithm )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param size table
+---@return any success
+function RL.ImageResize( image, size ) end
+
+---Resize image ( Nearest-Neighbor scaling algorithm )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param size table
+---@return any success
+function RL.ImageResizeNN( image, size ) end
+
+---Resize canvas and fill with color
+---- Failure return false
+---- Success return true
+---@param image any
+---@param size table
+---@param offset table
+---@param fill table
+---@return any success
+function RL.ImageResizeCanvas( image, size, offset, fill ) end
+
+---Generate all mipmap levels for a provided image
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageMipmaps( image ) end
+
+---Dither image data to 16bpp or lower ( Floyd-Steinberg dithering )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param bpp table
+---@return any success
+function RL.ImageDither( image, bpp ) end
+
+---Flip image vertically
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageFlipVertical( image ) end
+
+---Flip image horizontally
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageFlipHorizontal( image ) end
+
+---Rotate image clockwise 90deg
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageRotateCW( image ) end
+
+---Rotate image counter-clockwise 90deg
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageRotateCCW( image ) end
+
+---Modify image color: tint
+---- Failure return false
+---- Success return true
+---@param image any
+---@param color table
+---@return any success
+function RL.ImageColorTint( image, color ) end
+
+---Modify image color: invert
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageColorInvert( image ) end
+
+---Modify image color: grayscale
+---- Failure return false
+---- Success return true
+---@param image any
+---@return any success
+function RL.ImageColorGrayscale( image ) end
+
+---Modify image color: contrast ( -100 to 100 )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param contrast number
+---@return any success
+function RL.ImageColorContrast( image, contrast ) end
+
+---Modify image color: brightness ( -255 to 255 )
+---- Failure return false
+---- Success return true
+---@param image any
+---@param brightness integer
+---@return any success
+function RL.ImageColorBrightness( image, brightness ) end
+
+---Modify image color: replace color
+---- Failure return false
+---- Success return true
+---@param image any
+---@param color table
+---@param replace table
+---@return any success
+function RL.ImageColorReplace( image, color, replace ) end
+
+---Load color data from image as a Color array ( RGBA - 32bit )
+---- Failure return false
+---- 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 )
+---- Failure return false
+---- Success return Color{}
+---@param image any
+---@param maxPaletteSize integer
+---@return any colors
+function RL.LoadImagePalette( image, maxPaletteSize ) end
+
+---Get image alpha border rectangle
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Color
+---@param image any
+---@param pixelPos table
+---@return any color
+function RL.GetImageColor( image, pixelPos ) end
+
+-- Textures - Image Drawing
+
+---Clear image background with given color
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param color table
+---@return any success
+function RL.ImageClearBackground( dst, color ) end
+
+---Draw pixel within an image
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param position table
+---@param color table
+---@return any success
+function RL.ImageDrawPixel( dst, position, color ) end
+
+---Draw line within an image
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param start table
+---@param end table
+---@param color table
+---@return any success
+function RL.ImageDrawLine( dst, start, end, color ) end
+
+---Draw circle within an image
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param center table
+---@param radius integer
+---@param color table
+---@return any success
+function RL.ImageDrawCircle( dst, center, radius, color ) end
+
+---Draw rectangle within an image
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param rec table
+---@param color table
+---@return any success
+function RL.ImageDrawRectangle( dst, rec, color ) end
+
+---Draw rectangle lines within an image
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param rec table
+---@param thick integer
+---@param color table
+---@return any success
+function RL.ImageDrawRectangleLines( dst, rec, thick, color ) end
+
+---Draw a source image within a destination image ( Tint applied to source )
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param src any
+---@param srcRec table
+---@param dstRec table
+---@param tint table
+---@return any success
+function RL.ImageDraw( dst, src, srcRec, dstRec, tint ) end
+
+---Draw text ( Custom sprite font ) within an image ( Destination )
+---- Failure return false
+---- Success return true
+---@param dst any
+---@param font any
+---@param text string
+---@param position table
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any success
+function RL.ImageDrawTextEx( dst, font, text, position, fontSize, spacing, tint ) end
+
+-- Textures - Image Configuration
+
+---Get image size
+---- Failure return nil
+---- Success return Vector2
+---@param image any
+---@return any size
+function RL.GetImageSize( image ) end
+
+---Get image mipmaps. Mipmap levels, 1 by default
+---- Failure return false
+---- Success return int
+---@param image any
+---@return any mipmaps
+function RL.GetImageMipmaps( image ) end
+
+---Get image data format ( PixelFormat type )
+---- Failure return false
+---- Success return int
+---@param image any
+---@return any format
+function RL.GetImageFormat( image ) end
+
+-- Textures - Texture Loading
+
+---Load texture from file into GPU memory ( VRAM )
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any texture
+function RL.LoadTexture( fileName ) end
+
+---Load texture from image data
+---- Failure return -1
+---- Success return int
+---@param image any
+---@return any texture
+function RL.LoadTextureFromImage( image ) end
+
+---Load cubemap from image, multiple image cubemap layouts supported
+---- Failure return -1
+---- Success return int
+---@param image any
+---@param layout integer
+---@return any texture
+function RL.LoadTextureCubemap( image, layout ) end
+
+---Load texture for rendering ( framebuffer )
+---- Failure return -1
+---- Success return int
+---@param size table
+---@return any renderTexture
+function RL.LoadRenderTexture( size ) end
+
+---Unload texture from GPU memory ( VRAM )
+---- Failure return false
+---- Success return true
+---@param texture any
+---@return any success
+function RL.UnloadTexture( texture ) end
+
+---Unload render texture from GPU memory ( VRAM )
+---- Failure return false
+---- Success return true
+---@param target any
+---@return any success
+function RL.UnloadRenderTexture( target ) end
+
+---Update GPU texture with new data
+---NOTE! Should be TEXTURE_SOURCE_TEXTURE. Pixel should be in format { { 255, 255, 255, 255 }... } depending on the pixel format
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param pixels any
+---@return any success
+function RL.UpdateTexture( texture, pixels ) end
+
+---Update GPU texture rectangle with new data
+---NOTE! Should be TEXTURE_SOURCE_TEXTURE. Pixel should be in format { { 255, 255, 255, 255 }... } depending on the pixel format
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param rec table
+---@param pixels any
+---@return any success
+function RL.UpdateTextureRec( texture, rec, pixels ) end
+
+-- Textures - Texture Drawing
+
+---Draw a Texture2D
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param position table
+---@param tint table
+---@return any success
+function RL.DrawTexture( texture, position, tint ) end
+
+---Draw a part of a texture defined by a rectangle
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param source table
+---@param position table
+---@param tint table
+---@return any success
+function RL.DrawTextureRec( texture, source, position, tint ) end
+
+---Draw part of a texture ( defined by a rectangle ) with rotation and scale tiled into dest
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param source table
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param scale number
+---@param tint table
+---@return any success
+function RL.DrawTextureTiled( texture, source, dest, origin, rotation, scale, tint ) end
+
+---Draw a part of a texture defined by a rectangle with "pro" parameters
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param source table
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any success
+function RL.DrawTexturePro( texture, source, dest, origin, rotation, tint ) end
+
+---Draws a texture ( or part of it ) that stretches or shrinks nicely
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param nPatchInfo any
+---@param dest table
+---@param origin table
+---@param rotation number
+---@param tint table
+---@return any success
+function RL.DrawTextureNPatch( texture, nPatchInfo, dest, origin, rotation, tint ) end
+
+---Draw a textured polygon ( Convex )
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param center table
+---@param points any
+---@param texcoords any
+---@param pointsCount integer
+---@param tint table
+---@return any success
+function RL.DrawTexturePoly( texture, center, points, texcoords, pointsCount, tint ) end
+
+---Begin drawing to render texture
+---- Failure return false
+---- Success return true
+---@param target any
+---@return any success
+function RL.BeginTextureMode( target ) end
+
+---Ends drawing to render texture
+---@return any RL.EndTextureMode
+function RL.EndTextureMode() end
+
+---Set what texture source to use ( TEXTURE_SOURCE_TEXTURE or TEXTURE_SOURCE_RENDER_TEXTURE )
+---- Failure return false
+---- Success return true
+---@param textureSource integer
+---@return any success
+function RL.SetTextureSource( textureSource ) end
+
+---Get current texture source type ( TEXTURE_SOURCE_TEXTURE or TEXTURE_SOURCE_RENDER_TEXTURE )
+---- Success return int
+---@return any textureSource
+function RL.GetTextureSource() end
+
+-- Textures - Texture Configuration
+
+---Generate GPU mipmaps for a texture
+---- Failure return false
+---- Success return true
+---@param texture any
+---@return any success
+function RL.GenTextureMipmaps( texture ) end
+
+---Set texture scaling filter mode ( TEXTURE_FILTER_POINT, TEXTURE_FILTER_BILINEAR... )
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param filter integer
+---@return any success
+function RL.SetTextureFilter( texture, filter ) end
+
+---Set texture wrapping mode ( TEXTURE_WRAP_REPEAT, TEXTURE_WRAP_CLAMP... )
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param wrap integer
+---@return any success
+function RL.SetTextureWrap( texture, wrap ) end
+
+---Get texture size
+---- Failure return nil
+---- Success return Vector2
+---@param texture any
+---@return any size
+function RL.GetTextureSize( texture ) end
+
+---Get texture mipmaps. Mipmap levels, 1 by default
+---- Failure return false
+---- Success return int
+---@param texture any
+---@return any mipmaps
+function RL.GetTextureMipmaps( texture ) end
+
+---Get texture mipmaps. Mipmap levels, 1 by default
+---- Failure return false
+---- Success return int
+---@param texture any
+---@return any format
+function RL.GetTextureFormat( texture ) end
+
+-- Textures - Color/pixel
+
+---Returns color with alpha applied, alpha goes from 0.0f to 1.0f
+---- Failure return false
+---- Success return Color
+---@param color table
+---@param alpha number
+---@return any color
+function RL.Fade( color, alpha ) end
+
+---Returns hexadecimal value for a Color
+---- Failure return false
+---- Success return int
+---@param color table
+---@return any value
+function RL.ColorToInt( color ) end
+
+---Returns Color normalized as float [0..1]
+---- Failure return false
+---- Success return Vector4
+---@param color table
+---@return any color
+function RL.ColorNormalize( color ) end
+
+---Color from normalized values [0..1]
+---- Failure return false
+---- 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]
+---- Failure return false
+---- 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]
+---- Failure return false
+---- Success return Color
+---@param hue number
+---@param saturation number
+---@param value number
+---@return any color
+function RL.ColorFromHSV( hue, saturation, value ) end
+
+---Returns color with alpha applied, alpha goes from 0.0f to 1.0f
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Color
+---@param dst table
+---@param src table
+---@param tint table
+---@return any color
+function RL.ColorAlphaBlend( dst, src, tint ) end
+
+---Get Color structure from hexadecimal value
+---- Failure return false
+---- Success return Color
+---@param int any
+---@return any Color
+function RL.GetColor( int ) end
+
+---Get pixel color from source texture
+---- Failure return false
+---- Success return Color
+---@param texture any
+---@param position table
+---@return any Color
+function RL.GetPixelColor( texture, position ) end
+
+---Get pixel data size in bytes for certain format
+---- Failure return false
+---- Success return int
+---@param width integer
+---@param height integer
+---@param format integer
+---@return any size
+function RL.GetPixelDataSize( width, height, format ) end
+
+-- Text - Loading
+
+---Load font from file into GPU memory ( VRAM )
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any font
+function RL.LoadFont( fileName ) end
+
+---Load font from file with extended parameters. Loading the default character set
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@param fontSize integer
+---@return any font
+function RL.LoadFontEx( fileName, fontSize ) end
+
+---Load font from Image ( XNA style )
+---- Failure return -1
+---- Success return int
+---@param image any
+---@param key table
+---@param firstChar integer
+---@return any font
+function RL.LoadFontFromImage( image, key, firstChar ) end
+
+---Unload Font from GPU memory ( VRAM )
+---- Failure return false
+---- Success return true
+---@param font any
+---@return any success
+function RL.UnloadFont( font ) end
+
+-- Text - Draw
+
+---Draw current FPS
+---- Failure return false
+---- Success return true
+---@param pos table
+---@return any success
+function RL.DrawFPS( pos ) end
+
+---Draw text using font and additional parameters
+---- Failure return false
+---- Success return true
+---@param font any
+---@param text string
+---@param position table
+---@param fontSize number
+---@param spacing number
+---@param tint table
+---@return any success
+function RL.DrawText( font, text, position, fontSize, spacing, tint ) end
+
+---Draw text using Font and pro parameters ( rotation )
+---- Failure return false
+---- Success return true
+---@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 success
+function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spacing, tint ) end
+
+-- Text - Misc
+
+---Measure string size for Font
+---- Failure return false
+---- Success return Vector2
+---@param font any
+---@param text string
+---@param fontSize number
+---@param spacing number
+---@return any size
+function RL.MeasureText( font, text, fontSize, spacing ) end
+
+---Get font baseSize
+---- Failure return false
+---- Success return int
+---@param font any
+---@return any baseSize
+function RL.GetFontBaseSize( font ) end
+
+---Get font glyphCount
+---- Failure return false
+---- Success return int
+---@param font any
+---@return any glyphCount
+function RL.GetFontGlyphCount( font ) end
+
+---Get font glyphPadding
+---- Failure return false
+---- Success return int
+---@param font any
+---@return any glyphPadding
+function RL.GetFontGlyphPadding( font ) end
+
+-- Models - Basic
+
+---Draw a line in 3D world space
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param color table
+---@return any success
+function RL.DrawLine3D( startPos, endPos, color ) end
+
+---Draw a point in 3D space, actually a small line
+---- Failure return false
+---- Success return true
+---@param position table
+---@param color table
+---@return any success
+function RL.DrawPoint3D( position, color ) end
+
+---Draw a circle in 3D world space
+---- Failure return false
+---- Success return true
+---@param center table
+---@param radius number
+---@param rotationAxis table
+---@param rotationAngle number
+---@param color table
+---@return any success
+function RL.DrawCircle3D( center, radius, rotationAxis, rotationAngle, color ) end
+
+---Draw a color-filled triangle ( Vertex in counter-clockwise order! )
+---- Failure return false
+---- Success return true
+---@param v1 table
+---@param v2 table
+---@param v3 table
+---@param color table
+---@return any success
+function RL.DrawTriangle3D( v1, v2, v3, color ) end
+
+---Draw cube
+---- Failure return false
+---- Success return true
+---@param position table
+---@param size table
+---@param color table
+---@return any success
+function RL.DrawCube( position, size, color ) end
+
+---Draw cube wires
+---- Failure return false
+---- Success return true
+---@param position table
+---@param size table
+---@param color table
+---@return any success
+function RL.DrawCubeWires( position, size, color ) end
+
+---Draw cube textured
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param position table
+---@param size table
+---@param color table
+---@return any success
+function RL.DrawCubeTexture( texture, position, size, color ) end
+
+---Draw sphere
+---- Failure return false
+---- Success return true
+---@param centerPos table
+---@param radius number
+---@param color table
+---@return any success
+function RL.DrawSphere( centerPos, radius, color ) end
+
+---Draw sphere with extended parameters
+---- Failure return false
+---- Success return true
+---@param centerPos table
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@param color table
+---@return any success
+function RL.DrawSphereEx( centerPos, radius, rings, slices, color ) end
+
+---Draw sphere wires
+---- Failure return false
+---- Success return true
+---@param centerPos table
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@param color table
+---@return any success
+function RL.DrawSphereWires( centerPos, radius, rings, slices, color ) end
+
+---Draw a cylinder/cone
+---- Failure return false
+---- Success return true
+---@param position table
+---@param radiusTop number
+---@param radiusBottom number
+---@param height number
+---@param slices integer
+---@param color table
+---@return any success
+function RL.DrawCylinder( position, radiusTop, radiusBottom, height, slices, color ) end
+
+---Draw a cylinder with base at startPos and top at endPos
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param startRadius number
+---@param endRadius number
+---@param sides integer
+---@param color table
+---@return any success
+function RL.DrawCylinderEx( startPos, endPos, startRadius, endRadius, sides, color ) end
+
+---Draw a cylinder/cone wires
+---- Failure return false
+---- Success return true
+---@param position table
+---@param radiusTop number
+---@param radiusBottom number
+---@param height number
+---@param slices integer
+---@param color table
+---@return any success
+function RL.DrawCylinderWires( position, radiusTop, radiusBottom, height, slices, color ) end
+
+---Draw a cylinder wires with base at startPos and top at endPos
+---- Failure return false
+---- Success return true
+---@param startPos table
+---@param endPos table
+---@param startRadius number
+---@param endRadius number
+---@param sides integer
+---@param color table
+---@return any success
+function RL.DrawCylinderWiresEx( startPos, endPos, startRadius, endRadius, sides, color ) end
+
+---Draw a plane XZ
+---- Failure return false
+---- Success return true
+---@param centerPos table
+---@param size table
+---@param color table
+---@return any success
+function RL.DrawPlane( centerPos, size, color ) end
+
+---Draw 3D textured quad. ( Texture coordinates opengl style 0.0 - 1.0 ).
+---- Failure return false
+---- Success return true
+---@param texture any
+---@param vertices any
+---@param texCoords any
+---@param colors any
+---@return any success
+function RL.DrawQuad3DTexture( texture, vertices, texCoords, colors ) end
+
+---Draw a ray line
+---- Failure return false
+---- Success return true
+---@param ray any
+---@param color table
+---@return any success
+function RL.DrawRay( ray, color ) end
+
+---Draw a grid ( Centered at ( 0, 0, 0 ) )
+---- Failure return false
+---- Success return true
+---@param slices integer
+---@param spacing number
+---@return any success
+function RL.DrawGrid( slices, spacing ) end
+
+-- Models - Mesh
+
+---Generate polygonal mesh
+---- Failure return -1
+---- Success return int
+---@param sides integer
+---@param radius number
+---@return any mesh
+function RL.GenMeshPoly( sides, radius ) end
+
+---Generate plane mesh ( With subdivisions )
+---- Failure return -1
+---- Success return int
+---@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
+---- Failure return -1
+---- Success return int
+---@param size table
+---@return any mesh
+function RL.GenMeshCube( size ) end
+
+---Generate sphere mesh ( Standard sphere )
+---- Failure return -1
+---- Success return int
+---@param radius number
+---@param rings integer
+---@param slices integer
+---@return any mesh
+function RL.GenMeshSphere( radius, rings, slices ) end
+
+---Generate cylinder mesh
+---- Failure return -1
+---- Success return int
+---@param radius number
+---@param height number
+---@param slices integer
+---@return any mesh
+function RL.GenMeshCylinder( radius, height, slices ) end
+
+---Generate cone/pyramid mesh
+---- Failure return -1
+---- Success return int
+---@param radius number
+---@param height number
+---@param slices integer
+---@return any mesh
+function RL.GenMeshCone( radius, height, slices ) end
+
+---Generate torus mesh
+---- Failure return -1
+---- Success return int
+---@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
+---- Failure return -1
+---- Success return int
+---@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
+---- Failure return -1
+---- Success return int
+---@param heightmap any
+---@param size table
+---@return any mesh
+function RL.GenMeshHeightmap( heightmap, size ) end
+
+---Generate custom mesh from vertex attribute data and uploads it into a VAO ( if supported ) and VBO
+---- Failure return -1
+---- Success return int
+---@param mesh any
+---@param dynamic boolean
+---@return any mesh
+function RL.GenMeshCustom( mesh, dynamic ) end
+
+---Update mesh vertex data in GPU.
+---Note! Mainly intented to be used with custom meshes.
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@return any success
+function RL.UpdateMesh( mesh ) end
+
+---Unload mesh data from CPU and GPU
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@return any success
+function RL.UnloadMesh( mesh ) end
+
+---Draw a 3d mesh with material and transform
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@param material any
+---@param transform table
+---@return any success
+function RL.DrawMesh( mesh, material, transform ) end
+
+---Draw multiple mesh instances with material and different transforms
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@param material any
+---@param transforms any
+---@param instances integer
+---@return any success
+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
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@param fileName string
+---@return any success
+function RL.ExportMesh( mesh, fileName ) end
+
+---Compute mesh bounding box limits
+---- Failure return false
+---- Success return BoundingBox
+---@param mesh any
+---@return any boundingBox
+function RL.GetMeshBoundingBox( mesh ) end
+
+---Compute mesh tangents
+---- Failure return false
+---- Success return true
+---@param mesh any
+---@return any success
+function RL.GenMeshTangents( mesh ) end
+
+-- Models - Material
+
+---Load default material
+---- Success return int
+---@return any material
+function RL.LoadMaterialDefault() end
+
+---Load material from table. See material table definition
+---- Failure return false
+---- Success return int
+---@param material any
+---@return any material
+function RL.CreateMaterial( material ) end
+
+---Unload material from GPU memory ( VRAM )
+---- Failure return false
+---- Success return true
+---@param material any
+---@return any success
+function RL.UnloadMaterial( material ) end
+
+---Set texture for a material map type ( MATERIAL_MAP_ALBEDO, MATERIAL_MAP_METALNESS... )
+---- Failure return false
+---- Success return true
+---@param material any
+---@param mapType integer
+---@param texture any
+---@return any success
+function RL.SetMaterialTexture( material, mapType, texture ) end
+
+---Set color for a material map type
+---- Failure return false
+---- Success return true
+---@param material any
+---@param mapType integer
+---@param color table
+---@return any success
+function RL.SetMaterialColor( material, mapType, color ) end
+
+---Set value for a material map type
+---- Failure return false
+---- Success return true
+---@param material any
+---@param mapType integer
+---@param value number
+---@return any success
+function RL.SetMaterialValue( material, mapType, value ) end
+
+---Set shader for material
+---- Failure return false
+---- Success return true
+---@param material any
+---@param shader any
+---@return any success
+function RL.SetMaterialShader( material, shader ) end
+
+-- Models - Model
+
+---Load model from files ( Meshes and materials )
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any model
+function RL.LoadModel( fileName ) end
+
+---Load model from generated mesh ( Default material )
+---- Failure return -1
+---- Success return int
+---@param mesh any
+---@return any model
+function RL.LoadModelFromMesh( mesh ) end
+
+---Unload model ( Including meshes ) from memory ( RAM and/or VRAM )
+---- Failure return false
+---- Success return true
+---@param model any
+---@return any success
+function RL.UnloadModel( model ) end
+
+---Draw a model ( With texture if set )
+---- Failure return false
+---- Success return true
+---@param model any
+---@param position table
+---@param scale number
+---@param tint table
+---@return any success
+function RL.DrawModel( model, position, scale, tint ) end
+
+---Draw a model with extended parameters
+---- Failure return false
+---- Success return true
+---@param model any
+---@param position table
+---@param rotationAxis table
+---@param rotationAngle number
+---@param scale table
+---@param tint table
+---@return any success
+function RL.DrawModelEx( model, position, rotationAxis, rotationAngle, scale, tint ) end
+
+---Copies material to model material. ( Model material is the material id in models. Material can be deleted if not used elsewhere )
+---- Failure return false
+---- Success return true
+---@param model any
+---@param modelMaterial any
+---@param material any
+---@return any success
+function RL.SetModelMaterial( model, modelMaterial, material ) end
+
+---Set material for a mesh ( Mesh and material on this model )
+---- Failure return false
+---- Success return true
+---@param model any
+---@param meshId integer
+---@param materialId integer
+---@return any success
+function RL.SetModelMeshMaterial( model, meshId, materialId ) end
+
+---Draw a billboard texture
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param texture any
+---@param position table
+---@param size number
+---@param tint table
+---@return any success
+function RL.DrawBillboard( camera, texture, position, size, tint ) end
+
+---Draw a billboard texture defined by source
+---- Failure return false
+---- Success return true
+---@param camera any
+---@param texture any
+---@param source table
+---@param position table
+---@param size table
+---@param tint table
+---@return any success
+function RL.DrawBillboardRec( camera, texture, source, position, size, tint ) end
+
+---Set model transform matrix
+---- Failure return false
+---- Success return true
+---@param model any
+---@param transform table
+---@return any success
+function RL.SetModelTransform( model, transform ) end
+
+---Get model transform matrix
+---- Failure return false
+---- Success return Matrix
+---@param model any
+---@return any transform
+function RL.GetModelTransform( model ) end
+
+-- Model - Animations
+
+---Load model animations from file
+---- Failure return -1
+---- Success return int, int
+---@param fileName string
+---@return any animations
+---@return any animationCount
+function RL.LoadModelAnimations( fileName ) end
+
+---Update model animation pose
+---- Failure return false
+---- Success return true
+---@param model any
+---@param animations any
+---@param animation integer
+---@param frame integer
+---@return any success
+function RL.UpdateModelAnimation( model, animations, animation, frame ) end
+
+---Unload animation data
+---- Failure return false
+---- Success return true
+---@param animations any
+---@return any success
+function RL.UnloadModelAnimations( animations ) end
+
+---Check model animation skeleton match
+---- Failure return nil
+---- Success return bool
+---@param model any
+---@param animations any
+---@return any valid
+function RL.IsModelAnimationValid( model, animations ) end
+
+---Return modelAnimation bone count
+---- Failure return false
+---- Success return int
+---@param animations any
+---@param animation integer
+---@return any boneCount
+function RL.GetModelAnimationBoneCount( animations, animation ) end
+
+---Return modelAnimation frame count
+---- Failure return false
+---- Success return int
+---@param animations any
+---@param animation integer
+---@return any frameCount
+function RL.GetModelAnimationFrameCount( animations, animation ) end
+
+-- Model - Collision
+
+---Check collision between two spheres
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- Success return bool
+---@param box1 any
+---@param box2 any
+---@return any collision
+function RL.CheckCollisionBoxes( box1, box2 ) end
+
+---Check collision between box and sphere
+---- Failure return nil
+---- 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 } )
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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
+---- Failure return nil
+---- 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
+
+-- Audio - Audio device management
+
+---Set master volume ( listener )
+---- Failure return false
+---- Success return true
+---@param volume number
+---@return any success
+function RL.SetMasterVolume( volume ) end
+
+-- Audio - Wave/Sound Loading
+
+---Load sound from file
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any sound
+function RL.LoadSound( fileName ) end
+
+---Load wave data from file
+---- Failure return -1
+---- Success return int
+---@param fileName string
+---@return any wave
+function RL.LoadWave( fileName ) end
+
+---Load sound from wave data
+---- Failure return -1
+---- Success return int
+---@param wave any
+---@return any sound
+function RL.LoadSoundFromWave( wave ) end
+
+---Unload sound
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.UnloadSound( sound ) end
+
+---Unload wave data
+---- Failure return false
+---- Success return true
+---@param wave any
+---@return any success
+function RL.UnloadWave( wave ) end
+
+---Export wave data to file, returns true on success
+---- Failure return false
+---- Success return true
+---@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
+---- Failure return false
+---- Success return true
+---@param wave any
+---@param fileName string
+---@return any success
+function RL.ExportWaveAsCode( wave, fileName ) end
+
+-- Audio - Wave/Sound management
+
+---Play a sound
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.PlaySound( sound ) end
+
+---Stop playing a sound
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.StopSound( sound ) end
+
+---Pause a sound
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.PauseSound( sound ) end
+
+---Resume a paused sound
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.ResumeSound( sound ) end
+
+---Play a sound ( Using multichannel buffer pool )
+---- Failure return false
+---- Success return true
+---@param sound any
+---@return any success
+function RL.PlaySoundMulti( sound ) end
+
+---Stop any sound playing ( using multichannel buffer pool )
+---@return any RL.StopSoundMulti
+function RL.StopSoundMulti() end
+
+---Get number of sounds playing in the multichannel
+---- Success return int
+---@return any count
+function RL.GetSoundsPlaying() end
+
+---Check if a sound is currently playing
+---- Failure return nil
+---- Success return bool
+---@param sound any
+---@return any playing
+function RL.IsSoundPlaying( sound ) end
+
+---Set volume for a sound ( 1.0 is max level )
+---- Failure return false
+---- Success return true
+---@param sound any
+---@param volume number
+---@return any success
+function RL.SetSoundVolume( sound, volume ) end
+
+---Set pitch for a sound ( 1.0 is base level )
+---- Failure return false
+---- Success return true
+---@param sound any
+---@param pitch number
+---@return any success
+function RL.SetSoundPitch( sound, pitch ) end
+
+---Set pan for a sound ( 0.5 is center )
+---- Failure return false
+---- Success return true
+---@param sound any
+---@param pan number
+---@return any success
+function RL.SetSoundPan( sound, pan ) end
+
+---Convert wave data to desired format
+---- Failure return false
+---- Success return true
+---@param wave any
+---@param sampleRate integer
+---@param sampleSize integer
+---@param channels integer
+---@return any success
+function RL.WaveFormat( wave, sampleRate, sampleSize, channels ) end
+
+---Copy a wave to a new wave
+---- Failure return -1
+---- Success return int
+---@param wave any
+---@return any wave
+function RL.WaveCopy( wave ) end
+
+---Crop a wave to defined samples range
+---- Failure return false
+---- Success return true
+---@param wave any
+---@param initSample integer
+---@param finalSample integer
+---@return any success
+function RL.WaveCrop( wave, initSample, finalSample ) end
+
+-- Audio - Music management
+
+---Load music stream from file
+---- Failure return false
+---- Success return true
+---@param fileName string
+---@return any success
+function RL.LoadMusicStream( fileName ) end
+
+---Start music playing
+---@return any RL.PlayMusicStream
+function RL.PlayMusicStream() end
+
+---Check if music is playing
+---- Success return bool
+---@return any playing
+function RL.IsMusicStreamPlaying() end
+
+---Stop music playing
+---@return any RL.StopMusicStream
+function RL.StopMusicStream() end
+
+---Pause music playing
+---@return any RL.PauseMusicStream
+function RL.PauseMusicStream() end
+
+---Resume playing paused music
+---@return any RL.ResumeMusicStream
+function RL.ResumeMusicStream() end
+
+---Seek music to a position ( in seconds )
+---- Failure return false
+---- Success return true
+---@param position number
+---@return any success
+function RL.SeekMusicStream( position ) end
+
+---Set volume for music ( 1.0 is max level )
+---- Failure return false
+---- Success return true
+---@param volume number
+---@return any success
+function RL.SetMusicVolume( volume ) end
+
+---Set pitch for a music ( 1.0 is base level )
+---- Failure return false
+---- Success return true
+---@param pitch number
+---@return any success
+function RL.SetMusicPitch( pitch ) end
+
+---Set pan for a music ( 0.5 is center )
+---- Failure return false
+---- Success return true
+---@param pan number
+---@return any success
+function RL.SetMusicPan( pan ) end
+
+---Get music time length ( in seconds )
+---- Success return float
+---@return any length
+function RL.GetMusicTimeLength() end
+
+---Get current music time played ( in seconds )
+---- Success return float
+---@return any played
+function RL.GetMusicTimePlayed() end
+
+-- Math - Utils
+
+---Clamp float value
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return float
+---@param start number
+---@param end number
+---@param amount number
+---@return any result
+function RL.Lerp( start, end, amount ) end
+
+---Normalize input value within input range
+---- Failure return false
+---- Success return float
+---@param value number
+---@param start number
+---@param end number
+---@return any result
+function RL.Normalize( value, start, end ) end
+
+---Remap input value within input range to output range
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return int
+---@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)
+---- Failure return false
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Add( v1, v2 ) end
+
+---Add vector and float value
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param add number
+---@return any result
+function RL.Vector2AddValue( v, add ) end
+
+---Subtract two vectors (v1 - v2)
+---- Failure return false
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Subtract( v1, v2 ) end
+
+---Subtract vector by float value
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param sub number
+---@return any result
+function RL.Vector2SubtractValue( v, sub ) end
+
+---Calculate vector length
+---- Failure return false
+---- Success return float
+---@param v any
+---@return any result
+function RL.Vector2Length( v ) end
+
+---Calculate vector square length
+---- Failure return false
+---- Success return float
+---@param v any
+---@return any result
+function RL.Vector2LengthSqr( v ) end
+
+---Calculate two vectors dot product
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2DotProduct( v1, v2 ) end
+
+---Calculate distance between two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Distance( v1, v2 ) end
+
+---Calculate square distance between two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2DistanceSqr( v1, v2 ) end
+
+---Calculate angle from two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Angle( v1, v2 ) end
+
+---Scale vector ( multiply by value )
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param scale number
+---@return any result
+function RL.Vector2Scale( v, scale ) end
+
+---Multiply vector by vector
+---- Failure return false
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Multiply( v1, v2 ) end
+
+---Negate vector
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@return any result
+function RL.Vector2Negate( v ) end
+
+---Divide vector by vector
+---- Failure return false
+---- Success return Vector2
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Divide( v1, v2 ) end
+
+---Normalize provided vector
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@return any result
+function RL.Vector2Normalize( v ) end
+
+---Transforms a Vector2 by a given Matrix
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param mat table
+---@return any result
+function RL.Vector2Transform( v, mat ) end
+
+---Calculate linear interpolation between two vectors
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param normal table
+---@return any result
+function RL.Vector2Reflect( v, normal ) end
+
+---Rotate vector by angle
+---- Failure return false
+---- Success return Vector2
+---@param v table
+---@param angle number
+---@return any result
+function RL.Vector2Rotate( v, angle ) end
+
+---Move Vector towards target
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return int
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector2Equals( v1, v2 ) 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
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Add( v1, v2 ) end
+
+---Add vector and float value
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param add number
+---@return any result
+function RL.Vector3AddValue( v, add ) end
+
+---Subtract two vectors
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Subtract( v1, v2 ) end
+
+---Subtract vector by float value
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param sub number
+---@return any result
+function RL.Vector3SubtractValue( v, sub ) end
+
+---Multiply vector by scalar
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param scalar number
+---@return any result
+function RL.Vector3Scale( v, scalar ) end
+
+---Multiply vector by vector
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Multiply( v1, v2 ) end
+
+---Calculate two vectors cross product
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3CrossProduct( v1, v2 ) end
+
+---Calculate one vector perpendicular vector
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Perpendicular( v ) end
+
+---Calculate vector length
+---- Failure return false
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector3Length( v ) end
+
+---Calculate vector square length
+---- Failure return false
+---- Success return float
+---@param v table
+---@return any result
+function RL.Vector3LengthSqr( v ) end
+
+---Calculate two vectors dot product
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3DotProduct( v1, v2 ) end
+
+---Calculate distance between two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Distance( v1, v2 ) end
+
+---Calculate square distance between two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3DistanceSqr( v1, v2 ) end
+
+---Calculate angle between two vectors
+---- Failure return false
+---- Success return float
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Angle( v1, v2 ) end
+
+---Negate provided vector ( invert direction )
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Negate( v ) end
+
+---Divide vector by vector
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@return any result
+function RL.Vector3Divide( v1, v2 ) end
+
+---Normalize provided vector
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@return any result
+function RL.Vector3Normalize( v ) end
+
+---Orthonormalize provided vectors. Makes vectors normalized and orthogonal to each other.
+---Gram-Schmidt function implementation
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param mat table
+---@return any result
+function RL.Vector3Transform( v, mat ) end
+
+---Transform a vector by quaternion rotation
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param q table
+---@return any result
+function RL.Vector3RotateByQuaternion( v, q ) end
+
+---Rotates a vector around an axis
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param axis table
+---@param angle number
+---@return any result
+function RL.Vector3RotateByAxisAngle( v, axis, angle ) end
+
+---Calculate linear interpolation between two vectors
+---- Failure return false
+---- Success return Vector3
+---@param v1 table
+---@param v2 table
+---@param amount number
+---@return any result
+function RL.Vector3Lerp( v1, v2, amount ) end
+
+---Calculate reflected vector to normal
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return int
+---@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
+---- Failure return false
+---- Success return Vector3
+---@param v table
+---@param n table
+---@param r number
+---@return any result
+function RL.Vector3Refract( v, n, r ) end
+
+-- Math - Matrix
+
+---Compute matrix determinant
+---- Failure return false
+---- 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 )
+---- Failure return false
+---- Success return float
+---@param mat table
+---@return any result
+function RL.MatrixTrace( mat ) end
+
+---Transposes provided matrix
+---- Failure return false
+---- Success return Matrix
+---@param mat table
+---@return any result
+function RL.MatrixTranspose( mat ) end
+
+---Invert provided matrix
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixAdd( left, right ) end
+
+---Subtract two matrices (left - right)
+---- Failure return false
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixSubtract( left, right ) end
+
+---Get two matrix multiplication
+---- Failure return false
+---- Success return Matrix
+---@param left table
+---@param right table
+---@return any result
+function RL.MatrixMultiply( left, right ) end
+
+---Get translation matrix
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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 )
+---- Failure return false
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateX( angle ) end
+
+---Get y-rotation matrix ( angle in radians )
+---- Failure return false
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateY( angle ) end
+
+---Get z-rotation matrix ( angle in radians )
+---- Failure return false
+---- Success return Matrix
+---@param angle number
+---@return any result
+function RL.MatrixRotateZ( angle ) end
+
+---Get xyz-rotation matrix ( angles in radians )
+---- Failure return false
+---- Success return Matrix
+---@param angle table
+---@return any result
+function RL.MatrixRotateXYZ( angle ) end
+
+---Get zyx-rotation matrix ( angles in radians )
+---- Failure return false
+---- Success return Matrix
+---@param angle table
+---@return any result
+function RL.MatrixRotateZYX( angle ) end
+
+---Get scaling matrix
+---- Failure return false
+---- Success return Matrix
+---@param scale table
+---@return any result
+function RL.MatrixScale( scale ) end
+
+---Get perspective projection matrix
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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 )
+---- Failure return false
+---- Success return Matrix
+---@param eye table
+---@param target table
+---@param up table
+---@return any result
+function RL.MatrixLookAt( eye, target, up ) end
+
+-- Math - Quaternion
+
+---Add two quaternions
+---- Failure return false
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionAdd( q1, q2 ) end
+
+---Add quaternion and float value
+---- Failure return false
+---- Success return Quaternion
+---@param q table
+---@param add number
+---@return any result
+function RL.QuaternionAddValue( q, add ) end
+
+---Subtract two quaternions
+---- Failure return false
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionSubtract( q1, q2 ) end
+
+---Subtract quaternion and float value
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return float
+---@param q table
+---@return any result
+function RL.QuaternionLength( q ) end
+
+---Normalize provided quaternion
+---- Failure return false
+---- Success return Quaternion
+---@param q table
+---@return any result
+function RL.QuaternionNormalize( q ) end
+
+---Invert provided quaternion
+---- Failure return false
+---- Success return Quaternion
+---@param q table
+---@return any result
+function RL.QuaternionInvert( q ) end
+
+---Calculate two quaternion multiplication
+---- Failure return false
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionMultiply( q1, q2 ) end
+
+---Scale quaternion by float value
+---- Failure return false
+---- Success return Quaternion
+---@param q table
+---@param mul number
+---@return any result
+function RL.QuaternionScale( q, mul ) end
+
+---Divide two quaternions
+---- Failure return false
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionDivide( q1, q2 ) end
+
+---Calculate linear interpolation between two quaternions
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Quaternion
+---@param q1 table
+---@param q2 table
+---@param amount number
+---@return any result
+function RL.QuaternionSlerp( q1, q2, amount ) end
+
+---Calculate quaternion based on the rotation from one vector to another
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Quaternion
+---@param mat table
+---@return any result
+function RL.QuaternionFromMatrix( mat ) end
+
+---Get a quaternion for a given rotation matrix
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return Vector3
+---@param q table
+---@return any result
+function RL.QuaternionToEuler( q ) end
+
+---Transform a quaternion given a transformation matrix
+---- Failure return false
+---- 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
+---- Failure return false
+---- Success return int
+---@param q1 table
+---@param q2 table
+---@return any result
+function RL.QuaternionEquals( q1, q2 ) end
+
+-- Gui - Global
+
+---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
+---- Failure return false
+---- Success return true
+---@param alpha number
+---@return any success
+function RL.GuiFade( alpha ) end
+
+---Set gui state ( global state )
+---- Failure return false
+---- Success return true
+---@param state integer
+---@return any success
+function RL.GuiSetState( state ) end
+
+---Get gui state ( global state )
+---- Success return int
+---@return any state
+function RL.GuiGetState() end
+
+-- Gui - Font
+
+---Set gui custom font ( Global state )
+---- Failure return false
+---- Success return true
+---@param font any
+---@return any success
+function RL.GuiSetFont( font ) end
+
+-- Gui - Style
+
+---Set one style property
+---- Failure return false
+---- Success return true
+---@param control integer
+---@param property integer
+---@param value integer
+---@return any success
+function RL.GuiSetStyle( control, property, value ) end
+
+---Get one style property
+---- Failure return false
+---- Success return int
+---@param control integer
+---@param property integer
+---@return any value
+function RL.GuiGetStyle( control, property ) end
+
+---Load style file over global style variable ( .rgs )
+---- Failure return false
+---- Success return true
+---@param control integer
+---@param property integer
+---@return any success
+function RL.GuiLoadStyle( control, property ) end
+
+---Load style default over global style
+---@return any RL.GuiLoadStyleDefault
+function RL.GuiLoadStyleDefault() end
+
+-- Gui - Container
+
+---Window Box control, shows a window that can be closed
+---- Failure return nil
+---- Success return bool
+---@param bounds table
+---@param title string
+---@return any state
+function RL.GuiWindowBox( bounds, title ) end
+
+---Group Box control with text name
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiGroupBox( bounds, text ) end
+
+---Line separator control, could contain text
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiLine( bounds, text ) end
+
+---Panel control, useful to group controls
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiPanel( bounds, text ) end
+
+---Scroll Panel control
+---- Failure return false
+---- Success return Rectangle, Vector2
+---@param bounds table
+---@param text string
+---@param content table
+---@param scroll table
+---@return any view
+---@return any scroll
+function RL.GuiScrollPanel( bounds, text, content, scroll ) end
+
+-- Gui - Basic
+
+---Label control, shows text
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiLabel( bounds, text ) end
+
+---Button control, returns true when clicked
+---- Failure return nil
+---- Success return boolean
+---@param bounds table
+---@param text string
+---@return any clicked
+function RL.GuiButton( bounds, text ) end
+
+---Label button control, show true when clicked
+---- Failure return nil
+---- Success return boolean
+---@param bounds table
+---@param text string
+---@return any clicked
+function RL.GuiLabelButton( bounds, text ) end
+
+---Toggle Button control, returns true when active
+---- Failure return nil
+---- Success return boolean
+---@param bounds table
+---@param text string
+---@param active boolean
+---@return any active
+function RL.GuiToggle( bounds, text, active ) end
+
+---Toggle Group control, returns active toggle index
+---- Failure return false
+---- Success return int
+---@param bounds table
+---@param text string
+---@param active integer
+---@return any index
+function RL.GuiToggleGroup( bounds, text, active ) end
+
+---Check Box control, returns true when active
+---- Failure return nil
+---- Success return boolean
+---@param bounds table
+---@param text string
+---@param checked boolean
+---@return any active
+function RL.GuiCheckBox( bounds, text, checked ) end
+
+---Combo Box control, returns selected item index
+---- Failure return nil
+---- Success return int
+---@param bounds table
+---@param text string
+---@param active integer
+---@return any active
+function RL.GuiComboBox( bounds, text, active ) end
+
+---Text Box control, updates input text
+---- Failure return nil
+---- Success return boolean, string
+---@param bounds table
+---@param text string
+---@param textSize integer
+---@param editMode boolean
+---@return any pressed
+---@return any text
+function RL.GuiTextBox( bounds, text, textSize, editMode ) end
+
+---Text Box control with multiple lines
+---- Failure return nil
+---- Success return boolean, string
+---@param bounds table
+---@param text string
+---@param textSize integer
+---@param editMode boolean
+---@return any pressed
+---@return any text
+function RL.GuiTextBoxMulti( bounds, text, textSize, editMode ) end
+
+---Spinner control, returns selected value
+---- Failure return nil
+---- Success return boolean, int
+---@param bounds table
+---@param text string
+---@param value integer
+---@param minValue integer
+---@param maxValue integer
+---@param editMode boolean
+---@return any pressed
+---@return any value
+function RL.GuiSpinner( bounds, text, value, minValue, maxValue, editMode ) end
+
+---Value Box control, updates input text with numbers
+---- Failure return nil
+---- Success return boolean, int
+---@param bounds table
+---@param text string
+---@param value integer
+---@param minValue integer
+---@param maxValue integer
+---@param editMode boolean
+---@return any pressed
+---@return any value
+function RL.GuiValueBox( bounds, text, value, minValue, maxValue, editMode ) end
+
+---Slider control, returns selected value
+---- Failure return nil
+---- Success return float
+---@param bounds table
+---@param textLeft string
+---@param textRight string
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any value
+function RL.GuiSlider( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Slider Bar control, returns selected value
+---- Failure return nil
+---- Success return float
+---@param bounds table
+---@param textLeft string
+---@param textRight string
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any value
+function RL.GuiSliderBar( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Progress Bar control, shows current progress value
+---- Failure return nil
+---- Success return float
+---@param bounds table
+---@param textLeft string
+---@param textRight string
+---@param value number
+---@param minValue number
+---@param maxValue number
+---@return any value
+function RL.GuiProgressBar( bounds, textLeft, textRight, value, minValue, maxValue ) end
+
+---Scroll Bar control
+---- Failure return nil
+---- 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
+
+---Dropdown Box control, returns selected item
+---- Failure return nil
+---- Success return bool, int
+---@param bounds table
+---@param text string
+---@param active integer
+---@param editMode boolean
+---@return any pressed
+---@return any item
+function RL.GuiDropdownBox( bounds, text, active, editMode ) end
+
+---Status Bar control, shows info text
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiStatusBar( bounds, text ) end
+
+---Dummy control for placeholders
+---- Failure return false
+---- Success return true
+---@param bounds table
+---@param text string
+---@return any success
+function RL.GuiDummyRec( bounds, text ) end
+
+---Grid control, returns mouse cell position
+---- Failure return false
+---- Success return Vector2
+---@param bounds table
+---@param text string
+---@param spacing number
+---@param subdivs integer
+---@return any cell
+function RL.GuiGrid( bounds, text, spacing, subdivs ) end
+
+-- Gui - Advanced
+
+---List View control, returns selected list item index and scroll index
+---- Failure return nil
+---- Success return int, int
+---@param bounds table
+---@param text string
+---@param scrollIndex integer
+---@param active integer
+---@return any itemIndex
+---@return any scrollIndex
+function RL.GuiListView( bounds, text, scrollIndex, active ) end
+
+---List View with extended parameters, returns selected list item index, scroll index and focus
+---- Failure return nil
+---- Success return int, int, int
+---@param bounds table
+---@param text string
+---@param focus integer
+---@param scrollIndex integer
+---@param active integer
+---@return any itemIndex
+---@return any scrollIndex
+---@return any focus
+function RL.GuiListViewEx( bounds, text, focus, scrollIndex, active ) end
+
+---Message Box control, displays a message, returns button index ( 0 is x button )
+---- Failure return false
+---- Success return int
+---@param bounds table
+---@param title string
+---@param message string
+---@param buttons string
+---@return any buttonIndex
+function RL.GuiMessageBox( bounds, title, message, buttons ) end
+
+---Text Input Box control, ask for text, supports secret
+---- Failure return false
+---- Success return int, string, int
+---@param bounds table
+---@param title string
+---@param message string
+---@param buttons string
+---@param text string
+---@param textMaxSize integer
+---@param secretViewActive integer
+---@return any buttonIndex
+---@return any text
+---@return any secretViewActive
+function RL.GuiTextInputBox( bounds, title, message, buttons, text, textMaxSize, secretViewActive ) end
+
+---Color Picker control ( multiple color controls )
+---- Failure return false
+---- Success return Color
+---@param bounds table
+---@param text string
+---@param color table
+---@return any color
+function RL.GuiColorPicker( bounds, text, color ) end
+
+---Color Panel control
+---- Failure return false
+---- Success return Color
+---@param bounds table
+---@param text string
+---@param color table
+---@return any color
+function RL.GuiColorPanel( bounds, text, color ) end
+
+---Color Bar Alpha control
+---- Failure return false
+---- Success return float
+---@param bounds table
+---@param text string
+---@param alpha number
+---@return any alpha
+function RL.GuiColorBarAlpha( bounds, text, alpha ) end
+
+---Color Bar Hue control
+---- Failure return false
+---- Success return float
+---@param bounds table
+---@param text string
+---@param value number
+---@return any hue
+function RL.GuiColorBarHue( bounds, text, value ) end
+
+-- Gui - Icons
+
+---Get text with icon id prepended ( if supported )
+---- Failure return false
+---- Success return string
+---@param iconId integer
+---@param text string
+---@return any text
+function RL.GuiIconText( iconId, text ) end
+
+---Draw icon
+---- Failure return false
+---- Success return true
+---@param iconId integer
+---@param pos table
+---@param pixelSize integer
+---@param color table
+---@return any success
+function RL.GuiDrawIcon( iconId, pos, pixelSize, color ) end
+
+---Set icon scale ( 1 by default )
+---- Failure return false
+---- Success return true
+---@param scale integer
+---@return any success
+function RL.GuiSetIconScale( scale ) end
+
+---Set icon pixel value
+---- Failure return false
+---- Success return true
+---@param iconId integer
+---@param pos table
+---@return any success
+function RL.GuiSetIconPixel( iconId, pos ) end
+
+---Clear icon pixel value
+---- Failure return false
+---- Success return true
+---@param iconId integer
+---@param pos table
+---@return any success
+function RL.GuiClearIconPixel( iconId, pos ) end
+
+---Check icon pixel value
+---- Failure return nil
+---- Success return bool
+---@param iconId integer
+---@param pos table
+---@return any value
+function RL.GuiCheckIconPixel( iconId, pos ) end
+
+-- Lights - Basics
+
+---Create a light and get shader locations
+---- Failure return -1
+---- Success return int
+---@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
+---- Failure return false
+---- Success return true
+---@param shader any
+---@param light any
+---@return any success
+function RL.UpdateLightValues( shader, light ) end
+
+-- RLGL - General render state
+
+---Set the line drawing width
+---- Failure return false
+---- Success return true
+---@param width number
+---@return any success
+function RL.rlSetLineWidth( width ) end
+
+---Get the line drawing width
+---- Success return float
+---@return any width
+function RL.rlGetLineWidth() end
+
+-- Easings - Linear Easing functions
+
+---Ease linear
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+---- Failure return false
+---- 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
+