import { Color, Matrix2, Matrix3, Matrix4, Vector2, Vector3, Vector4 } from 'three'; import { Node as N } from 'three/webgpu'; declare const nodes: { readonly float: import('three/src/nodes/TSL.js').NumberFunction; readonly int: import('three/src/nodes/TSL.js').NumberFunction; readonly uint: import('three/src/nodes/TSL.js').NumberFunction; readonly bool: import('three/src/nodes/TSL.js').BooleanFunction; readonly vec2: import('three/src/nodes/TSL.js').Vector2Function; readonly ivec2: import('three/src/nodes/TSL.js').Vector2Function; readonly uvec2: import('three/src/nodes/TSL.js').Vector2Function; readonly bvec2: (node: N) => N; readonly vec3: import('three/src/nodes/TSL.js').Vector3Function; readonly ivec3: import('three/src/nodes/TSL.js').Vector3Function; readonly uvec3: import('three/src/nodes/TSL.js').Vector3Function; readonly bvec3: (node: N) => N; readonly vec4: import('three/src/nodes/TSL.js').Vector4Function; readonly ivec4: import('three/src/nodes/TSL.js').Vector4Function; readonly uvec4: import('three/src/nodes/TSL.js').Vector4Function; readonly bvec4: (node: N) => N; readonly mat2: import('three/src/nodes/TSL.js').Matrix2Function; readonly mat3: import('three/src/nodes/TSL.js').Matrix3Function; readonly mat4: import('three/src/nodes/TSL.js').Matrix4Function; readonly color: import('three/src/nodes/TSL.js').ColorFunction; }; export type NodeType = keyof typeof nodes; export type NodeValueType = number | boolean | Vector2 | Vector3 | Vector4 | Matrix2 | Matrix3 | Matrix4 | Color; export type NodeTypeOf = T extends number ? 'float' : T extends boolean ? 'bool' : T extends Vector2 ? 'vec2' : T extends Vector3 ? 'vec3' : T extends Vector4 ? 'vec4' : T extends Matrix2 ? 'mat2' : T extends Matrix3 ? 'mat3' : T extends Matrix4 ? 'mat4' : T extends Color ? 'color' : never; export type NodeValueTypeOf = T extends 'float' | 'int' | 'uint' ? number : T extends 'bool' ? boolean : T extends 'vec2' | 'ivec2' | 'uvec2' | 'bvec2' ? Vector2 : T extends 'vec3' | 'ivec3' | 'uvec3' | 'bvec3' ? Vector3 : T extends 'vec4' | 'ivec4' | 'uvec4' | 'bvec4' ? Vector4 : T extends 'mat2' ? Matrix2 : T extends 'mat3' ? Matrix3 : T extends 'mat4' ? Matrix4 : T extends 'color' ? Color : never; export type Node = N; export declare const Node: typeof N; export declare function node(type: T): (typeof nodes)[T]; export {};