import type { Count, IndexOf16Bytes, SquareMatrixComponentN, VectorAndSquareMatrixComponentN, VectorComponentN } from '../../types/CommonTypes'; import type { Gltf2AccessorCompositionTypeString } from '../../types/glTF2'; import { EnumClass, type EnumIO } from '../misc/EnumIO'; import type { ComponentTypeEnum } from './ComponentType'; export interface CompositionTypeEnum extends EnumIO { webgpu: string; wgsl: string; getNumberOfComponents(): Count; getGlslStr(componentType: ComponentTypeEnum): string; getGlslInitialValue(componentType: ComponentTypeEnum): string; toWGSLType(componentType: ComponentTypeEnum): string; getWgslInitialValue(componentType: ComponentTypeEnum): string; getVec4SizeOfProperty(): IndexOf16Bytes; } declare class CompositionTypeClass extends EnumClass implements CompositionTypeEnum { readonly __numberOfComponents: number; readonly __glslStr: string; readonly __hlslStr: string; readonly __webgpuStr: string; readonly __wgslStr: string; readonly __isArray: boolean; readonly __vec4SizeOfProperty: IndexOf16Bytes; readonly __dummyStr: TypeName; constructor({ index, str, glslStr, hlslStr, wgsl, webgpu, numberOfComponents, vec4SizeOfProperty, isArray, }: { index: number; str: TypeName; glslStr: string; hlslStr: string; wgsl: string; webgpu: string; numberOfComponents: number; vec4SizeOfProperty: IndexOf16Bytes; isArray?: boolean; }); get webgpu(): string; get wgsl(): string; getNumberOfComponents(): Count; getGlslStr(componentType: ComponentTypeEnum): string; getGlslInitialValue(componentType: ComponentTypeEnum): string; getWgslInitialValue(componentType: ComponentTypeEnum): string; toWGSLType(componentType: ComponentTypeEnum): string; getVec4SizeOfProperty(): IndexOf16Bytes; } declare const Scalar: CompositionTypeClass<"SCALAR">; declare const Vec2: CompositionTypeClass<"VEC2">; declare const Vec3: CompositionTypeClass<"VEC3">; declare const Vec4: CompositionTypeClass<"VEC4">; declare const Mat2: CompositionTypeClass<"MAT2">; declare const Mat3: CompositionTypeClass<"MAT3">; declare const Mat4: CompositionTypeClass<"MAT4">; export type VectorCompositionTypes = typeof Scalar | typeof Vec2 | typeof Vec3 | typeof Vec4; declare function from(index: number): CompositionTypeEnum; declare function fromString(str: string): CompositionTypeEnum; declare function vectorFrom(componentN: number): CompositionTypeEnum; declare function fromGlslString(str_: string): CompositionTypeEnum; declare function fromWgslString(str_: string): CompositionTypeEnum; declare function toGltf2AccessorCompositionTypeString(componentN: VectorAndSquareMatrixComponentN): Gltf2AccessorCompositionTypeString; declare function toGltf2AnimationAccessorCompositionTypeString(componentN: VectorComponentN): Gltf2AccessorCompositionTypeString; declare function toGltf2SquareMatrixAccessorCompositionTypeString(componentN: SquareMatrixComponentN): Gltf2AccessorCompositionTypeString; export type Gltf2AnimationAccessorCompositionType = typeof Scalar | typeof Vec2 | typeof Vec3 | typeof Vec4; export type Gltf2AccessorCompositionType = typeof Scalar | typeof Vec2 | typeof Vec3 | typeof Vec4 | typeof Mat2 | typeof Mat3 | typeof Mat4; declare function toGltf2AnimationAccessorCompositionType(componentN: VectorComponentN): Gltf2AnimationAccessorCompositionType; declare function isArray(compositionType: CompositionTypeEnum): boolean; declare function isTexture(compositionType: CompositionTypeEnum): boolean; declare function isTexture2D(compositionType: CompositionTypeEnum): boolean; declare function isTextureCube(compositionType: CompositionTypeEnum): boolean; export declare const CompositionType: Readonly<{ Unknown: CompositionTypeClass<"UNKNOWN">; Scalar: CompositionTypeClass<"SCALAR">; Vec2: CompositionTypeClass<"VEC2">; Vec3: CompositionTypeClass<"VEC3">; Vec4: CompositionTypeClass<"VEC4">; Mat2: CompositionTypeClass<"MAT2">; Mat3: CompositionTypeClass<"MAT3">; Mat4: CompositionTypeClass<"MAT4">; ScalarArray: CompositionTypeClass<"SCALAR_ARRAY">; Vec2Array: CompositionTypeClass<"VEC2_ARRAY">; Vec3Array: CompositionTypeClass<"VEC3_ARRAY">; Vec4Array: CompositionTypeClass<"VEC4_ARRAY">; Mat2Array: CompositionTypeClass<"MAT2_ARRAY">; Mat3Array: CompositionTypeClass<"MAT3_ARRAY">; Mat4Array: CompositionTypeClass<"MAT4_ARRAY">; Texture2D: CompositionTypeClass<"TEXTURE_2D">; Texture2DShadow: CompositionTypeClass<"TEXTURE_2D_SHADOW">; TextureCube: CompositionTypeClass<"TEXTURE_CUBE_MAP">; Texture2DRect: CompositionTypeClass<"TEXTURE_2D_RECT">; Texture2DArray: CompositionTypeClass<"TEXTURE_2D_ARRAY">; Mat4x3Array: CompositionTypeClass<"MAT4x3_ARRAY">; SpecularProps: CompositionTypeClass<"SPECULAR_PROPS">; VolumeProps: CompositionTypeClass<"VOLUME_PROPS">; ClearcoatProps: CompositionTypeClass<"CLEARCOAT_PROPS">; AnisotropyProps: CompositionTypeClass<"ANISOTROPY_PROPS">; SheenProps: CompositionTypeClass<"SHEEN_PROPS">; IridescenceProps: CompositionTypeClass<"IRIDESCENCE_PROPS">; DiffuseTransmissionProps: CompositionTypeClass<"DIFFUSE_TRANSMISSION_PROPS">; OcclusionProps: CompositionTypeClass<"OCCLUSION_PROPS">; EmissiveProps: CompositionTypeClass<"EMISSIVE_PROPS">; from: typeof from; fromString: typeof fromString; vectorFrom: typeof vectorFrom; fromGlslString: typeof fromGlslString; fromWgslString: typeof fromWgslString; isArray: typeof isArray; isTexture: typeof isTexture; isTexture2D: typeof isTexture2D; isTextureCube: typeof isTextureCube; toGltf2AnimationAccessorCompositionType: typeof toGltf2AnimationAccessorCompositionType; toGltf2AccessorCompositionTypeString: typeof toGltf2AccessorCompositionTypeString; toGltf2AnimationAccessorCompositionTypeString: typeof toGltf2AnimationAccessorCompositionTypeString; toGltf2SquareMatrixAccessorCompositionTypeString: typeof toGltf2SquareMatrixAccessorCompositionTypeString; }>; export {};