@r1tsuu/raylib
Version:
Node.js bindings for raylib 5.5
1,272 lines (1,009 loc) • 190 kB
TypeScript
// GENERATED CODE: DO NOT MODIFY
declare module "@r1tsuu/raylib" {
/** Vector2, 2 components */
export interface Vector2 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
}
/** Vector3, 3 components */
export interface Vector3 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
/** Vector z component. (float) */
z: number
}
/** Vector4, 4 components */
export interface Vector4 {
/** Vector x component. (float) */
x: number
/** Vector y component. (float) */
y: number
/** Vector z component. (float) */
z: number
/** Vector w component. (float) */
w: number
}
/** Matrix, 4x4 components, column major, OpenGL style, right-handed */
export interface Matrix {
/** Matrix first row (4 components). (float) */
m0: number
/** Matrix first row (4 components). (float) */
m4: number
/** Matrix first row (4 components). (float) */
m8: number
/** Matrix first row (4 components). (float) */
m12: number
/** Matrix second row (4 components). (float) */
m1: number
/** Matrix second row (4 components). (float) */
m5: number
/** Matrix second row (4 components). (float) */
m9: number
/** Matrix second row (4 components). (float) */
m13: number
/** Matrix third row (4 components). (float) */
m2: number
/** Matrix third row (4 components). (float) */
m6: number
/** Matrix third row (4 components). (float) */
m10: number
/** Matrix third row (4 components). (float) */
m14: number
/** Matrix fourth row (4 components). (float) */
m3: number
/** Matrix fourth row (4 components). (float) */
m7: number
/** Matrix fourth row (4 components). (float) */
m11: number
/** Matrix fourth row (4 components). (float) */
m15: number
}
/** Color, 4 components, R8G8B8A8 (32bit) */
export interface Color {
/** Color red value. (unsigned char) */
r: number
/** Color green value. (unsigned char) */
g: number
/** Color blue value. (unsigned char) */
b: number
/** Color alpha value. (unsigned char) */
a: number
}
/** Rectangle, 4 components */
export interface Rectangle {
/** Rectangle top-left corner position x. (float) */
x: number
/** Rectangle top-left corner position y. (float) */
y: number
/** Rectangle width. (float) */
width: number
/** Rectangle height. (float) */
height: number
}
/** Image, pixel data stored in CPU memory (RAM) */
export interface Image {
/** Image raw data. (void *) */
data: number
/** Image base width. (int) */
width: number
/** Image base height. (int) */
height: number
/** Mipmap levels, 1 by default. (int) */
mipmaps: number
/** Data format (PixelFormat type). (int) */
format: number
}
/** Texture, tex data stored in GPU memory (VRAM) */
export interface Texture {
/** OpenGL texture id. (unsigned int) */
id: number
/** Texture base width. (int) */
width: number
/** Texture base height. (int) */
height: number
/** Mipmap levels, 1 by default. (int) */
mipmaps: number
/** Data format (PixelFormat type). (int) */
format: number
}
/** RenderTexture, fbo for texture rendering */
export interface RenderTexture {
/** OpenGL framebuffer object id. (unsigned int) */
id: number
/** Color buffer attachment texture. (Texture) */
texture: Texture
/** Depth buffer attachment texture. (Texture) */
depth: Texture
}
/** NPatchInfo, n-patch layout info */
export interface NPatchInfo {
/** Texture source rectangle. (Rectangle) */
source: Rectangle
/** Left border offset. (int) */
left: number
/** Top border offset. (int) */
top: number
/** Right border offset. (int) */
right: number
/** Bottom border offset. (int) */
bottom: number
/** Layout of the n-patch: 3x3, 1x3 or 3x1. (int) */
layout: number
}
/** GlyphInfo, font characters glyphs info */
export interface GlyphInfo {
/** Character value (Unicode). (int) */
value: number
/** Character offset X when drawing. (int) */
offsetX: number
/** Character offset Y when drawing. (int) */
offsetY: number
/** Character advance position X. (int) */
advanceX: number
/** Character image data. (Image) */
image: Image
}
/** Font, font texture and GlyphInfo array data */
export interface Font {
/** Base size (default chars height). (int) */
baseSize: number
/** Number of glyph characters. (int) */
glyphCount: number
/** Padding around the glyph characters. (int) */
glyphPadding: number
/** Texture atlas containing the glyphs. (Texture) */
texture: Texture
/** Rectangles in texture for the glyphs. (Rectangle *) */
recs: number
/** Glyphs info data. (GlyphInfo *) */
glyphs: number
}
/** Camera, defines position/orientation in 3d space */
export interface Camera3D {
/** Camera position. (Vector3) */
position: Vector3
/** Camera target it looks-at. (Vector3) */
target: Vector3
/** Camera up vector (rotation over its axis). (Vector3) */
up: Vector3
/** Camera field-of-view aperture in Y (degrees) in perspective, used as near plane width in orthographic. (float) */
fovy: number
/** Camera projection: CAMERA_PERSPECTIVE or CAMERA_ORTHOGRAPHIC. (int) */
projection: number
}
/** Camera2D, defines position/orientation in 2d space */
export interface Camera2D {
/** Camera offset (displacement from target). (Vector2) */
offset: Vector2
/** Camera target (rotation and zoom origin). (Vector2) */
target: Vector2
/** Camera rotation in degrees. (float) */
rotation: number
/** Camera zoom (scaling), should be 1.0f by default. (float) */
zoom: number
}
/** Mesh, vertex data and vao/vbo */
export interface Mesh {
/** Number of vertices stored in arrays. (int) */
vertexCount: number
/** Number of triangles stored (indexed or not). (int) */
triangleCount: number
/** Vertex position (XYZ - 3 components per vertex) (shader-location = 0). (float *) */
vertices: number
/** Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1). (float *) */
texcoords: number
/** Vertex texture second coordinates (UV - 2 components per vertex) (shader-location = 5). (float *) */
texcoords2: number
/** Vertex normals (XYZ - 3 components per vertex) (shader-location = 2). (float *) */
normals: number
/** Vertex tangents (XYZW - 4 components per vertex) (shader-location = 4). (float *) */
tangents: number
/** Vertex colors (RGBA - 4 components per vertex) (shader-location = 3). (unsigned char *) */
colors: Buffer
/** Vertex indices (in case vertex data comes indexed). (unsigned short *) */
indices: number
/** Animated vertex positions (after bones transformations). (float *) */
animVertices: number
/** Animated normals (after bones transformations). (float *) */
animNormals: number
/** Vertex bone ids, max 255 bone ids, up to 4 bones influence by vertex (skinning) (shader-location = 6). (unsigned char *) */
boneIds: Buffer
/** Vertex bone weight, up to 4 bones influence by vertex (skinning) (shader-location = 7). (float *) */
boneWeights: number
/** Bones animated transformation matrices. (Matrix *) */
boneMatrices: number
/** Number of bones. (int) */
boneCount: number
/** OpenGL Vertex Array Object id. (unsigned int) */
vaoId: number
/** OpenGL Vertex Buffer Objects id (default vertex data). (unsigned int *) */
vboId: number
}
/** Shader */
export interface Shader {
/** Shader program id. (unsigned int) */
id: number
/** Shader locations array (RL_MAX_SHADER_LOCATIONS). (int *) */
locs: number
}
/** MaterialMap */
export interface MaterialMap {
/** Material map texture. (Texture) */
texture: Texture
/** Material map color. (Color) */
color: Color
/** Material map value. (float) */
value: number
}
/** Material, includes shader and maps */
export interface Material {
/** Material shader. (Shader) */
shader: Shader
/** Material maps array (MAX_MATERIAL_MAPS). (MaterialMap *) */
maps: number
/** Material generic parameters (if required). (float[4]) */
params: number
}
/** Transform, vertex transformation data */
export interface Transform {
/** Translation. (Vector3) */
translation: Vector3
/** Rotation. (Vector4) */
rotation: Vector4
/** Scale. (Vector3) */
scale: Vector3
}
/** Bone, skeletal animation bone */
export interface BoneInfo {
/** Bone name. (char) */
name: string
/** Bone parent. (char) */
parent: string
}
/** Model, meshes, materials and animation data */
export interface Model {
/** Local transform matrix. (Matrix) */
transform: Matrix
/** Number of meshes. (int) */
meshCount: number
/** Number of materials. (int) */
materialCount: number
/** Meshes array. (Mesh *) */
meshes: number
/** Materials array. (Material *) */
materials: number
/** Mesh material number. (int *) */
meshMaterial: number
/** Number of bones. (int) */
boneCount: number
/** Bones information (skeleton). (BoneInfo *) */
bones: number
/** Bones base transformation (pose). (Transform *) */
bindPose: number
}
/** ModelAnimation */
export interface ModelAnimation {
/** Number of bones. (int) */
boneCount: number
/** Number of animation frames. (int) */
frameCount: number
/** Bones information (skeleton). (BoneInfo *) */
bones: number
/** Poses array by frame. (Transform **) */
framePoses: number
/** Animation name. (char[32]) */
name: string
}
/** Ray, ray for raycasting */
export interface Ray {
/** Ray position (origin). (Vector3) */
position: Vector3
/** Ray direction (normalized). (Vector3) */
direction: Vector3
}
/** RayCollision, ray hit information */
export interface RayCollision {
/** Did the ray hit something?. (bool) */
hit: boolean
/** Distance to the nearest hit. (float) */
distance: number
/** Point of the nearest hit. (Vector3) */
point: Vector3
/** Surface normal of hit. (Vector3) */
normal: Vector3
}
/** BoundingBox */
export interface BoundingBox {
/** Minimum vertex box-corner. (Vector3) */
min: Vector3
/** Maximum vertex box-corner. (Vector3) */
max: Vector3
}
/** Wave, audio wave data */
export interface Wave {
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
/** Frequency (samples per second). (unsigned int) */
sampleRate: number
/** Bit depth (bits per sample): 8, 16, 32 (24 not supported). (unsigned int) */
sampleSize: number
/** Number of channels (1-mono, 2-stereo, ...). (unsigned int) */
channels: number
/** Buffer data pointer. (void *) */
data: number
}
/** AudioStream, custom audio stream */
export interface AudioStream {
/** Pointer to internal data used by the audio system. (rAudioBuffer *) */
buffer: number
/** Pointer to internal data processor, useful for audio effects. (rAudioProcessor *) */
processor: number
/** Frequency (samples per second). (unsigned int) */
sampleRate: number
/** Bit depth (bits per sample): 8, 16, 32 (24 not supported). (unsigned int) */
sampleSize: number
/** Number of channels (1-mono, 2-stereo, ...). (unsigned int) */
channels: number
}
/** Sound */
export interface Sound {
/** Audio stream. (AudioStream) */
stream: AudioStream
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
}
/** Music, audio stream, anything longer than ~10 seconds should be streamed */
export interface Music {
/** Audio stream. (AudioStream) */
stream: AudioStream
/** Total number of frames (considering channels). (unsigned int) */
frameCount: number
/** Music looping enable. (bool) */
looping: boolean
/** Type of music context (audio filetype). (int) */
ctxType: number
/** Audio context data, depends on type. (void *) */
ctxData: number
}
/** VrDeviceInfo, Head-Mounted-Display device parameters */
export interface VrDeviceInfo {
/** Horizontal resolution in pixels. (int) */
hResolution: number
/** Vertical resolution in pixels. (int) */
vResolution: number
/** Horizontal size in meters. (float) */
hScreenSize: number
/** Vertical size in meters. (float) */
vScreenSize: number
/** Distance between eye and display in meters. (float) */
eyeToScreenDistance: number
/** Lens separation distance in meters. (float) */
lensSeparationDistance: number
/** IPD (distance between pupils) in meters. (float) */
interpupillaryDistance: number
/** Lens distortion constant parameters. (float[4]) */
lensDistortionValues: number
/** Chromatic aberration correction parameters. (float[4]) */
chromaAbCorrection: number
}
/** VrStereoConfig, VR stereo rendering configuration for simulator */
export interface VrStereoConfig {
/** VR projection matrices (per eye). (Matrix[2]) */
projection: number
/** VR view offset matrices (per eye). (Matrix[2]) */
viewOffset: number
/** VR left lens center. (float[2]) */
leftLensCenter: number
/** VR right lens center. (float[2]) */
rightLensCenter: number
/** VR left screen center. (float[2]) */
leftScreenCenter: number
/** VR right screen center. (float[2]) */
rightScreenCenter: number
/** VR distortion scale. (float[2]) */
scale: number
/** VR distortion scale in. (float[2]) */
scaleIn: number
}
/** File path list */
export interface FilePathList {
/** Filepaths max entries. (unsigned int) */
capacity: number
/** Filepaths entries count. (unsigned int) */
count: number
/** Filepaths entries. (char **) */
paths: number
}
/** Automation event */
export interface AutomationEvent {
/** Event frame. (unsigned int) */
frame: number
/** Event type (AutomationEventType). (unsigned int) */
type: number
/** Event parameters (if required). (int[4]) */
params: number
}
/** Automation event list */
export interface AutomationEventList {
/** Events max entries (MAX_AUTOMATION_EVENTS). (unsigned int) */
capacity: number
/** Events entries count. (unsigned int) */
count: number
/** Events entries. (AutomationEvent *) */
events: number
}
/** Dynamic vertex buffers (position + texcoords + colors + indices arrays) */
export interface rlVertexBuffer {
/** Number of elements in the buffer (QUADS). (int) */
elementCount: number
/** Vertex position (XYZ - 3 components per vertex) (shader-location = 0). (float *) */
vertices: number
/** Vertex texture coordinates (UV - 2 components per vertex) (shader-location = 1). (float *) */
texcoords: number
/** Vertex normal (XYZ - 3 components per vertex) (shader-location = 2). (float *) */
normals: number
/** Vertex indices (in case vertex data comes indexed) (6 indices per quad). (unsigned int *) */
indices: number
/** OpenGL Vertex Array Object id. (unsigned int) */
vaoId: number
/** OpenGL Vertex Buffer Objects id (5 types of vertex data). (unsigned int[5]) */
vboId: number
}
/** of those state-change happens (this is done in core module) */
export interface rlDrawCall {
/** Drawing mode: LINES, TRIANGLES, QUADS. (int) */
mode: number
/** Number of vertex of the draw. (int) */
vertexCount: number
/** Number of vertex required for index alignment (LINES, TRIANGLES). (int) */
vertexAlignment: number
/** Texture id to be used on the draw -> Use to create new draw call if changes. (unsigned int) */
textureId: number
}
/** rlRenderBatch type */
export interface rlRenderBatch {
/** Number of vertex buffers (multi-buffering support). (int) */
bufferCount: number
/** Current buffer tracking in case of multi-buffering. (int) */
currentBuffer: number
/** Dynamic buffer(s) for vertex data. (rlVertexBuffer *) */
vertexBuffer: number
/** Draw calls array, depends on textureId. (rlDrawCall *) */
draws: number
/** Draw calls counter. (int) */
drawCounter: number
/** Current depth value for next draw. (float) */
currentDepth: number
}
/** RenderTexture, fbo for texture rendering */
export type RenderTexture2D = RenderTexture
/** Texture, tex data stored in GPU memory (VRAM) */
export type Texture2D = Texture
/** Texture, tex data stored in GPU memory (VRAM) */
export type TextureCubemap = Texture
/** Camera, defines position/orientation in 3d space */
export type Camera = Camera3D | Camera2D
/** Quaternion, same as Vector4 */
export type Quaternion = Vector4
/** Initialize window and OpenGL context */
export function InitWindow(width: number, height: number, title: string): void
/** Close window and unload OpenGL context */
export function CloseWindow(): void
/** Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) */
export function WindowShouldClose(): boolean
/** Check if window has been initialized successfully */
export function IsWindowReady(): boolean
/** Check if window is currently fullscreen */
export function IsWindowFullscreen(): boolean
/** Check if window is currently hidden */
export function IsWindowHidden(): boolean
/** Check if window is currently minimized */
export function IsWindowMinimized(): boolean
/** Check if window is currently maximized */
export function IsWindowMaximized(): boolean
/** Check if window is currently focused */
export function IsWindowFocused(): boolean
/** Check if window has been resized last frame */
export function IsWindowResized(): boolean
/** Check if one specific window flag is enabled */
export function IsWindowState(flag: number): boolean
/** Set window configuration state using flags */
export function SetWindowState(flags: number): void
/** Clear window configuration state flags */
export function ClearWindowState(flags: number): void
/** Toggle window state: fullscreen/windowed, resizes monitor to match window resolution */
export function ToggleFullscreen(): void
/** Toggle window state: borderless windowed, resizes window to match monitor resolution */
export function ToggleBorderlessWindowed(): void
/** Set window state: maximized, if resizable */
export function MaximizeWindow(): void
/** Set window state: minimized, if resizable */
export function MinimizeWindow(): void
/** Set window state: not minimized/maximized */
export function RestoreWindow(): void
/** Set icon for window (single image, RGBA 32bit) */
export function SetWindowIcon(image: Image): void
/** Set icon for window (multiple images, RGBA 32bit) */
export function SetWindowIcons(images: number, count: number): void
/** Set title for window */
export function SetWindowTitle(title: string): void
/** Set window position on screen */
export function SetWindowPosition(x: number, y: number): void
/** Set monitor for the current window */
export function SetWindowMonitor(monitor: number): void
/** Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) */
export function SetWindowMinSize(width: number, height: number): void
/** Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) */
export function SetWindowMaxSize(width: number, height: number): void
/** Set window dimensions */
export function SetWindowSize(width: number, height: number): void
/** Set window opacity [0.0f..1.0f] */
export function SetWindowOpacity(opacity: number): void
/** Set window focused */
export function SetWindowFocused(): void
/** Get native window handle */
export function GetWindowHandle(): number
/** Get current screen width */
export function GetScreenWidth(): number
/** Get current screen height */
export function GetScreenHeight(): number
/** Get current render width (it considers HiDPI) */
export function GetRenderWidth(): number
/** Get current render height (it considers HiDPI) */
export function GetRenderHeight(): number
/** Get number of connected monitors */
export function GetMonitorCount(): number
/** Get current monitor where window is placed */
export function GetCurrentMonitor(): number
/** Get specified monitor position */
export function GetMonitorPosition(monitor: number): Vector2
/** Get specified monitor width (current video mode used by monitor) */
export function GetMonitorWidth(monitor: number): number
/** Get specified monitor height (current video mode used by monitor) */
export function GetMonitorHeight(monitor: number): number
/** Get specified monitor physical width in millimetres */
export function GetMonitorPhysicalWidth(monitor: number): number
/** Get specified monitor physical height in millimetres */
export function GetMonitorPhysicalHeight(monitor: number): number
/** Get specified monitor refresh rate */
export function GetMonitorRefreshRate(monitor: number): number
/** Get window position XY on monitor */
export function GetWindowPosition(): Vector2
/** Get window scale DPI factor */
export function GetWindowScaleDPI(): Vector2
/** Get the human-readable, UTF-8 encoded name of the specified monitor */
export function GetMonitorName(monitor: number): string
/** Set clipboard text content */
export function SetClipboardText(text: string): void
/** Get clipboard text content */
export function GetClipboardText(): string
/** Get clipboard image content */
export function GetClipboardImage(): Image
/** Enable waiting for events on EndDrawing(), no automatic event polling */
export function EnableEventWaiting(): void
/** Disable waiting for events on EndDrawing(), automatic events polling */
export function DisableEventWaiting(): void
/** Shows cursor */
export function ShowCursor(): void
/** Hides cursor */
export function HideCursor(): void
/** Check if cursor is not visible */
export function IsCursorHidden(): boolean
/** Enables cursor (unlock cursor) */
export function EnableCursor(): void
/** Disables cursor (lock cursor) */
export function DisableCursor(): void
/** Check if cursor is on the screen */
export function IsCursorOnScreen(): boolean
/** Set background color (framebuffer clear color) */
export function ClearBackground(color: Color): void
/** Setup canvas (framebuffer) to start drawing */
export function BeginDrawing(): void
/** End canvas drawing and swap buffers (double buffering) */
export function EndDrawing(): void
/** Begin 2D mode with custom camera (2D) */
export function BeginMode2D(camera: Camera2D): void
/** Ends 2D mode with custom camera */
export function EndMode2D(): void
/** Begin 3D mode with custom camera (3D) */
export function BeginMode3D(camera: Camera3D): void
/** Ends 3D mode and returns to default 2D orthographic mode */
export function EndMode3D(): void
/** Begin drawing to render texture */
export function BeginTextureMode(target: RenderTexture): void
/** Ends drawing to render texture */
export function EndTextureMode(): void
/** Begin custom shader drawing */
export function BeginShaderMode(shader: Shader): void
/** End custom shader drawing (use default shader) */
export function EndShaderMode(): void
/** Begin blending mode (alpha, additive, multiplied, subtract, custom) */
export function BeginBlendMode(mode: number): void
/** End blending mode (reset to default: alpha blending) */
export function EndBlendMode(): void
/** Begin scissor mode (define screen area for following drawing) */
export function BeginScissorMode(x: number, y: number, width: number, height: number): void
/** End scissor mode */
export function EndScissorMode(): void
/** End stereo rendering (requires VR simulator) */
export function EndVrStereoMode(): void
/** Load shader from files and bind default locations */
export function LoadShader(vsFileName: string, fsFileName: string): Shader
/** Load shader from code strings and bind default locations */
export function LoadShaderFromMemory(vsCode: string, fsCode: string): Shader
/** Check if a shader is valid (loaded on GPU) */
export function IsShaderValid(shader: Shader): boolean
/** Get shader uniform location */
export function GetShaderLocation(shader: Shader, uniformName: string): number
/** Get shader attribute location */
export function GetShaderLocationAttrib(shader: Shader, attribName: string): number
/** Set shader uniform value (matrix 4x4) */
export function SetShaderValueMatrix(shader: Shader, locIndex: number, mat: Matrix): void
/** Set shader uniform value for texture (sampler2d) */
export function SetShaderValueTexture(shader: Shader, locIndex: number, texture: Texture): void
/** Unload shader from GPU memory (VRAM) */
export function UnloadShader(shader: Shader): void
/** Get a ray trace from screen position (i.e mouse) */
export function GetScreenToWorldRay(position: Vector2, camera: Camera3D): Ray
/** Get a ray trace from screen position (i.e mouse) in a viewport */
export function GetScreenToWorldRayEx(position: Vector2, camera: Camera3D, width: number, height: number): Ray
/** Get the screen space position for a 3d world space position */
export function GetWorldToScreen(position: Vector3, camera: Camera3D): Vector2
/** Get size position for a 3d world space position */
export function GetWorldToScreenEx(position: Vector3, camera: Camera3D, width: number, height: number): Vector2
/** Get the screen space position for a 2d camera world space position */
export function GetWorldToScreen2D(position: Vector2, camera: Camera2D): Vector2
/** Get the world space position for a 2d camera screen space position */
export function GetScreenToWorld2D(position: Vector2, camera: Camera2D): Vector2
/** Get camera transform matrix (view matrix) */
export function GetCameraMatrix(camera: Camera3D): Matrix
/** Get camera 2d transform matrix */
export function GetCameraMatrix2D(camera: Camera2D): Matrix
/** Set target FPS (maximum) */
export function SetTargetFPS(fps: number): void
/** Get time in seconds for last frame drawn (delta time) */
export function GetFrameTime(): number
/** Get elapsed time in seconds since InitWindow() */
export function GetTime(): number
/** Get current FPS */
export function GetFPS(): number
/** Swap back buffer with front buffer (screen drawing) */
export function SwapScreenBuffer(): void
/** Register all input events */
export function PollInputEvents(): void
/** Wait for some time (halt program execution) */
export function WaitTime(seconds: number): void
/** Set the seed for the random number generator */
export function SetRandomSeed(seed: number): void
/** Get a random value between min and max (both included) */
export function GetRandomValue(min: number, max: number): number
/** Load random values sequence, no values repeated */
export function LoadRandomSequence(count: number, min: number, max: number): number
/** Unload random values sequence */
export function UnloadRandomSequence(sequence: number): void
/** Takes a screenshot of current screen (filename extension defines format) */
export function TakeScreenshot(fileName: string): void
/** Setup init configuration flags (view FLAGS) */
export function SetConfigFlags(flags: number): void
/** Open URL with default system browser (if available) */
export function OpenURL(url: string): void
/** Set the current threshold (minimum) log level */
export function SetTraceLogLevel(logLevel: number): void
/** Internal memory allocator */
export function MemAlloc(size: number): number
/** Internal memory reallocator */
export function MemRealloc(ptr: number, size: number): number
/** Internal memory free */
export function MemFree(ptr: number): void
/** Load file data as byte array (read) */
export function LoadFileData(fileName: string, dataSize: number): Buffer
/** Unload file data allocated by LoadFileData() */
export function UnloadFileData(data: Buffer): void
/** Save data to file from byte array (write), returns true on success */
export function SaveFileData(fileName: string, data: number, dataSize: number): boolean
/** Export data to code (.h), returns true on success */
export function ExportDataAsCode(data: Buffer, dataSize: number, fileName: string): boolean
/** Load text data from file (read), returns a '\0' terminated string */
export function LoadFileText(fileName: string): string
/** Unload file text data allocated by LoadFileText() */
export function UnloadFileText(text: string): void
/** Save text data to file (write), string must be '\0' terminated, returns true on success */
export function SaveFileText(fileName: string, text: string): boolean
/** Check if file exists */
export function FileExists(fileName: string): boolean
/** Check if a directory path exists */
export function DirectoryExists(dirPath: string): boolean
/** Check file extension (including point: .png, .wav) */
export function IsFileExtension(fileName: string, ext: string): boolean
/** Get file length in bytes (NOTE: GetFileSize() conflicts with windows.h) */
export function GetFileLength(fileName: string): number
/** Get pointer to extension for a filename string (includes dot: '.png') */
export function GetFileExtension(fileName: string): string
/** Get pointer to filename for a path string */
export function GetFileName(filePath: string): string
/** Get filename string without extension (uses static string) */
export function GetFileNameWithoutExt(filePath: string): string
/** Get full path for a given fileName with path (uses static string) */
export function GetDirectoryPath(filePath: string): string
/** Get previous directory path for a given path (uses static string) */
export function GetPrevDirectoryPath(dirPath: string): string
/** Get current working directory (uses static string) */
export function GetWorkingDirectory(): string
/** Get the directory of the running application (uses static string) */
export function GetApplicationDirectory(): string
/** Create directories (including full path requested), returns 0 on success */
export function MakeDirectory(dirPath: string): number
/** Change working directory, return true on success */
export function ChangeDirectory(dir: string): boolean
/** Check if a given path is a file or a directory */
export function IsPathFile(path: string): boolean
/** Check if fileName is valid for the platform/OS */
export function IsFileNameValid(fileName: string): boolean
/** Load directory filepaths */
export function LoadDirectoryFiles(dirPath: string): FilePathList
/** Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result */
export function LoadDirectoryFilesEx(basePath: string, filter: string, scanSubdirs: boolean): FilePathList
/** Unload filepaths */
export function UnloadDirectoryFiles(files: FilePathList): void
/** Check if a file has been dropped into window */
export function IsFileDropped(): boolean
/** Load dropped filepaths */
export function LoadDroppedFiles(): FilePathList
/** Unload dropped filepaths */
export function UnloadDroppedFiles(files: FilePathList): void
/** Get file modification time (last write time) */
export function GetFileModTime(fileName: string): number
/** Compress data (DEFLATE algorithm), memory must be MemFree() */
export function CompressData(data: Buffer, dataSize: number, compDataSize: number): Buffer
/** Decompress data (DEFLATE algorithm), memory must be MemFree() */
export function DecompressData(compData: Buffer, compDataSize: number, dataSize: number): Buffer
/** Encode data to Base64 string, memory must be MemFree() */
export function EncodeDataBase64(data: Buffer, dataSize: number, outputSize: number): string
/** Decode Base64 string data, memory must be MemFree() */
export function DecodeDataBase64(data: Buffer, outputSize: number): Buffer
/** Compute CRC32 hash code */
export function ComputeCRC32(data: Buffer, dataSize: number): number
/** Compute MD5 hash code, returns static int[4] (16 bytes) */
export function ComputeMD5(data: Buffer, dataSize: number): number
/** Compute SHA1 hash code, returns static int[5] (20 bytes) */
export function ComputeSHA1(data: Buffer, dataSize: number): number
/** Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS */
export function LoadAutomationEventList(fileName: string): AutomationEventList
/** Unload automation events list from file */
export function UnloadAutomationEventList(list: AutomationEventList): void
/** Export automation events list as text file */
export function ExportAutomationEventList(list: AutomationEventList, fileName: string): boolean
/** Set automation event list to record to */
export function SetAutomationEventList(list: number): void
/** Set automation event internal base frame to start recording */
export function SetAutomationEventBaseFrame(frame: number): void
/** Start recording automation events (AutomationEventList must be set) */
export function StartAutomationEventRecording(): void
/** Stop recording automation events */
export function StopAutomationEventRecording(): void
/** Play a recorded automation event */
export function PlayAutomationEvent(event: AutomationEvent): void
/** Check if a key has been pressed once */
export function IsKeyPressed(key: number): boolean
/** Check if a key has been pressed again */
export function IsKeyPressedRepeat(key: number): boolean
/** Check if a key is being pressed */
export function IsKeyDown(key: number): boolean
/** Check if a key has been released once */
export function IsKeyReleased(key: number): boolean
/** Check if a key is NOT being pressed */
export function IsKeyUp(key: number): boolean
/** Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty */
export function GetKeyPressed(): number
/** Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty */
export function GetCharPressed(): number
/** Set a custom key to exit program (default is ESC) */
export function SetExitKey(key: number): void
/** Check if a gamepad is available */
export function IsGamepadAvailable(gamepad: number): boolean
/** Get gamepad internal name id */
export function GetGamepadName(gamepad: number): string
/** Check if a gamepad button has been pressed once */
export function IsGamepadButtonPressed(gamepad: number, button: number): boolean
/** Check if a gamepad button is being pressed */
export function IsGamepadButtonDown(gamepad: number, button: number): boolean
/** Check if a gamepad button has been released once */
export function IsGamepadButtonReleased(gamepad: number, button: number): boolean
/** Check if a gamepad button is NOT being pressed */
export function IsGamepadButtonUp(gamepad: number, button: number): boolean
/** Get the last gamepad button pressed */
export function GetGamepadButtonPressed(): number
/** Get gamepad axis count for a gamepad */
export function GetGamepadAxisCount(gamepad: number): number
/** Get axis movement value for a gamepad axis */
export function GetGamepadAxisMovement(gamepad: number, axis: number): number
/** Set internal gamepad mappings (SDL_GameControllerDB) */
export function SetGamepadMappings(mappings: string): number
/** Set gamepad vibration for both motors (duration in seconds) */
export function SetGamepadVibration(gamepad: number, leftMotor: number, rightMotor: number, duration: number): void
/** Check if a mouse button has been pressed once */
export function IsMouseButtonPressed(button: number): boolean
/** Check if a mouse button is being pressed */
export function IsMouseButtonDown(button: number): boolean
/** Check if a mouse button has been released once */
export function IsMouseButtonReleased(button: number): boolean
/** Check if a mouse button is NOT being pressed */
export function IsMouseButtonUp(button: number): boolean
/** Get mouse position X */
export function GetMouseX(): number
/** Get mouse position Y */
export function GetMouseY(): number
/** Get mouse position XY */
export function GetMousePosition(): Vector2
/** Get mouse delta between frames */
export function GetMouseDelta(): Vector2
/** Set mouse position XY */
export function SetMousePosition(x: number, y: number): void
/** Set mouse offset */
export function SetMouseOffset(offsetX: number, offsetY: number): void
/** Set mouse scaling */
export function SetMouseScale(scaleX: number, scaleY: number): void
/** Get mouse wheel movement for X or Y, whichever is larger */
export function GetMouseWheelMove(): number
/** Get mouse wheel movement for both X and Y */
export function GetMouseWheelMoveV(): Vector2
/** Set mouse cursor */
export function SetMouseCursor(cursor: number): void
/** Get touch position X for touch point 0 (relative to screen size) */
export function GetTouchX(): number
/** Get touch position Y for touch point 0 (relative to screen size) */
export function GetTouchY(): number
/** Get touch position XY for a touch point index (relative to screen size) */
export function GetTouchPosition(index: number): Vector2
/** Get touch point identifier for given index */
export function GetTouchPointId(index: number): number
/** Get number of touch points */
export function GetTouchPointCount(): number
/** Enable a set of gestures using flags */
export function SetGesturesEnabled(flags: number): void
/** Check if a gesture have been detected */
export function IsGestureDetected(gesture: number): boolean
/** Get latest detected gesture */
export function GetGestureDetected(): number
/** Get gesture hold time in seconds */
export function GetGestureHoldDuration(): number
/** Get gesture drag vector */
export function GetGestureDragVector(): Vector2
/** Get gesture drag angle */
export function GetGestureDragAngle(): number
/** Get gesture pinch delta */
export function GetGesturePinchVector(): Vector2
/** Get gesture pinch angle */
export function GetGesturePinchAngle(): number
/** Update camera position for selected mode */
export function UpdateCamera(camera: Camera3D, mode: number): void
/** Update camera movement/rotation */
export function UpdateCameraPro(camera: number, movement: Vector3, rotation: Vector3, zoom: number): void
/** Set texture and rectangle to be used on shapes drawing */
export function SetShapesTexture(texture: Texture, source: Rectangle): void
/** Get texture that is used for shapes drawing */
export function GetShapesTexture(): Texture2D
/** Get texture source rectangle that is used for shapes drawing */
export function GetShapesTextureRectangle(): Rectangle
/** Draw a pixel using geometry [Can be slow, use with care] */
export function DrawPixel(posX: number, posY: number, color: Color): void
/** Draw a pixel using geometry (Vector version) [Can be slow, use with care] */
export function DrawPixelV(position: Vector2, color: Color): void
/** Draw a line */
export function DrawLine(startPosX: number, startPosY: number, endPosX: number, endPosY: number, color: Color): void
/** Draw a line (using gl lines) */
export function DrawLineV(startPos: Vector2, endPos: Vector2, color: Color): void
/** Draw a line (using triangles/quads) */
export function DrawLineEx(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void
/** Draw lines sequence (using gl lines) */
export function DrawLineStrip(points: number, pointCount: number, color: Color): void
/** Draw line segment cubic-bezier in-out interpolation */
export function DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: number, color: Color): void
/** Draw a color-filled circle */
export function DrawCircle(centerX: number, centerY: number, radius: number, color: Color): void
/** Draw a piece of a circle */
export function DrawCircleSector(center: Vector2, radius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw circle sector outline */
export function DrawCircleSectorLines(center: Vector2, radius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw a gradient-filled circle */
export function DrawCircleGradient(centerX: number, centerY: number, radius: number, inner: Color, outer: Color): void
/** Draw a color-filled circle (Vector version) */
export function DrawCircleV(center: Vector2, radius: number, color: Color): void
/** Draw circle outline */
export function DrawCircleLines(centerX: number, centerY: number, radius: number, color: Color): void
/** Draw circle outline (Vector version) */
export function DrawCircleLinesV(center: Vector2, radius: number, color: Color): void
/** Draw ellipse */
export function DrawEllipse(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void
/** Draw ellipse outline */
export function DrawEllipseLines(centerX: number, centerY: number, radiusH: number, radiusV: number, color: Color): void
/** Draw ring */
export function DrawRing(center: Vector2, innerRadius: number, outerRadius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw ring outline */
export function DrawRingLines(center: Vector2, innerRadius: number, outerRadius: number, startAngle: number, endAngle: number, segments: number, color: Color): void
/** Draw a color-filled rectangle */
export function DrawRectangle(posX: number, posY: number, width: number, height: number, color: Color): void
/** Draw a color-filled rectangle (Vector version) */
export function DrawRectangleV(position: Vector2, size: Vector2, color: Color): void
/** Draw a color-filled rectangle */
export function DrawRectangleRec(rec: Rectangle, color: Color): void
/** Draw a color-filled rectangle with pro parameters */
export function DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: number, color: Color): void
/** Draw a vertical-gradient-filled rectangle */
export function DrawRectangleGradientV(posX: number, posY: number, width: number, height: number, top: Color, bottom: Color): void
/** Draw a horizontal-gradient-filled rectangle */
export function DrawRectangleGradientH(posX: number, posY: number, width: number, height: number, left: Color, right: Color): void
/** Draw a gradient-filled rectangle with custom vertex colors */
export function DrawRectangleGradientEx(rec: Rectangle, topLeft: Color, bottomLeft: Color, topRight: Color, bottomRight: Color): void
/** Draw rectangle outline */
export function DrawRectangleLines(posX: number, posY: number, width: number, height: number, color: Color): void
/** Draw rectangle outline with extended parameters */
export function DrawRectangleLinesEx(rec: Rectangle, lineThick: number, color: Color): void
/** Draw rectangle with rounded edges */
export function DrawRectangleRounded(rec: Rectangle, roundness: number, segments: number, color: Color): void
/** Draw rectangle lines with rounded edges */
export function DrawRectangleRoundedLines(rec: Rectangle, roundness: number, segments: number, color: Color): void
/** Draw rectangle with rounded edges outline */
export function DrawRectangleRoundedLinesEx(rec: Rectangle, roundness: number, segments: number, lineThick: number, color: Color): void
/** Draw a color-filled triangle (vertex in counter-clockwise order!) */
export function DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color): void
/** Draw triangle outline (vertex in counter-clockwise order!) */
export function DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color): void
/** Draw a triangle fan defined by points (first vertex is the center) */
export function DrawTriangleFan(points: number, pointCount: number, color: Color): void
/** Draw a triangle strip defined by points */
export function DrawTriangleStrip(points: number, pointCount: number, color: Color): void
/** Draw a regular polygon (Vector version) */
export function DrawPoly(center: Vector2, sides: number, radius: number, rotation: number, color: Color): void
/** Draw a polygon outline of n sides */
export function DrawPolyLines(center: Vector2, sides: number, radius: number, rotation: number, color: Color): void
/** Draw a polygon outline of n sides with extended parameters */
export function DrawPolyLinesEx(center: Vector2, sides: number, radius: number, rotation: number, lineThick: number, color: Color): void
/** Draw spline: Linear, minimum 2 points */
export function DrawSplineLinear(points: number, pointCount: number, thick: number, color: Color): void
/** Draw spline: B-Spline, minimum 4 points */
export function DrawSplineBasis(points: number, pointCount: number, thick: number, color: Color): void
/** Draw spline: Catmull-Rom, minimum 4 points */
export function DrawSplineCatmullRom(points: number, pointCount: number, thick: number, color: Color): void
/** Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] */
export function DrawSplineBezierQuadratic(points: number, pointCount: number, thick: number, color: Color): void
/** Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] */
export function DrawSplineBezierCubic(points: number, pointCount: number, thick: number, color: Color): void
/** Draw spline segment: Linear, 2 points */
export function DrawSplineSegmentLinear(p1: Vector2, p2: Vector2, thick: number, color: Color): void
/** Draw spline segment: B-Spline, 4 points */
export function DrawSplineSegmentBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void
/** Draw spline segment: Catmull-Rom, 4 points */
export function DrawSplineSegmentCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, thick: number, color: Color): void
/** Draw spline segment: Quadratic Bezier, 2 points, 1 control point */
export function DrawSplineSegmentBezierQuadratic(p1: Vector2, c2: Vector2, p3: Vector2, thick: number, color: Color): void
/** Draw spline segment: Cubic Bezier, 2 points, 2 control points */
export function DrawSplineSegmentBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, thick: number, color: Color): void
/** Get (evaluate) spline point: Linear */
export function GetSplinePointLinear(startPos: Vector2, endPos: Vector2, t: number): Vector2
/** Get (evaluate) spline point: B-Spline */
export function GetSplinePointBasis(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2
/** Get (evaluate) spline point: Catmull-Rom */
export function GetSplinePointCatmullRom(p1: Vector2, p2: Vector2, p3: Vector2, p4: Vector2, t: number): Vector2
/** Get (evaluate) spline point: Quadratic Bezier */
export function GetSplinePointBezierQuad(p1: Vector2, c2: Vector2, p3: Vector2, t: number): Vector2
/** Get (evaluate) spline point: Cubic Bezier */
export function GetSplinePointBezierCubic(p1: Vector2, c2: Vector2, c3: Vector2, p4: Vector2, t: number): Vector2
/** Check collision between two rectangles */
export function CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle): boolean
/** Check collision between two circles */
export function CheckCollisionCircles(center1: Vector2, radius1: number, center2: Vector2, radius2: number): boolean
/** Check collision between circle and rectangle */
export function CheckCollisionCircleRec(center: Vector2, radius: number, rec: Rectangle): boolean
/** Check if circle collides with a line created betweeen two points [p1] and [p2] */
export function CheckCollisionCircleLine(center: Vector2, radius: number, p1: Vector2, p2: Vector2): boolean
/** Check if point is inside rectangle */
export function CheckCollisionPointRec(point: Vector2, rec: Rectangle): boolean
/** Check if point is inside circle */
export function CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: number): boolean
/** Check if point is inside a triangle */
export function CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2): b