@viji-dev/core
Version:
Universal execution engine for Viji Creative scenes
302 lines (275 loc) • 11.2 kB
TypeScript
/**
* @fileoverview Viji Artist API - JavaScript IntelliSense Support
* Auto-generated from TypeScript definitions - DO NOT EDIT MANUALLY
*/
/**
* Configuration for slider parameters
* @typedef {Object} SliderConfig
* @property {number} [min] - min property
* @property {number} [max] - max property
* @property {number} [step] - step property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Configuration for color parameters
* @typedef {Object} ColorConfig
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Configuration for toggle parameters
* @typedef {Object} ToggleConfig
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Configuration for select parameters
* @typedef {Object} SelectConfig
* @property {string[] | number[]} options - options property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Configuration for text parameters
* @typedef {Object} TextConfig
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
* @property {number} [maxLength] - maxLength property
*/
/**
* Configuration for number parameters
* @typedef {Object} NumberConfig
* @property {number} [min] - min property
* @property {number} [max] - max property
* @property {number} [step] - step property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Configuration for image parameters
* @typedef {Object} ImageConfig
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} [group] - group property
* @property {ParameterCategory} [category] - category property
*/
/**
* Parameter object for slider parameters
* @typedef {Object} SliderParameter
* @property {number} value - value property
* @property {number} min - min property
* @property {number} max - max property
* @property {number} step - step property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for color parameters
* @typedef {Object} ColorParameter
* @property {string} value - value property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for toggle parameters
* @typedef {Object} ToggleParameter
* @property {boolean} value - value property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for select parameters
* @typedef {Object} SelectParameter
* @property {string | number} value - value property
* @property {string[] | number[]} options - options property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for text parameters
* @typedef {Object} TextParameter
* @property {string} value - value property
* @property {number} [maxLength] - maxLength property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for number parameters
* @typedef {Object} NumberParameter
* @property {number} value - value property
* @property {number} min - min property
* @property {number} max - max property
* @property {number} step - step property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Parameter object for image parameters
* @typedef {Object} ImageParameter
* @property {ImageBitmap | OffscreenCanvas |null} value - value property
* @property {string} label - label property
* @property {string} [description] - description property
* @property {string} group - group property
* @property {ParameterCategory} category - category property
*/
/**
* Audio analysis API - provides real-time audio data and frequency analysis
* @typedef {Object} AudioAPI
* @property {boolean} isConnected - isConnected property
* @property {{} volume - volume property
* @property {number} rms - rms property
* @property {number} peak - peak property
*/
/**
* Video frame API - provides access to video stream and computer vision data
* @typedef {Object} VideoAPI
* @property {boolean} isConnected - isConnected property
* @property {OffscreenCanvas |null} currentFrame - currentFrame property
* @property {number} frameWidth - frameWidth property
* @property {number} frameHeight - frameHeight property
* @property {number} frameRate - frameRate property
* @property {() => ImageData |null} getFrameData - getFrameData property
* @property {FaceData[]} faces - faces property
* @property {HandData[]} hands - hands property
* @property {PoseData |null} pose - pose property
* @property {SegmentationData |null} segmentation - segmentation property
* @property {{} cv - cv property
*/
/**
* Mouse interaction API
* @typedef {Object} MouseAPI
* @property {number} x - x property
* @property {number} y - y property
* @property {boolean} isInCanvas - isInCanvas property
* @property {boolean} isPressed - isPressed property
* @property {boolean} leftButton - leftButton property
* @property {boolean} rightButton - rightButton property
* @property {boolean} middleButton - middleButton property
* @property {{} velocity - velocity property
* @property {number} x - x property
* @property {number} y - y property
*/
/**
* Keyboard interaction API
* @typedef {Object} KeyboardAPI
* @property {Set<string>} activeKeys - activeKeys property
* @property {Set<string>} pressedThisFrame - pressedThisFrame property
* @property {Set<string>} releasedThisFrame - releasedThisFrame property
* @property {string} lastKeyPressed - lastKeyPressed property
* @property {string} lastKeyReleased - lastKeyReleased property
* @property {boolean} shift - shift property
* @property {boolean} ctrl - ctrl property
* @property {boolean} alt - alt property
* @property {boolean} meta - meta property
*/
/**
* Touch interaction API
* @typedef {Object} TouchAPI
* @property {TouchPoint[]} points - points property
* @property {number} count - count property
* @property {TouchPoint[]} started - started property
* @property {TouchPoint[]} moved - moved property
* @property {TouchPoint[]} ended - ended property
* @property {TouchPoint |null} primary - primary property
* @property {TouchGestureAPI} gestures - gestures property
*/
/**
* Main Viji Artist API - provides access to canvas, timing, audio, video, and interactions
* @typedef {Object} VijiAPI
* @property {OffscreenCanvas} canvas - canvas property
* @property {OffscreenCanvasRenderingContext2D} [ctx] - ctx property
* @property {WebGL2RenderingContext} [gl] - gl property
* @property {number} width - width property
* @property {number} height - height property
* @property {number} pixelRatio - pixelRatio property
* @property {number} time - time property
* @property {number} deltaTime - deltaTime property
* @property {number} frameCount - frameCount property
* @property {number} fps - fps property
* @property {AudioAPI} audio - audio property
* @property {VideoAPI} video - video property
* @property {MouseAPI} mouse - mouse property
* @property {KeyboardAPI} keyboard - keyboard property
* @property {TouchAPI} touches - touches property
* @property {(defaultValue: number, config: SliderConfig) => SliderParameter} slider - slider property
* @property {(defaultValue: string, config: ColorConfig) => ColorParameter} color - color property
* @property {(defaultValue: boolean, config: ToggleConfig) => ToggleParameter} toggle - toggle property
* @property {(defaultValue: string | number, config: SelectConfig) => SelectParameter} select - select property
* @property {(defaultValue: string, config: TextConfig) => TextParameter} text - text property
* @property {(defaultValue: number, config: NumberConfig) => NumberParameter} number - number property
* @property {(defaultValue: null, config: ImageConfig) => ImageParameter} image - image property
*/
/**
* FaceData interface
* @typedef {Object} FaceData
* @property {number} id - id property
* @property {{} bounds - bounds property
* @property {number} x - x property
* @property {number} y - y property
* @property {number} width - width property
* @property {number} height - height property
*/
/**
* HandData interface
* @typedef {Object} HandData
* @property {number} id - id property
* @property {'left' | 'right'} handedness - handedness property
* @property {number} confidence - confidence property
* @property {{} bounds - bounds property
* @property {number} x - x property
* @property {number} y - y property
* @property {number} width - width property
* @property {number} height - height property
*/
/**
* PoseData interface
* @typedef {Object} PoseData
* @property {number} confidence - confidence property
* @property {{} landmarks - landmarks property
* @property {number} x - x property
* @property {number} y - y property
* @property {number} z - z property
* @property {number} visibility - visibility property
*/
/**
* SegmentationData interface
* @typedef {Object} SegmentationData
* @property {Uint8Array} mask - mask property
* @property {number} width - width property
* @property {number} height - height property
*/
/**
* Global viji object available in artist code
* @type {VijiAPI}
*/
declare const viji;
/**
* Artist render function - called every frame
* @param {VijiAPI} viji - The viji API object with all capabilities
*/
declare function render(viji): void;