import { Texture } from "../../textures/Texture.js"; import Node from "../core/Node.js"; import UniformNode from "../core/UniformNode.js"; import { NodeRepresentation, ShaderNodeObject } from "../tsl/TSLCore.js"; export default class TextureNode extends UniformNode { readonly isTextureNode: true; uvNode: ShaderNodeObject | null; levelNode: ShaderNodeObject | null; biasNode: ShaderNodeObject | null; compareNode: Node | null; depthNode: Node | null; gradNode: Node | null; sampler: boolean; updateMatrix: boolean; referenceNode: Node | null; constructor( value: Texture, uvNode?: ShaderNodeObject | null, levelNode?: ShaderNodeObject | null, biasNode?: ShaderNodeObject | null, ); getDefaultUV(): Node; setSampler(value: boolean): this; getSampler(): boolean; uv(uvNode: NodeRepresentation): ShaderNodeObject; blur(amountNode: NodeRepresentation): ShaderNodeObject; level(levelNode: NodeRepresentation): ShaderNodeObject; size(levelNode: NodeRepresentation): ShaderNodeObject; bias(biasNode: NodeRepresentation): ShaderNodeObject; compare(compareNode: NodeRepresentation): ShaderNodeObject; grad(gradeNodeX: NodeRepresentation, gradeNodeY: NodeRepresentation): ShaderNodeObject; depth(depthNode: NodeRepresentation): ShaderNodeObject; clone(): this; } export const texture: ( value: Texture, uvNode?: NodeRepresentation, levelNode?: NodeRepresentation, biasNode?: NodeRepresentation, ) => ShaderNodeObject; export const textureLoad: ( value: Texture, uvNode?: NodeRepresentation, levelNode?: NodeRepresentation, biasNode?: NodeRepresentation, ) => ShaderNodeObject; export const sampler: (aTexture: Texture | TextureNode) => ShaderNodeObject;