@instruktlabs/kiln 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +86 -1
  4. package/README.md +18 -0
  5. package/dist/agent-run.mjs +6392 -1477
  6. package/dist/build.json +23 -23
  7. package/dist/cli.mjs +8453 -3407
  8. package/dist/evaluator-worker.mjs +16608 -12387
  9. package/dist/mcp-engine.mjs +6746 -1725
  10. package/dist/mcp-server.mjs +4 -4
  11. package/dist/viewer/app.js +203 -199
  12. package/dist/viewer/chat.html +209 -205
  13. package/dist/viewer/style.css +10 -0
  14. package/docs/atlas-provenance.md +23 -0
  15. package/docs/community-exporter.md +27 -0
  16. package/docs/export-profiles.md +20 -0
  17. package/docs/install.md +7 -6
  18. package/docs/material-library.md +9 -5
  19. package/docs/migration.md +16 -0
  20. package/docs/procedural-surfaces-v3.md +276 -0
  21. package/docs/projects-and-live-review.md +1 -1
  22. package/docs/rendering.md +41 -0
  23. package/docs/runtime.md +3 -3
  24. package/docs/sdk.md +55 -2
  25. package/docs/tools-operations.md +2 -2
  26. package/docs/tools.md +3 -3
  27. package/lib/asset-materials-node.d.ts +3 -3
  28. package/lib/asset-materials-node.js +29 -33
  29. package/lib/assets-node.d.ts +1 -1
  30. package/lib/assets-node.js +11 -4
  31. package/lib/assets.d.ts +4 -2
  32. package/lib/assets.js +61 -16
  33. package/lib/atlas-provenance.d.ts +86 -0
  34. package/lib/atlas-provenance.js +448 -0
  35. package/lib/character.d.ts +11 -2
  36. package/lib/character.js +90 -2
  37. package/lib/community-exporter.d.ts +3 -2
  38. package/lib/community-exporter.js +139 -3
  39. package/lib/discovery/helper-contracts.js +161 -7
  40. package/lib/discovery/helper-specs.js +49 -4
  41. package/lib/discovery/shapes.js +20 -7
  42. package/lib/engine-identity.d.ts +1 -1
  43. package/lib/engine-identity.js +1 -1
  44. package/lib/evaluator/authoring-diagnostic.d.ts +1 -1
  45. package/lib/evaluator/authoring-diagnostic.js +12 -0
  46. package/lib/evaluator/protocol.d.ts +2 -2
  47. package/lib/evaluator/protocol.js +16 -6
  48. package/lib/evaluator/subprocess.js +2 -2
  49. package/lib/exporter-node.js +9 -1
  50. package/lib/geometry-budget.d.ts +7 -0
  51. package/lib/geometry-budget.js +8 -0
  52. package/lib/gltf-texture-binding.d.ts +6 -0
  53. package/lib/gltf-texture-binding.js +54 -0
  54. package/lib/material-authoring-node.d.ts +6 -0
  55. package/lib/material-authoring-node.js +49 -0
  56. package/lib/material-authoring-schema.d.ts +871 -0
  57. package/lib/material-authoring-schema.js +310 -0
  58. package/lib/material-export.d.ts +5 -0
  59. package/lib/material-export.js +21 -0
  60. package/lib/material-library-node.d.ts +34 -8
  61. package/lib/material-library-node.js +691 -11
  62. package/lib/material-library.d.ts +3704 -4
  63. package/lib/material-library.js +272 -0
  64. package/lib/mcp-core.d.ts +1 -1
  65. package/lib/pinned-material-map.d.ts +33 -0
  66. package/lib/pinned-material-map.js +1 -0
  67. package/lib/portable-material-runtime.d.ts +5 -0
  68. package/lib/portable-material-runtime.js +160 -0
  69. package/lib/portable-sampler-runtime.d.ts +4 -0
  70. package/lib/portable-sampler-runtime.js +26 -0
  71. package/lib/portable-sampler.d.ts +11 -0
  72. package/lib/portable-sampler.js +42 -0
  73. package/lib/primitives.d.ts +15 -3
  74. package/lib/primitives.js +24 -4
  75. package/lib/procedural-material-v2.d.ts +2 -0
  76. package/lib/procedural-material-v2.js +2 -1
  77. package/lib/procedural-material-v3.d.ts +72 -0
  78. package/lib/procedural-material-v3.js +162 -0
  79. package/lib/procedural-texture-v2-compiler.d.ts +31 -0
  80. package/lib/procedural-texture-v2-compiler.js +172 -0
  81. package/lib/procedural-texture-v3-contract.d.ts +125 -0
  82. package/lib/procedural-texture-v3-contract.js +333 -0
  83. package/lib/procedural-texture-v3.d.ts +12 -0
  84. package/lib/procedural-texture-v3.js +165 -0
  85. package/lib/procedural-texture.d.ts +9 -31
  86. package/lib/procedural-texture.js +43 -170
  87. package/lib/project-bundle-node.d.ts +1 -1
  88. package/lib/project-bundle-node.js +70 -13
  89. package/lib/project-bundle.d.ts +91 -3
  90. package/lib/project-bundle.js +48 -7
  91. package/lib/qa/atlas.d.ts +21 -0
  92. package/lib/qa/atlas.js +474 -0
  93. package/lib/qa/index.d.ts +1 -0
  94. package/lib/qa/index.js +1 -0
  95. package/lib/qa/material.js +2 -0
  96. package/lib/qa/skin-integrity.d.ts +18 -0
  97. package/lib/qa/skin-integrity.js +221 -0
  98. package/lib/render-service-host.js +4 -7
  99. package/lib/render.d.ts +3 -3
  100. package/lib/render.js +108 -16
  101. package/lib/skin-binding.d.ts +20 -0
  102. package/lib/skin-binding.js +144 -0
  103. package/lib/texture-atlas-contract.d.ts +97 -0
  104. package/lib/texture-atlas-contract.js +414 -0
  105. package/lib/texture-atlas-pixels.d.ts +73 -0
  106. package/lib/texture-atlas-pixels.js +290 -0
  107. package/lib/texture-atlas.d.ts +10 -0
  108. package/lib/texture-atlas.js +143 -0
  109. package/lib/texture-bake.d.ts +3 -0
  110. package/lib/texture-bake.js +66 -11
  111. package/lib/texture-resolver.d.ts +22 -0
  112. package/lib/texture-resolver.js +24 -0
  113. package/lib/tools/materials.js +8 -7
  114. package/lib/tools/registry.js +5 -16
  115. package/lib/tools/review.js +1 -1
  116. package/lib/uv-data.d.ts +32 -0
  117. package/lib/uv-data.js +172 -0
  118. package/lib/uv-shapes.js +3 -0
  119. package/lib/uv.d.ts +9 -3
  120. package/lib/uv.js +53 -82
  121. package/lib/views/camera.d.ts +3 -3
  122. package/lib/views/camera.js +32 -28
  123. package/lib/views/face-policy.d.ts +9 -0
  124. package/lib/views/face-policy.js +16 -0
  125. package/lib/views/glb.js +218 -24
  126. package/lib/views/pose.d.ts +7 -1
  127. package/lib/views/pose.js +63 -12
  128. package/lib/views/raster.d.ts +6 -2
  129. package/lib/views/raster.js +49 -37
  130. package/lib/views/scene-copy.d.ts +6 -0
  131. package/lib/views/scene-copy.js +73 -0
  132. package/lib/views/scene-raster.js +2 -1
  133. package/lib/views/triangle-coverage.d.ts +8 -0
  134. package/lib/views/triangle-coverage.js +58 -0
  135. package/lib/workspace-node.js +7 -3
  136. package/lib/workspace.d.ts +2 -2
  137. package/package.json +3 -1
  138. package/plugin.json +1 -1
  139. package/plugins/kiln-engine/.claude-plugin/plugin.json +1 -1
  140. package/plugins/kiln-engine/README.md +3 -3
  141. package/plugins/kiln-engine/package-provenance.json +6 -6
  142. package/plugins/kiln-engine/plugin.json +1 -1
  143. package/plugins/kiln-engine/runtime.json +1 -1
  144. package/skills/kiln-author-asset/SKILL.md +1 -1
  145. package/skills/kiln-author-asset/references/camera-cli.md +13 -0
  146. package/skills/kiln-author-asset/references/geometry-recipes.md +134 -0
  147. package/skills/kiln-author-asset/references/projects-and-materials.md +32 -2
  148. package/skills/kiln-compose-scene/references/runtime-scenes.md +19 -0
  149. package/skills/kiln-qa-asset/references/integration-checks.md +37 -2
  150. package/src/asset-materials-node.ts +38 -45
  151. package/src/assets-node.ts +22 -5
  152. package/src/assets.ts +61 -20
  153. package/src/atlas-provenance.ts +522 -0
  154. package/src/character.ts +107 -2
  155. package/src/community-exporter.ts +143 -3
  156. package/src/discovery/helper-contracts.ts +188 -7
  157. package/src/discovery/helper-specs.ts +69 -4
  158. package/src/discovery/shapes.ts +25 -9
  159. package/src/engine-identity.ts +1 -1
  160. package/src/evaluator/authoring-diagnostic.ts +19 -1
  161. package/src/evaluator/protocol.ts +19 -9
  162. package/src/evaluator/subprocess.ts +2 -2
  163. package/src/exporter-node.ts +12 -1
  164. package/src/generated/mcp-manifest.json +3 -3
  165. package/src/geometry-budget.ts +8 -0
  166. package/src/gltf-texture-binding.ts +60 -0
  167. package/src/material-authoring-node.ts +68 -0
  168. package/src/material-authoring-schema.ts +343 -0
  169. package/src/material-export.ts +25 -0
  170. package/src/material-library-node.ts +840 -16
  171. package/src/material-library.ts +348 -5
  172. package/src/pinned-material-map.ts +43 -0
  173. package/src/portable-material-runtime.ts +200 -0
  174. package/src/portable-sampler-runtime.ts +40 -0
  175. package/src/portable-sampler.ts +54 -0
  176. package/src/primitives.ts +98 -4
  177. package/src/procedural-material-v2.ts +2 -1
  178. package/src/procedural-material-v3.ts +224 -0
  179. package/src/procedural-texture-v2-compiler.ts +234 -0
  180. package/src/procedural-texture-v3-contract.ts +437 -0
  181. package/src/procedural-texture-v3.ts +220 -0
  182. package/src/procedural-texture.ts +61 -229
  183. package/src/project-bundle-node.ts +106 -14
  184. package/src/project-bundle.ts +61 -18
  185. package/src/project-cli.ts +29 -17
  186. package/src/qa/atlas.ts +597 -0
  187. package/src/qa/index.ts +1 -0
  188. package/src/qa/material.ts +2 -0
  189. package/src/qa/skin-integrity.ts +291 -0
  190. package/src/render-service-host.ts +4 -6
  191. package/src/render.ts +133 -15
  192. package/src/skin-binding.ts +225 -0
  193. package/src/texture-atlas-contract.ts +558 -0
  194. package/src/texture-atlas-pixels.ts +456 -0
  195. package/src/texture-atlas.ts +185 -0
  196. package/src/texture-bake.ts +88 -10
  197. package/src/texture-resolver.ts +55 -0
  198. package/src/tools/materials.ts +15 -11
  199. package/src/tools/registry.ts +5 -15
  200. package/src/tools/review.ts +1 -1
  201. package/src/uv-data.ts +238 -0
  202. package/src/uv-shapes.ts +3 -0
  203. package/src/uv.ts +73 -128
  204. package/src/viewer/app.ts +37 -0
  205. package/src/viewer/live-panel.ts +57 -1
  206. package/src/viewer/material-preview-panel.ts +140 -0
  207. package/src/viewer/material-preview.ts +138 -0
  208. package/src/viewer/materials-panel.ts +34 -5
  209. package/src/viewer/navigation.ts +2 -0
  210. package/src/views/camera.ts +37 -40
  211. package/src/views/face-policy.ts +20 -0
  212. package/src/views/glb.ts +294 -17
  213. package/src/views/pose.ts +71 -13
  214. package/src/views/raster.ts +73 -46
  215. package/src/views/scene-copy.ts +86 -0
  216. package/src/views/scene-raster.ts +2 -1
  217. package/src/views/triangle-coverage.ts +78 -0
  218. package/src/workspace-node.ts +11 -3
  219. package/src/workspace.ts +2 -2
@@ -1,6 +1,10 @@
1
1
  /** Portable material-library records. Source URLs are provenance, never loading instructions. */
2
2
  import { z } from 'zod';
3
3
  import { type CanonicalPortableMaterialSpecV2 } from "./procedural-material-v2.js";
4
+ import type { CanonicalPortableMaterialSpecV3 } from "./procedural-material-v3.js";
5
+ import { type CanonicalTextureAtlasSpecV1 } from "./texture-atlas-contract.js";
6
+ import type { TextureAtlasManifestV1 } from "./texture-atlas-pixels.js";
7
+ import type { MaterialMapPinV1 } from "./pinned-material-map.js";
4
8
  export declare const MATERIAL_LIBRARY_LIMITS: Readonly<{
5
9
  maxMapBytes: number;
6
10
  maxRecordBytes: number;
@@ -515,9 +519,13 @@ export interface MaterialLibraryPayloadV1 {
515
519
  }[];
516
520
  }
517
521
  export interface MaterialLibrary {
518
- list(): Promise<MaterialManifestV1[]>;
519
- read(materialId: string, revisionId: string): Promise<MaterialRecordV1>;
520
- import(records: MaterialRecordV1[]): Promise<MaterialManifestV1[]>;
522
+ list(): Promise<MaterialManifest[]>;
523
+ read(materialId: string, revisionId: string): Promise<MaterialRecord>;
524
+ readManifest?(materialId: string, revisionId: string): Promise<MaterialManifest>;
525
+ readRecordFiles?(materialId: string, revisionId: string): Promise<MaterialRecord>;
526
+ import(records: MaterialRecord[], options?: {
527
+ materials?: readonly MaterialRecord[];
528
+ }): Promise<MaterialManifest[]>;
521
529
  }
522
530
  export declare const materialLibraryPayloadSchema: z.ZodObject<{
523
531
  schemaVersion: z.ZodLiteral<1>;
@@ -727,5 +735,3697 @@ export declare function materialPngDimensions(bytes: Uint8Array): {
727
735
  height: number;
728
736
  };
729
737
  export declare function validateMaterialRecordShape(record: MaterialRecordV1): MaterialManifestV1;
730
- export declare function materialLibraryResourceId(manifest: MaterialManifestV1, slot: MaterialLibrarySlot): string;
738
+ export declare function materialLibraryResourceId(manifest: MaterialManifest, slot: MaterialLibrarySlot): string;
731
739
  export declare function materialLibraryPortableSpec(manifest: MaterialManifestV1): CanonicalPortableMaterialSpecV2;
740
+ export declare function materialLibraryPortableSpec(manifest: MaterialManifestV2): CanonicalPortableMaterialSpecV3;
741
+ export declare function materialLibraryPortableSpec(manifest: MaterialManifest): CanonicalPortableMaterialSpecV2 | CanonicalPortableMaterialSpecV3;
742
+ export declare const materialMapPinSchema: z.ZodObject<{
743
+ resourceId: z.ZodString;
744
+ revisionId: z.ZodString;
745
+ sha256: z.ZodString;
746
+ }, z.core.$strict>;
747
+ export declare const materialManifestV2Schema: z.ZodObject<{
748
+ materialId: z.ZodString;
749
+ revisionId: z.ZodString;
750
+ name: z.ZodString;
751
+ tags: z.ZodArray<z.ZodString>;
752
+ tileable: z.ZodBoolean;
753
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
754
+ width: z.ZodNumber;
755
+ height: z.ZodNumber;
756
+ }, z.core.$strict>>;
757
+ parameters: z.ZodObject<{
758
+ baseColor: z.ZodOptional<z.ZodNumber>;
759
+ roughness: z.ZodDefault<z.ZodNumber>;
760
+ metalness: z.ZodDefault<z.ZodNumber>;
761
+ emissive: z.ZodOptional<z.ZodNumber>;
762
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
763
+ alphaMode: z.ZodDefault<z.ZodEnum<{
764
+ blend: "blend";
765
+ mask: "mask";
766
+ opaque: "opaque";
767
+ }>>;
768
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
769
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
770
+ }, z.core.$strict>;
771
+ sources: z.ZodArray<z.ZodObject<{
772
+ id: z.ZodString;
773
+ kind: z.ZodEnum<{
774
+ external: "external";
775
+ procedural: "procedural";
776
+ }>;
777
+ provider: z.ZodString;
778
+ creator: z.ZodString;
779
+ assetId: z.ZodOptional<z.ZodString>;
780
+ assetUrl: z.ZodOptional<z.ZodString>;
781
+ accessedAt: z.ZodOptional<z.ZodString>;
782
+ license: z.ZodObject<{
783
+ spdx: z.ZodString;
784
+ url: z.ZodString;
785
+ attribution: z.ZodString;
786
+ }, z.core.$strict>;
787
+ originalFiles: z.ZodArray<z.ZodObject<{
788
+ name: z.ZodString;
789
+ sha256: z.ZodString;
790
+ bytes: z.ZodNumber;
791
+ }, z.core.$strict>>;
792
+ }, z.core.$strict>>;
793
+ schemaVersion: z.ZodLiteral<2>;
794
+ dependencies: z.ZodArray<z.ZodObject<{
795
+ resourceId: z.ZodString;
796
+ revisionId: z.ZodString;
797
+ sha256: z.ZodString;
798
+ }, z.core.$strict>>;
799
+ maps: z.ZodArray<z.ZodObject<{
800
+ slot: z.ZodEnum<{
801
+ baseColor: "baseColor";
802
+ emissive: "emissive";
803
+ metallicRoughness: "metallicRoughness";
804
+ normal: "normal";
805
+ occlusion: "occlusion";
806
+ }>;
807
+ file: z.ZodEnum<{
808
+ "baseColor.png": "baseColor.png";
809
+ "emissive.png": "emissive.png";
810
+ "metallicRoughness.png": "metallicRoughness.png";
811
+ "normal.png": "normal.png";
812
+ "occlusion.png": "occlusion.png";
813
+ }>;
814
+ sha256: z.ZodString;
815
+ bytes: z.ZodNumber;
816
+ width: z.ZodNumber;
817
+ height: z.ZodNumber;
818
+ usage: z.ZodEnum<{
819
+ albedo: "albedo";
820
+ emissive: "emissive";
821
+ metallicRoughness: "metallicRoughness";
822
+ normal: "normal";
823
+ occlusion: "occlusion";
824
+ }>;
825
+ colorSpace: z.ZodEnum<{
826
+ linear: "linear";
827
+ srgb: "srgb";
828
+ }>;
829
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
830
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
831
+ sourceId: z.ZodString;
832
+ originalFile: z.ZodOptional<z.ZodString>;
833
+ transforms: z.ZodArray<z.ZodObject<{
834
+ operation: z.ZodString;
835
+ tool: z.ZodString;
836
+ version: z.ZodString;
837
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
838
+ }, z.core.$strict>>;
839
+ sampler: z.ZodObject<{
840
+ minFilter: z.ZodEnum<{
841
+ linear: "linear";
842
+ "linear-mipmap-linear": "linear-mipmap-linear";
843
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
844
+ nearest: "nearest";
845
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
846
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
847
+ }>;
848
+ magFilter: z.ZodEnum<{
849
+ linear: "linear";
850
+ nearest: "nearest";
851
+ }>;
852
+ wrapS: z.ZodEnum<{
853
+ "clamp-to-edge": "clamp-to-edge";
854
+ "mirrored-repeat": "mirrored-repeat";
855
+ repeat: "repeat";
856
+ }>;
857
+ wrapT: z.ZodEnum<{
858
+ "clamp-to-edge": "clamp-to-edge";
859
+ "mirrored-repeat": "mirrored-repeat";
860
+ repeat: "repeat";
861
+ }>;
862
+ }, z.core.$strict>;
863
+ pixelHash: z.ZodString;
864
+ recipe: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
865
+ kind: z.ZodLiteral<"procedural">;
866
+ compilerId: z.ZodEnum<{
867
+ "kiln.procedural-rgba.v3.1": "kiln.procedural-rgba.v3.1";
868
+ "kiln.procedural-texture.v2": "kiln.procedural-texture.v2";
869
+ }>;
870
+ spec: z.ZodUnion<readonly [z.ZodObject<{
871
+ schemaVersion: z.ZodLiteral<2>;
872
+ size: z.ZodDefault<z.ZodNumber>;
873
+ usage: z.ZodDefault<z.ZodEnum<{
874
+ albedo: "albedo";
875
+ emissive: "emissive";
876
+ metallicRoughness: "metallicRoughness";
877
+ metalness: "metalness";
878
+ normal: "normal";
879
+ occlusion: "occlusion";
880
+ roughness: "roughness";
881
+ }>>;
882
+ name: z.ZodOptional<z.ZodString>;
883
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
884
+ blend: z.ZodDefault<z.ZodEnum<{
885
+ multiply: "multiply";
886
+ normal: "normal";
887
+ overlay: "overlay";
888
+ screen: "screen";
889
+ }>>;
890
+ opacity: z.ZodDefault<z.ZodNumber>;
891
+ op: z.ZodLiteral<"solid">;
892
+ color: z.ZodNumber;
893
+ }, z.core.$strict>, z.ZodObject<{
894
+ blend: z.ZodDefault<z.ZodEnum<{
895
+ multiply: "multiply";
896
+ normal: "normal";
897
+ overlay: "overlay";
898
+ screen: "screen";
899
+ }>>;
900
+ opacity: z.ZodDefault<z.ZodNumber>;
901
+ op: z.ZodLiteral<"checker">;
902
+ colorA: z.ZodNumber;
903
+ colorB: z.ZodNumber;
904
+ squares: z.ZodDefault<z.ZodNumber>;
905
+ }, z.core.$strict>, z.ZodObject<{
906
+ blend: z.ZodDefault<z.ZodEnum<{
907
+ multiply: "multiply";
908
+ normal: "normal";
909
+ overlay: "overlay";
910
+ screen: "screen";
911
+ }>>;
912
+ opacity: z.ZodDefault<z.ZodNumber>;
913
+ op: z.ZodLiteral<"stripes">;
914
+ colorA: z.ZodNumber;
915
+ colorB: z.ZodNumber;
916
+ count: z.ZodDefault<z.ZodNumber>;
917
+ angleDeg: z.ZodDefault<z.ZodNumber>;
918
+ }, z.core.$strict>, z.ZodObject<{
919
+ blend: z.ZodDefault<z.ZodEnum<{
920
+ multiply: "multiply";
921
+ normal: "normal";
922
+ overlay: "overlay";
923
+ screen: "screen";
924
+ }>>;
925
+ opacity: z.ZodDefault<z.ZodNumber>;
926
+ op: z.ZodLiteral<"gradient">;
927
+ from: z.ZodNumber;
928
+ to: z.ZodNumber;
929
+ angleDeg: z.ZodDefault<z.ZodNumber>;
930
+ }, z.core.$strict>, z.ZodObject<{
931
+ blend: z.ZodDefault<z.ZodEnum<{
932
+ multiply: "multiply";
933
+ normal: "normal";
934
+ overlay: "overlay";
935
+ screen: "screen";
936
+ }>>;
937
+ opacity: z.ZodDefault<z.ZodNumber>;
938
+ op: z.ZodLiteral<"bricks">;
939
+ brick: z.ZodNumber;
940
+ mortar: z.ZodNumber;
941
+ rows: z.ZodDefault<z.ZodNumber>;
942
+ cols: z.ZodDefault<z.ZodNumber>;
943
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
944
+ stagger: z.ZodDefault<z.ZodNumber>;
945
+ }, z.core.$strict>, z.ZodObject<{
946
+ blend: z.ZodDefault<z.ZodEnum<{
947
+ multiply: "multiply";
948
+ normal: "normal";
949
+ overlay: "overlay";
950
+ screen: "screen";
951
+ }>>;
952
+ opacity: z.ZodDefault<z.ZodNumber>;
953
+ op: z.ZodLiteral<"noise">;
954
+ colorA: z.ZodNumber;
955
+ colorB: z.ZodNumber;
956
+ scale: z.ZodDefault<z.ZodNumber>;
957
+ octaves: z.ZodDefault<z.ZodNumber>;
958
+ seed: z.ZodDefault<z.ZodNumber>;
959
+ }, z.core.$strict>], "op">>;
960
+ }, z.core.$strict>, z.ZodObject<{
961
+ schemaVersion: z.ZodLiteral<3>;
962
+ width: z.ZodNumber;
963
+ height: z.ZodNumber;
964
+ usage: z.ZodEnum<{
965
+ albedo: "albedo";
966
+ emissive: "emissive";
967
+ metallicRoughness: "metallicRoughness";
968
+ metalness: "metalness";
969
+ normal: "normal";
970
+ occlusion: "occlusion";
971
+ roughness: "roughness";
972
+ }>;
973
+ name: z.ZodOptional<z.ZodString>;
974
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
975
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
976
+ op: z.ZodLiteral<"paint">;
977
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
978
+ x: z.ZodNumber;
979
+ y: z.ZodNumber;
980
+ width: z.ZodNumber;
981
+ height: z.ZodNumber;
982
+ kind: z.ZodLiteral<"rectangle">;
983
+ }, z.core.$strict>, z.ZodObject<{
984
+ x: z.ZodNumber;
985
+ y: z.ZodNumber;
986
+ width: z.ZodNumber;
987
+ height: z.ZodNumber;
988
+ kind: z.ZodLiteral<"ellipse">;
989
+ }, z.core.$strict>, z.ZodObject<{
990
+ kind: z.ZodLiteral<"polygon">;
991
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
992
+ }, z.core.$strict>, z.ZodObject<{
993
+ kind: z.ZodLiteral<"line">;
994
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
995
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
996
+ width: z.ZodNumber;
997
+ }, z.core.$strict>], "kind">;
998
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
999
+ opacity: z.ZodNumber;
1000
+ }, z.core.$strict>, z.ZodObject<{
1001
+ op: z.ZodLiteral<"mask">;
1002
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
1003
+ x: z.ZodNumber;
1004
+ y: z.ZodNumber;
1005
+ width: z.ZodNumber;
1006
+ height: z.ZodNumber;
1007
+ kind: z.ZodLiteral<"rectangle">;
1008
+ }, z.core.$strict>, z.ZodObject<{
1009
+ x: z.ZodNumber;
1010
+ y: z.ZodNumber;
1011
+ width: z.ZodNumber;
1012
+ height: z.ZodNumber;
1013
+ kind: z.ZodLiteral<"ellipse">;
1014
+ }, z.core.$strict>, z.ZodObject<{
1015
+ kind: z.ZodLiteral<"polygon">;
1016
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1017
+ }, z.core.$strict>, z.ZodObject<{
1018
+ kind: z.ZodLiteral<"line">;
1019
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1020
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1021
+ width: z.ZodNumber;
1022
+ }, z.core.$strict>], "kind">;
1023
+ alpha: z.ZodNumber;
1024
+ invert: z.ZodBoolean;
1025
+ }, z.core.$strict>, z.ZodObject<{
1026
+ op: z.ZodLiteral<"stamps">;
1027
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
1028
+ x: z.ZodNumber;
1029
+ y: z.ZodNumber;
1030
+ width: z.ZodNumber;
1031
+ height: z.ZodNumber;
1032
+ kind: z.ZodLiteral<"rectangle">;
1033
+ }, z.core.$strict>, z.ZodObject<{
1034
+ x: z.ZodNumber;
1035
+ y: z.ZodNumber;
1036
+ width: z.ZodNumber;
1037
+ height: z.ZodNumber;
1038
+ kind: z.ZodLiteral<"ellipse">;
1039
+ }, z.core.$strict>, z.ZodObject<{
1040
+ kind: z.ZodLiteral<"polygon">;
1041
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1042
+ }, z.core.$strict>, z.ZodObject<{
1043
+ kind: z.ZodLiteral<"line">;
1044
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1045
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1046
+ width: z.ZodNumber;
1047
+ }, z.core.$strict>], "kind">;
1048
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1049
+ opacity: z.ZodNumber;
1050
+ count: z.ZodNumber;
1051
+ seed: z.ZodNumber;
1052
+ area: z.ZodObject<{
1053
+ x: z.ZodNumber;
1054
+ y: z.ZodNumber;
1055
+ width: z.ZodNumber;
1056
+ height: z.ZodNumber;
1057
+ }, z.core.$strict>;
1058
+ periodic: z.ZodBoolean;
1059
+ }, z.core.$strict>, z.ZodObject<{
1060
+ op: z.ZodLiteral<"legacy-v2">;
1061
+ alpha: z.ZodNumber;
1062
+ opacity: z.ZodNumber;
1063
+ spec: z.ZodType<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown>>;
1064
+ }, z.core.$strict>], "op">>;
1065
+ palette: z.ZodOptional<z.ZodObject<{
1066
+ colors: z.ZodArray<z.ZodNumber>;
1067
+ dither: z.ZodEnum<{
1068
+ bayer4: "bayer4";
1069
+ none: "none";
1070
+ }>;
1071
+ }, z.core.$strict>>;
1072
+ }, z.core.$strict>]>;
1073
+ recipeHash: z.ZodString;
1074
+ pixelHash: z.ZodString;
1075
+ encoder: z.ZodObject<{
1076
+ name: z.ZodLiteral<"sharp">;
1077
+ version: z.ZodString;
1078
+ }, z.core.$strict>;
1079
+ derive: z.ZodOptional<z.ZodObject<{
1080
+ kind: z.ZodLiteral<"normal-from-height">;
1081
+ strength: z.ZodNumber;
1082
+ }, z.core.$strict>>;
1083
+ }, z.core.$strict>, z.ZodObject<{
1084
+ kind: z.ZodLiteral<"atlas">;
1085
+ compilerId: z.ZodLiteral<"kiln.texture-atlas.v1.1">;
1086
+ spec: z.ZodType<CanonicalTextureAtlasSpecV1, unknown, z.core.$ZodTypeInternals<CanonicalTextureAtlasSpecV1, unknown>>;
1087
+ manifest: z.ZodType<TextureAtlasManifestV1, unknown, z.core.$ZodTypeInternals<TextureAtlasManifestV1, unknown>>;
1088
+ encoder: z.ZodObject<{
1089
+ name: z.ZodLiteral<"sharp">;
1090
+ version: z.ZodString;
1091
+ }, z.core.$strict>;
1092
+ }, z.core.$strict>], "kind">>;
1093
+ }, z.core.$strict>>;
1094
+ }, z.core.$strict>;
1095
+ export type MaterialManifestV2 = z.infer<typeof materialManifestV2Schema>;
1096
+ export type MaterialMapV2 = MaterialManifestV2['maps'][number];
1097
+ export interface MaterialRecordV2 {
1098
+ manifest: MaterialManifestV2;
1099
+ files: Record<string, Uint8Array>;
1100
+ }
1101
+ export type MaterialManifest = MaterialManifestV1 | MaterialManifestV2;
1102
+ export type MaterialRecord = MaterialRecordV1 | MaterialRecordV2;
1103
+ export interface MaterialLibraryPayloadV2 {
1104
+ schemaVersion: 2;
1105
+ records: {
1106
+ manifest: MaterialManifest;
1107
+ files: Record<string, string>;
1108
+ }[];
1109
+ }
1110
+ export type MaterialLibraryPayload = MaterialLibraryPayloadV1 | MaterialLibraryPayloadV2;
1111
+ export declare const materialManifestAnySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1112
+ schemaVersion: z.ZodLiteral<1>;
1113
+ materialId: z.ZodString;
1114
+ revisionId: z.ZodString;
1115
+ name: z.ZodString;
1116
+ tags: z.ZodArray<z.ZodString>;
1117
+ tileable: z.ZodBoolean;
1118
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
1119
+ width: z.ZodNumber;
1120
+ height: z.ZodNumber;
1121
+ }, z.core.$strict>>;
1122
+ parameters: z.ZodObject<{
1123
+ baseColor: z.ZodOptional<z.ZodNumber>;
1124
+ roughness: z.ZodDefault<z.ZodNumber>;
1125
+ metalness: z.ZodDefault<z.ZodNumber>;
1126
+ emissive: z.ZodOptional<z.ZodNumber>;
1127
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
1128
+ alphaMode: z.ZodDefault<z.ZodEnum<{
1129
+ blend: "blend";
1130
+ mask: "mask";
1131
+ opaque: "opaque";
1132
+ }>>;
1133
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
1134
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
1135
+ }, z.core.$strict>;
1136
+ sources: z.ZodArray<z.ZodObject<{
1137
+ id: z.ZodString;
1138
+ kind: z.ZodEnum<{
1139
+ external: "external";
1140
+ procedural: "procedural";
1141
+ }>;
1142
+ provider: z.ZodString;
1143
+ creator: z.ZodString;
1144
+ assetId: z.ZodOptional<z.ZodString>;
1145
+ assetUrl: z.ZodOptional<z.ZodString>;
1146
+ accessedAt: z.ZodOptional<z.ZodString>;
1147
+ license: z.ZodObject<{
1148
+ spdx: z.ZodString;
1149
+ url: z.ZodString;
1150
+ attribution: z.ZodString;
1151
+ }, z.core.$strict>;
1152
+ originalFiles: z.ZodArray<z.ZodObject<{
1153
+ name: z.ZodString;
1154
+ sha256: z.ZodString;
1155
+ bytes: z.ZodNumber;
1156
+ }, z.core.$strict>>;
1157
+ }, z.core.$strict>>;
1158
+ maps: z.ZodArray<z.ZodObject<{
1159
+ slot: z.ZodEnum<{
1160
+ baseColor: "baseColor";
1161
+ emissive: "emissive";
1162
+ metallicRoughness: "metallicRoughness";
1163
+ normal: "normal";
1164
+ occlusion: "occlusion";
1165
+ }>;
1166
+ file: z.ZodEnum<{
1167
+ "baseColor.png": "baseColor.png";
1168
+ "emissive.png": "emissive.png";
1169
+ "metallicRoughness.png": "metallicRoughness.png";
1170
+ "normal.png": "normal.png";
1171
+ "occlusion.png": "occlusion.png";
1172
+ }>;
1173
+ sha256: z.ZodString;
1174
+ bytes: z.ZodNumber;
1175
+ width: z.ZodNumber;
1176
+ height: z.ZodNumber;
1177
+ usage: z.ZodEnum<{
1178
+ albedo: "albedo";
1179
+ emissive: "emissive";
1180
+ metallicRoughness: "metallicRoughness";
1181
+ normal: "normal";
1182
+ occlusion: "occlusion";
1183
+ }>;
1184
+ colorSpace: z.ZodEnum<{
1185
+ linear: "linear";
1186
+ srgb: "srgb";
1187
+ }>;
1188
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
1189
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
1190
+ sourceId: z.ZodString;
1191
+ originalFile: z.ZodOptional<z.ZodString>;
1192
+ transforms: z.ZodArray<z.ZodObject<{
1193
+ operation: z.ZodString;
1194
+ tool: z.ZodString;
1195
+ version: z.ZodString;
1196
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1197
+ }, z.core.$strict>>;
1198
+ procedural: z.ZodOptional<z.ZodObject<{
1199
+ compiler: z.ZodLiteral<"kiln.procedural-texture.v2">;
1200
+ spec: z.ZodObject<{
1201
+ schemaVersion: z.ZodLiteral<2>;
1202
+ size: z.ZodDefault<z.ZodNumber>;
1203
+ usage: z.ZodDefault<z.ZodEnum<{
1204
+ albedo: "albedo";
1205
+ emissive: "emissive";
1206
+ metallicRoughness: "metallicRoughness";
1207
+ metalness: "metalness";
1208
+ normal: "normal";
1209
+ occlusion: "occlusion";
1210
+ roughness: "roughness";
1211
+ }>>;
1212
+ name: z.ZodOptional<z.ZodString>;
1213
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1214
+ blend: z.ZodDefault<z.ZodEnum<{
1215
+ multiply: "multiply";
1216
+ normal: "normal";
1217
+ overlay: "overlay";
1218
+ screen: "screen";
1219
+ }>>;
1220
+ opacity: z.ZodDefault<z.ZodNumber>;
1221
+ op: z.ZodLiteral<"solid">;
1222
+ color: z.ZodNumber;
1223
+ }, z.core.$strict>, z.ZodObject<{
1224
+ blend: z.ZodDefault<z.ZodEnum<{
1225
+ multiply: "multiply";
1226
+ normal: "normal";
1227
+ overlay: "overlay";
1228
+ screen: "screen";
1229
+ }>>;
1230
+ opacity: z.ZodDefault<z.ZodNumber>;
1231
+ op: z.ZodLiteral<"checker">;
1232
+ colorA: z.ZodNumber;
1233
+ colorB: z.ZodNumber;
1234
+ squares: z.ZodDefault<z.ZodNumber>;
1235
+ }, z.core.$strict>, z.ZodObject<{
1236
+ blend: z.ZodDefault<z.ZodEnum<{
1237
+ multiply: "multiply";
1238
+ normal: "normal";
1239
+ overlay: "overlay";
1240
+ screen: "screen";
1241
+ }>>;
1242
+ opacity: z.ZodDefault<z.ZodNumber>;
1243
+ op: z.ZodLiteral<"stripes">;
1244
+ colorA: z.ZodNumber;
1245
+ colorB: z.ZodNumber;
1246
+ count: z.ZodDefault<z.ZodNumber>;
1247
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1248
+ }, z.core.$strict>, z.ZodObject<{
1249
+ blend: z.ZodDefault<z.ZodEnum<{
1250
+ multiply: "multiply";
1251
+ normal: "normal";
1252
+ overlay: "overlay";
1253
+ screen: "screen";
1254
+ }>>;
1255
+ opacity: z.ZodDefault<z.ZodNumber>;
1256
+ op: z.ZodLiteral<"gradient">;
1257
+ from: z.ZodNumber;
1258
+ to: z.ZodNumber;
1259
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1260
+ }, z.core.$strict>, z.ZodObject<{
1261
+ blend: z.ZodDefault<z.ZodEnum<{
1262
+ multiply: "multiply";
1263
+ normal: "normal";
1264
+ overlay: "overlay";
1265
+ screen: "screen";
1266
+ }>>;
1267
+ opacity: z.ZodDefault<z.ZodNumber>;
1268
+ op: z.ZodLiteral<"bricks">;
1269
+ brick: z.ZodNumber;
1270
+ mortar: z.ZodNumber;
1271
+ rows: z.ZodDefault<z.ZodNumber>;
1272
+ cols: z.ZodDefault<z.ZodNumber>;
1273
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
1274
+ stagger: z.ZodDefault<z.ZodNumber>;
1275
+ }, z.core.$strict>, z.ZodObject<{
1276
+ blend: z.ZodDefault<z.ZodEnum<{
1277
+ multiply: "multiply";
1278
+ normal: "normal";
1279
+ overlay: "overlay";
1280
+ screen: "screen";
1281
+ }>>;
1282
+ opacity: z.ZodDefault<z.ZodNumber>;
1283
+ op: z.ZodLiteral<"noise">;
1284
+ colorA: z.ZodNumber;
1285
+ colorB: z.ZodNumber;
1286
+ scale: z.ZodDefault<z.ZodNumber>;
1287
+ octaves: z.ZodDefault<z.ZodNumber>;
1288
+ seed: z.ZodDefault<z.ZodNumber>;
1289
+ }, z.core.$strict>], "op">>;
1290
+ }, z.core.$strict>;
1291
+ derive: z.ZodOptional<z.ZodObject<{
1292
+ kind: z.ZodLiteral<"normal-from-height">;
1293
+ strength: z.ZodNumber;
1294
+ }, z.core.$strict>>;
1295
+ recipeHash: z.ZodString;
1296
+ pixelHash: z.ZodString;
1297
+ encoder: z.ZodObject<{
1298
+ name: z.ZodLiteral<"sharp">;
1299
+ version: z.ZodString;
1300
+ }, z.core.$strict>;
1301
+ }, z.core.$strict>>;
1302
+ }, z.core.$strict>>;
1303
+ }, z.core.$strict>, z.ZodObject<{
1304
+ materialId: z.ZodString;
1305
+ revisionId: z.ZodString;
1306
+ name: z.ZodString;
1307
+ tags: z.ZodArray<z.ZodString>;
1308
+ tileable: z.ZodBoolean;
1309
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
1310
+ width: z.ZodNumber;
1311
+ height: z.ZodNumber;
1312
+ }, z.core.$strict>>;
1313
+ parameters: z.ZodObject<{
1314
+ baseColor: z.ZodOptional<z.ZodNumber>;
1315
+ roughness: z.ZodDefault<z.ZodNumber>;
1316
+ metalness: z.ZodDefault<z.ZodNumber>;
1317
+ emissive: z.ZodOptional<z.ZodNumber>;
1318
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
1319
+ alphaMode: z.ZodDefault<z.ZodEnum<{
1320
+ blend: "blend";
1321
+ mask: "mask";
1322
+ opaque: "opaque";
1323
+ }>>;
1324
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
1325
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
1326
+ }, z.core.$strict>;
1327
+ sources: z.ZodArray<z.ZodObject<{
1328
+ id: z.ZodString;
1329
+ kind: z.ZodEnum<{
1330
+ external: "external";
1331
+ procedural: "procedural";
1332
+ }>;
1333
+ provider: z.ZodString;
1334
+ creator: z.ZodString;
1335
+ assetId: z.ZodOptional<z.ZodString>;
1336
+ assetUrl: z.ZodOptional<z.ZodString>;
1337
+ accessedAt: z.ZodOptional<z.ZodString>;
1338
+ license: z.ZodObject<{
1339
+ spdx: z.ZodString;
1340
+ url: z.ZodString;
1341
+ attribution: z.ZodString;
1342
+ }, z.core.$strict>;
1343
+ originalFiles: z.ZodArray<z.ZodObject<{
1344
+ name: z.ZodString;
1345
+ sha256: z.ZodString;
1346
+ bytes: z.ZodNumber;
1347
+ }, z.core.$strict>>;
1348
+ }, z.core.$strict>>;
1349
+ schemaVersion: z.ZodLiteral<2>;
1350
+ dependencies: z.ZodArray<z.ZodObject<{
1351
+ resourceId: z.ZodString;
1352
+ revisionId: z.ZodString;
1353
+ sha256: z.ZodString;
1354
+ }, z.core.$strict>>;
1355
+ maps: z.ZodArray<z.ZodObject<{
1356
+ slot: z.ZodEnum<{
1357
+ baseColor: "baseColor";
1358
+ emissive: "emissive";
1359
+ metallicRoughness: "metallicRoughness";
1360
+ normal: "normal";
1361
+ occlusion: "occlusion";
1362
+ }>;
1363
+ file: z.ZodEnum<{
1364
+ "baseColor.png": "baseColor.png";
1365
+ "emissive.png": "emissive.png";
1366
+ "metallicRoughness.png": "metallicRoughness.png";
1367
+ "normal.png": "normal.png";
1368
+ "occlusion.png": "occlusion.png";
1369
+ }>;
1370
+ sha256: z.ZodString;
1371
+ bytes: z.ZodNumber;
1372
+ width: z.ZodNumber;
1373
+ height: z.ZodNumber;
1374
+ usage: z.ZodEnum<{
1375
+ albedo: "albedo";
1376
+ emissive: "emissive";
1377
+ metallicRoughness: "metallicRoughness";
1378
+ normal: "normal";
1379
+ occlusion: "occlusion";
1380
+ }>;
1381
+ colorSpace: z.ZodEnum<{
1382
+ linear: "linear";
1383
+ srgb: "srgb";
1384
+ }>;
1385
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
1386
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
1387
+ sourceId: z.ZodString;
1388
+ originalFile: z.ZodOptional<z.ZodString>;
1389
+ transforms: z.ZodArray<z.ZodObject<{
1390
+ operation: z.ZodString;
1391
+ tool: z.ZodString;
1392
+ version: z.ZodString;
1393
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1394
+ }, z.core.$strict>>;
1395
+ sampler: z.ZodObject<{
1396
+ minFilter: z.ZodEnum<{
1397
+ linear: "linear";
1398
+ "linear-mipmap-linear": "linear-mipmap-linear";
1399
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
1400
+ nearest: "nearest";
1401
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
1402
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
1403
+ }>;
1404
+ magFilter: z.ZodEnum<{
1405
+ linear: "linear";
1406
+ nearest: "nearest";
1407
+ }>;
1408
+ wrapS: z.ZodEnum<{
1409
+ "clamp-to-edge": "clamp-to-edge";
1410
+ "mirrored-repeat": "mirrored-repeat";
1411
+ repeat: "repeat";
1412
+ }>;
1413
+ wrapT: z.ZodEnum<{
1414
+ "clamp-to-edge": "clamp-to-edge";
1415
+ "mirrored-repeat": "mirrored-repeat";
1416
+ repeat: "repeat";
1417
+ }>;
1418
+ }, z.core.$strict>;
1419
+ pixelHash: z.ZodString;
1420
+ recipe: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1421
+ kind: z.ZodLiteral<"procedural">;
1422
+ compilerId: z.ZodEnum<{
1423
+ "kiln.procedural-rgba.v3.1": "kiln.procedural-rgba.v3.1";
1424
+ "kiln.procedural-texture.v2": "kiln.procedural-texture.v2";
1425
+ }>;
1426
+ spec: z.ZodUnion<readonly [z.ZodObject<{
1427
+ schemaVersion: z.ZodLiteral<2>;
1428
+ size: z.ZodDefault<z.ZodNumber>;
1429
+ usage: z.ZodDefault<z.ZodEnum<{
1430
+ albedo: "albedo";
1431
+ emissive: "emissive";
1432
+ metallicRoughness: "metallicRoughness";
1433
+ metalness: "metalness";
1434
+ normal: "normal";
1435
+ occlusion: "occlusion";
1436
+ roughness: "roughness";
1437
+ }>>;
1438
+ name: z.ZodOptional<z.ZodString>;
1439
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1440
+ blend: z.ZodDefault<z.ZodEnum<{
1441
+ multiply: "multiply";
1442
+ normal: "normal";
1443
+ overlay: "overlay";
1444
+ screen: "screen";
1445
+ }>>;
1446
+ opacity: z.ZodDefault<z.ZodNumber>;
1447
+ op: z.ZodLiteral<"solid">;
1448
+ color: z.ZodNumber;
1449
+ }, z.core.$strict>, z.ZodObject<{
1450
+ blend: z.ZodDefault<z.ZodEnum<{
1451
+ multiply: "multiply";
1452
+ normal: "normal";
1453
+ overlay: "overlay";
1454
+ screen: "screen";
1455
+ }>>;
1456
+ opacity: z.ZodDefault<z.ZodNumber>;
1457
+ op: z.ZodLiteral<"checker">;
1458
+ colorA: z.ZodNumber;
1459
+ colorB: z.ZodNumber;
1460
+ squares: z.ZodDefault<z.ZodNumber>;
1461
+ }, z.core.$strict>, z.ZodObject<{
1462
+ blend: z.ZodDefault<z.ZodEnum<{
1463
+ multiply: "multiply";
1464
+ normal: "normal";
1465
+ overlay: "overlay";
1466
+ screen: "screen";
1467
+ }>>;
1468
+ opacity: z.ZodDefault<z.ZodNumber>;
1469
+ op: z.ZodLiteral<"stripes">;
1470
+ colorA: z.ZodNumber;
1471
+ colorB: z.ZodNumber;
1472
+ count: z.ZodDefault<z.ZodNumber>;
1473
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1474
+ }, z.core.$strict>, z.ZodObject<{
1475
+ blend: z.ZodDefault<z.ZodEnum<{
1476
+ multiply: "multiply";
1477
+ normal: "normal";
1478
+ overlay: "overlay";
1479
+ screen: "screen";
1480
+ }>>;
1481
+ opacity: z.ZodDefault<z.ZodNumber>;
1482
+ op: z.ZodLiteral<"gradient">;
1483
+ from: z.ZodNumber;
1484
+ to: z.ZodNumber;
1485
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1486
+ }, z.core.$strict>, z.ZodObject<{
1487
+ blend: z.ZodDefault<z.ZodEnum<{
1488
+ multiply: "multiply";
1489
+ normal: "normal";
1490
+ overlay: "overlay";
1491
+ screen: "screen";
1492
+ }>>;
1493
+ opacity: z.ZodDefault<z.ZodNumber>;
1494
+ op: z.ZodLiteral<"bricks">;
1495
+ brick: z.ZodNumber;
1496
+ mortar: z.ZodNumber;
1497
+ rows: z.ZodDefault<z.ZodNumber>;
1498
+ cols: z.ZodDefault<z.ZodNumber>;
1499
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
1500
+ stagger: z.ZodDefault<z.ZodNumber>;
1501
+ }, z.core.$strict>, z.ZodObject<{
1502
+ blend: z.ZodDefault<z.ZodEnum<{
1503
+ multiply: "multiply";
1504
+ normal: "normal";
1505
+ overlay: "overlay";
1506
+ screen: "screen";
1507
+ }>>;
1508
+ opacity: z.ZodDefault<z.ZodNumber>;
1509
+ op: z.ZodLiteral<"noise">;
1510
+ colorA: z.ZodNumber;
1511
+ colorB: z.ZodNumber;
1512
+ scale: z.ZodDefault<z.ZodNumber>;
1513
+ octaves: z.ZodDefault<z.ZodNumber>;
1514
+ seed: z.ZodDefault<z.ZodNumber>;
1515
+ }, z.core.$strict>], "op">>;
1516
+ }, z.core.$strict>, z.ZodObject<{
1517
+ schemaVersion: z.ZodLiteral<3>;
1518
+ width: z.ZodNumber;
1519
+ height: z.ZodNumber;
1520
+ usage: z.ZodEnum<{
1521
+ albedo: "albedo";
1522
+ emissive: "emissive";
1523
+ metallicRoughness: "metallicRoughness";
1524
+ metalness: "metalness";
1525
+ normal: "normal";
1526
+ occlusion: "occlusion";
1527
+ roughness: "roughness";
1528
+ }>;
1529
+ name: z.ZodOptional<z.ZodString>;
1530
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1531
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1532
+ op: z.ZodLiteral<"paint">;
1533
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
1534
+ x: z.ZodNumber;
1535
+ y: z.ZodNumber;
1536
+ width: z.ZodNumber;
1537
+ height: z.ZodNumber;
1538
+ kind: z.ZodLiteral<"rectangle">;
1539
+ }, z.core.$strict>, z.ZodObject<{
1540
+ x: z.ZodNumber;
1541
+ y: z.ZodNumber;
1542
+ width: z.ZodNumber;
1543
+ height: z.ZodNumber;
1544
+ kind: z.ZodLiteral<"ellipse">;
1545
+ }, z.core.$strict>, z.ZodObject<{
1546
+ kind: z.ZodLiteral<"polygon">;
1547
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1548
+ }, z.core.$strict>, z.ZodObject<{
1549
+ kind: z.ZodLiteral<"line">;
1550
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1551
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1552
+ width: z.ZodNumber;
1553
+ }, z.core.$strict>], "kind">;
1554
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1555
+ opacity: z.ZodNumber;
1556
+ }, z.core.$strict>, z.ZodObject<{
1557
+ op: z.ZodLiteral<"mask">;
1558
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
1559
+ x: z.ZodNumber;
1560
+ y: z.ZodNumber;
1561
+ width: z.ZodNumber;
1562
+ height: z.ZodNumber;
1563
+ kind: z.ZodLiteral<"rectangle">;
1564
+ }, z.core.$strict>, z.ZodObject<{
1565
+ x: z.ZodNumber;
1566
+ y: z.ZodNumber;
1567
+ width: z.ZodNumber;
1568
+ height: z.ZodNumber;
1569
+ kind: z.ZodLiteral<"ellipse">;
1570
+ }, z.core.$strict>, z.ZodObject<{
1571
+ kind: z.ZodLiteral<"polygon">;
1572
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1573
+ }, z.core.$strict>, z.ZodObject<{
1574
+ kind: z.ZodLiteral<"line">;
1575
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1576
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1577
+ width: z.ZodNumber;
1578
+ }, z.core.$strict>], "kind">;
1579
+ alpha: z.ZodNumber;
1580
+ invert: z.ZodBoolean;
1581
+ }, z.core.$strict>, z.ZodObject<{
1582
+ op: z.ZodLiteral<"stamps">;
1583
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
1584
+ x: z.ZodNumber;
1585
+ y: z.ZodNumber;
1586
+ width: z.ZodNumber;
1587
+ height: z.ZodNumber;
1588
+ kind: z.ZodLiteral<"rectangle">;
1589
+ }, z.core.$strict>, z.ZodObject<{
1590
+ x: z.ZodNumber;
1591
+ y: z.ZodNumber;
1592
+ width: z.ZodNumber;
1593
+ height: z.ZodNumber;
1594
+ kind: z.ZodLiteral<"ellipse">;
1595
+ }, z.core.$strict>, z.ZodObject<{
1596
+ kind: z.ZodLiteral<"polygon">;
1597
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1598
+ }, z.core.$strict>, z.ZodObject<{
1599
+ kind: z.ZodLiteral<"line">;
1600
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1601
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
1602
+ width: z.ZodNumber;
1603
+ }, z.core.$strict>], "kind">;
1604
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1605
+ opacity: z.ZodNumber;
1606
+ count: z.ZodNumber;
1607
+ seed: z.ZodNumber;
1608
+ area: z.ZodObject<{
1609
+ x: z.ZodNumber;
1610
+ y: z.ZodNumber;
1611
+ width: z.ZodNumber;
1612
+ height: z.ZodNumber;
1613
+ }, z.core.$strict>;
1614
+ periodic: z.ZodBoolean;
1615
+ }, z.core.$strict>, z.ZodObject<{
1616
+ op: z.ZodLiteral<"legacy-v2">;
1617
+ alpha: z.ZodNumber;
1618
+ opacity: z.ZodNumber;
1619
+ spec: z.ZodType<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown>>;
1620
+ }, z.core.$strict>], "op">>;
1621
+ palette: z.ZodOptional<z.ZodObject<{
1622
+ colors: z.ZodArray<z.ZodNumber>;
1623
+ dither: z.ZodEnum<{
1624
+ bayer4: "bayer4";
1625
+ none: "none";
1626
+ }>;
1627
+ }, z.core.$strict>>;
1628
+ }, z.core.$strict>]>;
1629
+ recipeHash: z.ZodString;
1630
+ pixelHash: z.ZodString;
1631
+ encoder: z.ZodObject<{
1632
+ name: z.ZodLiteral<"sharp">;
1633
+ version: z.ZodString;
1634
+ }, z.core.$strict>;
1635
+ derive: z.ZodOptional<z.ZodObject<{
1636
+ kind: z.ZodLiteral<"normal-from-height">;
1637
+ strength: z.ZodNumber;
1638
+ }, z.core.$strict>>;
1639
+ }, z.core.$strict>, z.ZodObject<{
1640
+ kind: z.ZodLiteral<"atlas">;
1641
+ compilerId: z.ZodLiteral<"kiln.texture-atlas.v1.1">;
1642
+ spec: z.ZodType<CanonicalTextureAtlasSpecV1, unknown, z.core.$ZodTypeInternals<CanonicalTextureAtlasSpecV1, unknown>>;
1643
+ manifest: z.ZodType<TextureAtlasManifestV1, unknown, z.core.$ZodTypeInternals<TextureAtlasManifestV1, unknown>>;
1644
+ encoder: z.ZodObject<{
1645
+ name: z.ZodLiteral<"sharp">;
1646
+ version: z.ZodString;
1647
+ }, z.core.$strict>;
1648
+ }, z.core.$strict>], "kind">>;
1649
+ }, z.core.$strict>>;
1650
+ }, z.core.$strict>], "schemaVersion">;
1651
+ export declare const materialLibraryPayloadV2Schema: z.ZodObject<{
1652
+ schemaVersion: z.ZodLiteral<2>;
1653
+ records: z.ZodArray<z.ZodObject<{
1654
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
1655
+ manifest: z.ZodDiscriminatedUnion<[z.ZodObject<{
1656
+ schemaVersion: z.ZodLiteral<1>;
1657
+ materialId: z.ZodString;
1658
+ revisionId: z.ZodString;
1659
+ name: z.ZodString;
1660
+ tags: z.ZodArray<z.ZodString>;
1661
+ tileable: z.ZodBoolean;
1662
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
1663
+ width: z.ZodNumber;
1664
+ height: z.ZodNumber;
1665
+ }, z.core.$strict>>;
1666
+ parameters: z.ZodObject<{
1667
+ baseColor: z.ZodOptional<z.ZodNumber>;
1668
+ roughness: z.ZodDefault<z.ZodNumber>;
1669
+ metalness: z.ZodDefault<z.ZodNumber>;
1670
+ emissive: z.ZodOptional<z.ZodNumber>;
1671
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
1672
+ alphaMode: z.ZodDefault<z.ZodEnum<{
1673
+ blend: "blend";
1674
+ mask: "mask";
1675
+ opaque: "opaque";
1676
+ }>>;
1677
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
1678
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
1679
+ }, z.core.$strict>;
1680
+ sources: z.ZodArray<z.ZodObject<{
1681
+ id: z.ZodString;
1682
+ kind: z.ZodEnum<{
1683
+ external: "external";
1684
+ procedural: "procedural";
1685
+ }>;
1686
+ provider: z.ZodString;
1687
+ creator: z.ZodString;
1688
+ assetId: z.ZodOptional<z.ZodString>;
1689
+ assetUrl: z.ZodOptional<z.ZodString>;
1690
+ accessedAt: z.ZodOptional<z.ZodString>;
1691
+ license: z.ZodObject<{
1692
+ spdx: z.ZodString;
1693
+ url: z.ZodString;
1694
+ attribution: z.ZodString;
1695
+ }, z.core.$strict>;
1696
+ originalFiles: z.ZodArray<z.ZodObject<{
1697
+ name: z.ZodString;
1698
+ sha256: z.ZodString;
1699
+ bytes: z.ZodNumber;
1700
+ }, z.core.$strict>>;
1701
+ }, z.core.$strict>>;
1702
+ maps: z.ZodArray<z.ZodObject<{
1703
+ slot: z.ZodEnum<{
1704
+ baseColor: "baseColor";
1705
+ emissive: "emissive";
1706
+ metallicRoughness: "metallicRoughness";
1707
+ normal: "normal";
1708
+ occlusion: "occlusion";
1709
+ }>;
1710
+ file: z.ZodEnum<{
1711
+ "baseColor.png": "baseColor.png";
1712
+ "emissive.png": "emissive.png";
1713
+ "metallicRoughness.png": "metallicRoughness.png";
1714
+ "normal.png": "normal.png";
1715
+ "occlusion.png": "occlusion.png";
1716
+ }>;
1717
+ sha256: z.ZodString;
1718
+ bytes: z.ZodNumber;
1719
+ width: z.ZodNumber;
1720
+ height: z.ZodNumber;
1721
+ usage: z.ZodEnum<{
1722
+ albedo: "albedo";
1723
+ emissive: "emissive";
1724
+ metallicRoughness: "metallicRoughness";
1725
+ normal: "normal";
1726
+ occlusion: "occlusion";
1727
+ }>;
1728
+ colorSpace: z.ZodEnum<{
1729
+ linear: "linear";
1730
+ srgb: "srgb";
1731
+ }>;
1732
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
1733
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
1734
+ sourceId: z.ZodString;
1735
+ originalFile: z.ZodOptional<z.ZodString>;
1736
+ transforms: z.ZodArray<z.ZodObject<{
1737
+ operation: z.ZodString;
1738
+ tool: z.ZodString;
1739
+ version: z.ZodString;
1740
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1741
+ }, z.core.$strict>>;
1742
+ procedural: z.ZodOptional<z.ZodObject<{
1743
+ compiler: z.ZodLiteral<"kiln.procedural-texture.v2">;
1744
+ spec: z.ZodObject<{
1745
+ schemaVersion: z.ZodLiteral<2>;
1746
+ size: z.ZodDefault<z.ZodNumber>;
1747
+ usage: z.ZodDefault<z.ZodEnum<{
1748
+ albedo: "albedo";
1749
+ emissive: "emissive";
1750
+ metallicRoughness: "metallicRoughness";
1751
+ metalness: "metalness";
1752
+ normal: "normal";
1753
+ occlusion: "occlusion";
1754
+ roughness: "roughness";
1755
+ }>>;
1756
+ name: z.ZodOptional<z.ZodString>;
1757
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1758
+ blend: z.ZodDefault<z.ZodEnum<{
1759
+ multiply: "multiply";
1760
+ normal: "normal";
1761
+ overlay: "overlay";
1762
+ screen: "screen";
1763
+ }>>;
1764
+ opacity: z.ZodDefault<z.ZodNumber>;
1765
+ op: z.ZodLiteral<"solid">;
1766
+ color: z.ZodNumber;
1767
+ }, z.core.$strict>, z.ZodObject<{
1768
+ blend: z.ZodDefault<z.ZodEnum<{
1769
+ multiply: "multiply";
1770
+ normal: "normal";
1771
+ overlay: "overlay";
1772
+ screen: "screen";
1773
+ }>>;
1774
+ opacity: z.ZodDefault<z.ZodNumber>;
1775
+ op: z.ZodLiteral<"checker">;
1776
+ colorA: z.ZodNumber;
1777
+ colorB: z.ZodNumber;
1778
+ squares: z.ZodDefault<z.ZodNumber>;
1779
+ }, z.core.$strict>, z.ZodObject<{
1780
+ blend: z.ZodDefault<z.ZodEnum<{
1781
+ multiply: "multiply";
1782
+ normal: "normal";
1783
+ overlay: "overlay";
1784
+ screen: "screen";
1785
+ }>>;
1786
+ opacity: z.ZodDefault<z.ZodNumber>;
1787
+ op: z.ZodLiteral<"stripes">;
1788
+ colorA: z.ZodNumber;
1789
+ colorB: z.ZodNumber;
1790
+ count: z.ZodDefault<z.ZodNumber>;
1791
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1792
+ }, z.core.$strict>, z.ZodObject<{
1793
+ blend: z.ZodDefault<z.ZodEnum<{
1794
+ multiply: "multiply";
1795
+ normal: "normal";
1796
+ overlay: "overlay";
1797
+ screen: "screen";
1798
+ }>>;
1799
+ opacity: z.ZodDefault<z.ZodNumber>;
1800
+ op: z.ZodLiteral<"gradient">;
1801
+ from: z.ZodNumber;
1802
+ to: z.ZodNumber;
1803
+ angleDeg: z.ZodDefault<z.ZodNumber>;
1804
+ }, z.core.$strict>, z.ZodObject<{
1805
+ blend: z.ZodDefault<z.ZodEnum<{
1806
+ multiply: "multiply";
1807
+ normal: "normal";
1808
+ overlay: "overlay";
1809
+ screen: "screen";
1810
+ }>>;
1811
+ opacity: z.ZodDefault<z.ZodNumber>;
1812
+ op: z.ZodLiteral<"bricks">;
1813
+ brick: z.ZodNumber;
1814
+ mortar: z.ZodNumber;
1815
+ rows: z.ZodDefault<z.ZodNumber>;
1816
+ cols: z.ZodDefault<z.ZodNumber>;
1817
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
1818
+ stagger: z.ZodDefault<z.ZodNumber>;
1819
+ }, z.core.$strict>, z.ZodObject<{
1820
+ blend: z.ZodDefault<z.ZodEnum<{
1821
+ multiply: "multiply";
1822
+ normal: "normal";
1823
+ overlay: "overlay";
1824
+ screen: "screen";
1825
+ }>>;
1826
+ opacity: z.ZodDefault<z.ZodNumber>;
1827
+ op: z.ZodLiteral<"noise">;
1828
+ colorA: z.ZodNumber;
1829
+ colorB: z.ZodNumber;
1830
+ scale: z.ZodDefault<z.ZodNumber>;
1831
+ octaves: z.ZodDefault<z.ZodNumber>;
1832
+ seed: z.ZodDefault<z.ZodNumber>;
1833
+ }, z.core.$strict>], "op">>;
1834
+ }, z.core.$strict>;
1835
+ derive: z.ZodOptional<z.ZodObject<{
1836
+ kind: z.ZodLiteral<"normal-from-height">;
1837
+ strength: z.ZodNumber;
1838
+ }, z.core.$strict>>;
1839
+ recipeHash: z.ZodString;
1840
+ pixelHash: z.ZodString;
1841
+ encoder: z.ZodObject<{
1842
+ name: z.ZodLiteral<"sharp">;
1843
+ version: z.ZodString;
1844
+ }, z.core.$strict>;
1845
+ }, z.core.$strict>>;
1846
+ }, z.core.$strict>>;
1847
+ }, z.core.$strict>, z.ZodObject<{
1848
+ materialId: z.ZodString;
1849
+ revisionId: z.ZodString;
1850
+ name: z.ZodString;
1851
+ tags: z.ZodArray<z.ZodString>;
1852
+ tileable: z.ZodBoolean;
1853
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
1854
+ width: z.ZodNumber;
1855
+ height: z.ZodNumber;
1856
+ }, z.core.$strict>>;
1857
+ parameters: z.ZodObject<{
1858
+ baseColor: z.ZodOptional<z.ZodNumber>;
1859
+ roughness: z.ZodDefault<z.ZodNumber>;
1860
+ metalness: z.ZodDefault<z.ZodNumber>;
1861
+ emissive: z.ZodOptional<z.ZodNumber>;
1862
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
1863
+ alphaMode: z.ZodDefault<z.ZodEnum<{
1864
+ blend: "blend";
1865
+ mask: "mask";
1866
+ opaque: "opaque";
1867
+ }>>;
1868
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
1869
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
1870
+ }, z.core.$strict>;
1871
+ sources: z.ZodArray<z.ZodObject<{
1872
+ id: z.ZodString;
1873
+ kind: z.ZodEnum<{
1874
+ external: "external";
1875
+ procedural: "procedural";
1876
+ }>;
1877
+ provider: z.ZodString;
1878
+ creator: z.ZodString;
1879
+ assetId: z.ZodOptional<z.ZodString>;
1880
+ assetUrl: z.ZodOptional<z.ZodString>;
1881
+ accessedAt: z.ZodOptional<z.ZodString>;
1882
+ license: z.ZodObject<{
1883
+ spdx: z.ZodString;
1884
+ url: z.ZodString;
1885
+ attribution: z.ZodString;
1886
+ }, z.core.$strict>;
1887
+ originalFiles: z.ZodArray<z.ZodObject<{
1888
+ name: z.ZodString;
1889
+ sha256: z.ZodString;
1890
+ bytes: z.ZodNumber;
1891
+ }, z.core.$strict>>;
1892
+ }, z.core.$strict>>;
1893
+ schemaVersion: z.ZodLiteral<2>;
1894
+ dependencies: z.ZodArray<z.ZodObject<{
1895
+ resourceId: z.ZodString;
1896
+ revisionId: z.ZodString;
1897
+ sha256: z.ZodString;
1898
+ }, z.core.$strict>>;
1899
+ maps: z.ZodArray<z.ZodObject<{
1900
+ slot: z.ZodEnum<{
1901
+ baseColor: "baseColor";
1902
+ emissive: "emissive";
1903
+ metallicRoughness: "metallicRoughness";
1904
+ normal: "normal";
1905
+ occlusion: "occlusion";
1906
+ }>;
1907
+ file: z.ZodEnum<{
1908
+ "baseColor.png": "baseColor.png";
1909
+ "emissive.png": "emissive.png";
1910
+ "metallicRoughness.png": "metallicRoughness.png";
1911
+ "normal.png": "normal.png";
1912
+ "occlusion.png": "occlusion.png";
1913
+ }>;
1914
+ sha256: z.ZodString;
1915
+ bytes: z.ZodNumber;
1916
+ width: z.ZodNumber;
1917
+ height: z.ZodNumber;
1918
+ usage: z.ZodEnum<{
1919
+ albedo: "albedo";
1920
+ emissive: "emissive";
1921
+ metallicRoughness: "metallicRoughness";
1922
+ normal: "normal";
1923
+ occlusion: "occlusion";
1924
+ }>;
1925
+ colorSpace: z.ZodEnum<{
1926
+ linear: "linear";
1927
+ srgb: "srgb";
1928
+ }>;
1929
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
1930
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
1931
+ sourceId: z.ZodString;
1932
+ originalFile: z.ZodOptional<z.ZodString>;
1933
+ transforms: z.ZodArray<z.ZodObject<{
1934
+ operation: z.ZodString;
1935
+ tool: z.ZodString;
1936
+ version: z.ZodString;
1937
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1938
+ }, z.core.$strict>>;
1939
+ sampler: z.ZodObject<{
1940
+ minFilter: z.ZodEnum<{
1941
+ linear: "linear";
1942
+ "linear-mipmap-linear": "linear-mipmap-linear";
1943
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
1944
+ nearest: "nearest";
1945
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
1946
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
1947
+ }>;
1948
+ magFilter: z.ZodEnum<{
1949
+ linear: "linear";
1950
+ nearest: "nearest";
1951
+ }>;
1952
+ wrapS: z.ZodEnum<{
1953
+ "clamp-to-edge": "clamp-to-edge";
1954
+ "mirrored-repeat": "mirrored-repeat";
1955
+ repeat: "repeat";
1956
+ }>;
1957
+ wrapT: z.ZodEnum<{
1958
+ "clamp-to-edge": "clamp-to-edge";
1959
+ "mirrored-repeat": "mirrored-repeat";
1960
+ repeat: "repeat";
1961
+ }>;
1962
+ }, z.core.$strict>;
1963
+ pixelHash: z.ZodString;
1964
+ recipe: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
1965
+ kind: z.ZodLiteral<"procedural">;
1966
+ compilerId: z.ZodEnum<{
1967
+ "kiln.procedural-rgba.v3.1": "kiln.procedural-rgba.v3.1";
1968
+ "kiln.procedural-texture.v2": "kiln.procedural-texture.v2";
1969
+ }>;
1970
+ spec: z.ZodUnion<readonly [z.ZodObject<{
1971
+ schemaVersion: z.ZodLiteral<2>;
1972
+ size: z.ZodDefault<z.ZodNumber>;
1973
+ usage: z.ZodDefault<z.ZodEnum<{
1974
+ albedo: "albedo";
1975
+ emissive: "emissive";
1976
+ metallicRoughness: "metallicRoughness";
1977
+ metalness: "metalness";
1978
+ normal: "normal";
1979
+ occlusion: "occlusion";
1980
+ roughness: "roughness";
1981
+ }>>;
1982
+ name: z.ZodOptional<z.ZodString>;
1983
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1984
+ blend: z.ZodDefault<z.ZodEnum<{
1985
+ multiply: "multiply";
1986
+ normal: "normal";
1987
+ overlay: "overlay";
1988
+ screen: "screen";
1989
+ }>>;
1990
+ opacity: z.ZodDefault<z.ZodNumber>;
1991
+ op: z.ZodLiteral<"solid">;
1992
+ color: z.ZodNumber;
1993
+ }, z.core.$strict>, z.ZodObject<{
1994
+ blend: z.ZodDefault<z.ZodEnum<{
1995
+ multiply: "multiply";
1996
+ normal: "normal";
1997
+ overlay: "overlay";
1998
+ screen: "screen";
1999
+ }>>;
2000
+ opacity: z.ZodDefault<z.ZodNumber>;
2001
+ op: z.ZodLiteral<"checker">;
2002
+ colorA: z.ZodNumber;
2003
+ colorB: z.ZodNumber;
2004
+ squares: z.ZodDefault<z.ZodNumber>;
2005
+ }, z.core.$strict>, z.ZodObject<{
2006
+ blend: z.ZodDefault<z.ZodEnum<{
2007
+ multiply: "multiply";
2008
+ normal: "normal";
2009
+ overlay: "overlay";
2010
+ screen: "screen";
2011
+ }>>;
2012
+ opacity: z.ZodDefault<z.ZodNumber>;
2013
+ op: z.ZodLiteral<"stripes">;
2014
+ colorA: z.ZodNumber;
2015
+ colorB: z.ZodNumber;
2016
+ count: z.ZodDefault<z.ZodNumber>;
2017
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2018
+ }, z.core.$strict>, z.ZodObject<{
2019
+ blend: z.ZodDefault<z.ZodEnum<{
2020
+ multiply: "multiply";
2021
+ normal: "normal";
2022
+ overlay: "overlay";
2023
+ screen: "screen";
2024
+ }>>;
2025
+ opacity: z.ZodDefault<z.ZodNumber>;
2026
+ op: z.ZodLiteral<"gradient">;
2027
+ from: z.ZodNumber;
2028
+ to: z.ZodNumber;
2029
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2030
+ }, z.core.$strict>, z.ZodObject<{
2031
+ blend: z.ZodDefault<z.ZodEnum<{
2032
+ multiply: "multiply";
2033
+ normal: "normal";
2034
+ overlay: "overlay";
2035
+ screen: "screen";
2036
+ }>>;
2037
+ opacity: z.ZodDefault<z.ZodNumber>;
2038
+ op: z.ZodLiteral<"bricks">;
2039
+ brick: z.ZodNumber;
2040
+ mortar: z.ZodNumber;
2041
+ rows: z.ZodDefault<z.ZodNumber>;
2042
+ cols: z.ZodDefault<z.ZodNumber>;
2043
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
2044
+ stagger: z.ZodDefault<z.ZodNumber>;
2045
+ }, z.core.$strict>, z.ZodObject<{
2046
+ blend: z.ZodDefault<z.ZodEnum<{
2047
+ multiply: "multiply";
2048
+ normal: "normal";
2049
+ overlay: "overlay";
2050
+ screen: "screen";
2051
+ }>>;
2052
+ opacity: z.ZodDefault<z.ZodNumber>;
2053
+ op: z.ZodLiteral<"noise">;
2054
+ colorA: z.ZodNumber;
2055
+ colorB: z.ZodNumber;
2056
+ scale: z.ZodDefault<z.ZodNumber>;
2057
+ octaves: z.ZodDefault<z.ZodNumber>;
2058
+ seed: z.ZodDefault<z.ZodNumber>;
2059
+ }, z.core.$strict>], "op">>;
2060
+ }, z.core.$strict>, z.ZodObject<{
2061
+ schemaVersion: z.ZodLiteral<3>;
2062
+ width: z.ZodNumber;
2063
+ height: z.ZodNumber;
2064
+ usage: z.ZodEnum<{
2065
+ albedo: "albedo";
2066
+ emissive: "emissive";
2067
+ metallicRoughness: "metallicRoughness";
2068
+ metalness: "metalness";
2069
+ normal: "normal";
2070
+ occlusion: "occlusion";
2071
+ roughness: "roughness";
2072
+ }>;
2073
+ name: z.ZodOptional<z.ZodString>;
2074
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2075
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2076
+ op: z.ZodLiteral<"paint">;
2077
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2078
+ x: z.ZodNumber;
2079
+ y: z.ZodNumber;
2080
+ width: z.ZodNumber;
2081
+ height: z.ZodNumber;
2082
+ kind: z.ZodLiteral<"rectangle">;
2083
+ }, z.core.$strict>, z.ZodObject<{
2084
+ x: z.ZodNumber;
2085
+ y: z.ZodNumber;
2086
+ width: z.ZodNumber;
2087
+ height: z.ZodNumber;
2088
+ kind: z.ZodLiteral<"ellipse">;
2089
+ }, z.core.$strict>, z.ZodObject<{
2090
+ kind: z.ZodLiteral<"polygon">;
2091
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2092
+ }, z.core.$strict>, z.ZodObject<{
2093
+ kind: z.ZodLiteral<"line">;
2094
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2095
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2096
+ width: z.ZodNumber;
2097
+ }, z.core.$strict>], "kind">;
2098
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2099
+ opacity: z.ZodNumber;
2100
+ }, z.core.$strict>, z.ZodObject<{
2101
+ op: z.ZodLiteral<"mask">;
2102
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2103
+ x: z.ZodNumber;
2104
+ y: z.ZodNumber;
2105
+ width: z.ZodNumber;
2106
+ height: z.ZodNumber;
2107
+ kind: z.ZodLiteral<"rectangle">;
2108
+ }, z.core.$strict>, z.ZodObject<{
2109
+ x: z.ZodNumber;
2110
+ y: z.ZodNumber;
2111
+ width: z.ZodNumber;
2112
+ height: z.ZodNumber;
2113
+ kind: z.ZodLiteral<"ellipse">;
2114
+ }, z.core.$strict>, z.ZodObject<{
2115
+ kind: z.ZodLiteral<"polygon">;
2116
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2117
+ }, z.core.$strict>, z.ZodObject<{
2118
+ kind: z.ZodLiteral<"line">;
2119
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2120
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2121
+ width: z.ZodNumber;
2122
+ }, z.core.$strict>], "kind">;
2123
+ alpha: z.ZodNumber;
2124
+ invert: z.ZodBoolean;
2125
+ }, z.core.$strict>, z.ZodObject<{
2126
+ op: z.ZodLiteral<"stamps">;
2127
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2128
+ x: z.ZodNumber;
2129
+ y: z.ZodNumber;
2130
+ width: z.ZodNumber;
2131
+ height: z.ZodNumber;
2132
+ kind: z.ZodLiteral<"rectangle">;
2133
+ }, z.core.$strict>, z.ZodObject<{
2134
+ x: z.ZodNumber;
2135
+ y: z.ZodNumber;
2136
+ width: z.ZodNumber;
2137
+ height: z.ZodNumber;
2138
+ kind: z.ZodLiteral<"ellipse">;
2139
+ }, z.core.$strict>, z.ZodObject<{
2140
+ kind: z.ZodLiteral<"polygon">;
2141
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2142
+ }, z.core.$strict>, z.ZodObject<{
2143
+ kind: z.ZodLiteral<"line">;
2144
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2145
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2146
+ width: z.ZodNumber;
2147
+ }, z.core.$strict>], "kind">;
2148
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2149
+ opacity: z.ZodNumber;
2150
+ count: z.ZodNumber;
2151
+ seed: z.ZodNumber;
2152
+ area: z.ZodObject<{
2153
+ x: z.ZodNumber;
2154
+ y: z.ZodNumber;
2155
+ width: z.ZodNumber;
2156
+ height: z.ZodNumber;
2157
+ }, z.core.$strict>;
2158
+ periodic: z.ZodBoolean;
2159
+ }, z.core.$strict>, z.ZodObject<{
2160
+ op: z.ZodLiteral<"legacy-v2">;
2161
+ alpha: z.ZodNumber;
2162
+ opacity: z.ZodNumber;
2163
+ spec: z.ZodType<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown>>;
2164
+ }, z.core.$strict>], "op">>;
2165
+ palette: z.ZodOptional<z.ZodObject<{
2166
+ colors: z.ZodArray<z.ZodNumber>;
2167
+ dither: z.ZodEnum<{
2168
+ bayer4: "bayer4";
2169
+ none: "none";
2170
+ }>;
2171
+ }, z.core.$strict>>;
2172
+ }, z.core.$strict>]>;
2173
+ recipeHash: z.ZodString;
2174
+ pixelHash: z.ZodString;
2175
+ encoder: z.ZodObject<{
2176
+ name: z.ZodLiteral<"sharp">;
2177
+ version: z.ZodString;
2178
+ }, z.core.$strict>;
2179
+ derive: z.ZodOptional<z.ZodObject<{
2180
+ kind: z.ZodLiteral<"normal-from-height">;
2181
+ strength: z.ZodNumber;
2182
+ }, z.core.$strict>>;
2183
+ }, z.core.$strict>, z.ZodObject<{
2184
+ kind: z.ZodLiteral<"atlas">;
2185
+ compilerId: z.ZodLiteral<"kiln.texture-atlas.v1.1">;
2186
+ spec: z.ZodType<CanonicalTextureAtlasSpecV1, unknown, z.core.$ZodTypeInternals<CanonicalTextureAtlasSpecV1, unknown>>;
2187
+ manifest: z.ZodType<TextureAtlasManifestV1, unknown, z.core.$ZodTypeInternals<TextureAtlasManifestV1, unknown>>;
2188
+ encoder: z.ZodObject<{
2189
+ name: z.ZodLiteral<"sharp">;
2190
+ version: z.ZodString;
2191
+ }, z.core.$strict>;
2192
+ }, z.core.$strict>], "kind">>;
2193
+ }, z.core.$strict>>;
2194
+ }, z.core.$strict>], "schemaVersion">;
2195
+ }, z.core.$strict>>;
2196
+ }, z.core.$strict>;
2197
+ export declare const materialLibraryPayloadAnySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2198
+ schemaVersion: z.ZodLiteral<1>;
2199
+ records: z.ZodArray<z.ZodObject<{
2200
+ manifest: z.ZodObject<{
2201
+ schemaVersion: z.ZodLiteral<1>;
2202
+ materialId: z.ZodString;
2203
+ revisionId: z.ZodString;
2204
+ name: z.ZodString;
2205
+ tags: z.ZodArray<z.ZodString>;
2206
+ tileable: z.ZodBoolean;
2207
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
2208
+ width: z.ZodNumber;
2209
+ height: z.ZodNumber;
2210
+ }, z.core.$strict>>;
2211
+ parameters: z.ZodObject<{
2212
+ baseColor: z.ZodOptional<z.ZodNumber>;
2213
+ roughness: z.ZodDefault<z.ZodNumber>;
2214
+ metalness: z.ZodDefault<z.ZodNumber>;
2215
+ emissive: z.ZodOptional<z.ZodNumber>;
2216
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
2217
+ alphaMode: z.ZodDefault<z.ZodEnum<{
2218
+ blend: "blend";
2219
+ mask: "mask";
2220
+ opaque: "opaque";
2221
+ }>>;
2222
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
2223
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
2224
+ }, z.core.$strict>;
2225
+ sources: z.ZodArray<z.ZodObject<{
2226
+ id: z.ZodString;
2227
+ kind: z.ZodEnum<{
2228
+ external: "external";
2229
+ procedural: "procedural";
2230
+ }>;
2231
+ provider: z.ZodString;
2232
+ creator: z.ZodString;
2233
+ assetId: z.ZodOptional<z.ZodString>;
2234
+ assetUrl: z.ZodOptional<z.ZodString>;
2235
+ accessedAt: z.ZodOptional<z.ZodString>;
2236
+ license: z.ZodObject<{
2237
+ spdx: z.ZodString;
2238
+ url: z.ZodString;
2239
+ attribution: z.ZodString;
2240
+ }, z.core.$strict>;
2241
+ originalFiles: z.ZodArray<z.ZodObject<{
2242
+ name: z.ZodString;
2243
+ sha256: z.ZodString;
2244
+ bytes: z.ZodNumber;
2245
+ }, z.core.$strict>>;
2246
+ }, z.core.$strict>>;
2247
+ maps: z.ZodArray<z.ZodObject<{
2248
+ slot: z.ZodEnum<{
2249
+ baseColor: "baseColor";
2250
+ emissive: "emissive";
2251
+ metallicRoughness: "metallicRoughness";
2252
+ normal: "normal";
2253
+ occlusion: "occlusion";
2254
+ }>;
2255
+ file: z.ZodEnum<{
2256
+ "baseColor.png": "baseColor.png";
2257
+ "emissive.png": "emissive.png";
2258
+ "metallicRoughness.png": "metallicRoughness.png";
2259
+ "normal.png": "normal.png";
2260
+ "occlusion.png": "occlusion.png";
2261
+ }>;
2262
+ sha256: z.ZodString;
2263
+ bytes: z.ZodNumber;
2264
+ width: z.ZodNumber;
2265
+ height: z.ZodNumber;
2266
+ usage: z.ZodEnum<{
2267
+ albedo: "albedo";
2268
+ emissive: "emissive";
2269
+ metallicRoughness: "metallicRoughness";
2270
+ normal: "normal";
2271
+ occlusion: "occlusion";
2272
+ }>;
2273
+ colorSpace: z.ZodEnum<{
2274
+ linear: "linear";
2275
+ srgb: "srgb";
2276
+ }>;
2277
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
2278
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
2279
+ sourceId: z.ZodString;
2280
+ originalFile: z.ZodOptional<z.ZodString>;
2281
+ transforms: z.ZodArray<z.ZodObject<{
2282
+ operation: z.ZodString;
2283
+ tool: z.ZodString;
2284
+ version: z.ZodString;
2285
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
2286
+ }, z.core.$strict>>;
2287
+ procedural: z.ZodOptional<z.ZodObject<{
2288
+ compiler: z.ZodLiteral<"kiln.procedural-texture.v2">;
2289
+ spec: z.ZodObject<{
2290
+ schemaVersion: z.ZodLiteral<2>;
2291
+ size: z.ZodDefault<z.ZodNumber>;
2292
+ usage: z.ZodDefault<z.ZodEnum<{
2293
+ albedo: "albedo";
2294
+ emissive: "emissive";
2295
+ metallicRoughness: "metallicRoughness";
2296
+ metalness: "metalness";
2297
+ normal: "normal";
2298
+ occlusion: "occlusion";
2299
+ roughness: "roughness";
2300
+ }>>;
2301
+ name: z.ZodOptional<z.ZodString>;
2302
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2303
+ blend: z.ZodDefault<z.ZodEnum<{
2304
+ multiply: "multiply";
2305
+ normal: "normal";
2306
+ overlay: "overlay";
2307
+ screen: "screen";
2308
+ }>>;
2309
+ opacity: z.ZodDefault<z.ZodNumber>;
2310
+ op: z.ZodLiteral<"solid">;
2311
+ color: z.ZodNumber;
2312
+ }, z.core.$strict>, z.ZodObject<{
2313
+ blend: z.ZodDefault<z.ZodEnum<{
2314
+ multiply: "multiply";
2315
+ normal: "normal";
2316
+ overlay: "overlay";
2317
+ screen: "screen";
2318
+ }>>;
2319
+ opacity: z.ZodDefault<z.ZodNumber>;
2320
+ op: z.ZodLiteral<"checker">;
2321
+ colorA: z.ZodNumber;
2322
+ colorB: z.ZodNumber;
2323
+ squares: z.ZodDefault<z.ZodNumber>;
2324
+ }, z.core.$strict>, z.ZodObject<{
2325
+ blend: z.ZodDefault<z.ZodEnum<{
2326
+ multiply: "multiply";
2327
+ normal: "normal";
2328
+ overlay: "overlay";
2329
+ screen: "screen";
2330
+ }>>;
2331
+ opacity: z.ZodDefault<z.ZodNumber>;
2332
+ op: z.ZodLiteral<"stripes">;
2333
+ colorA: z.ZodNumber;
2334
+ colorB: z.ZodNumber;
2335
+ count: z.ZodDefault<z.ZodNumber>;
2336
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2337
+ }, z.core.$strict>, z.ZodObject<{
2338
+ blend: z.ZodDefault<z.ZodEnum<{
2339
+ multiply: "multiply";
2340
+ normal: "normal";
2341
+ overlay: "overlay";
2342
+ screen: "screen";
2343
+ }>>;
2344
+ opacity: z.ZodDefault<z.ZodNumber>;
2345
+ op: z.ZodLiteral<"gradient">;
2346
+ from: z.ZodNumber;
2347
+ to: z.ZodNumber;
2348
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2349
+ }, z.core.$strict>, z.ZodObject<{
2350
+ blend: z.ZodDefault<z.ZodEnum<{
2351
+ multiply: "multiply";
2352
+ normal: "normal";
2353
+ overlay: "overlay";
2354
+ screen: "screen";
2355
+ }>>;
2356
+ opacity: z.ZodDefault<z.ZodNumber>;
2357
+ op: z.ZodLiteral<"bricks">;
2358
+ brick: z.ZodNumber;
2359
+ mortar: z.ZodNumber;
2360
+ rows: z.ZodDefault<z.ZodNumber>;
2361
+ cols: z.ZodDefault<z.ZodNumber>;
2362
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
2363
+ stagger: z.ZodDefault<z.ZodNumber>;
2364
+ }, z.core.$strict>, z.ZodObject<{
2365
+ blend: z.ZodDefault<z.ZodEnum<{
2366
+ multiply: "multiply";
2367
+ normal: "normal";
2368
+ overlay: "overlay";
2369
+ screen: "screen";
2370
+ }>>;
2371
+ opacity: z.ZodDefault<z.ZodNumber>;
2372
+ op: z.ZodLiteral<"noise">;
2373
+ colorA: z.ZodNumber;
2374
+ colorB: z.ZodNumber;
2375
+ scale: z.ZodDefault<z.ZodNumber>;
2376
+ octaves: z.ZodDefault<z.ZodNumber>;
2377
+ seed: z.ZodDefault<z.ZodNumber>;
2378
+ }, z.core.$strict>], "op">>;
2379
+ }, z.core.$strict>;
2380
+ derive: z.ZodOptional<z.ZodObject<{
2381
+ kind: z.ZodLiteral<"normal-from-height">;
2382
+ strength: z.ZodNumber;
2383
+ }, z.core.$strict>>;
2384
+ recipeHash: z.ZodString;
2385
+ pixelHash: z.ZodString;
2386
+ encoder: z.ZodObject<{
2387
+ name: z.ZodLiteral<"sharp">;
2388
+ version: z.ZodString;
2389
+ }, z.core.$strict>;
2390
+ }, z.core.$strict>>;
2391
+ }, z.core.$strict>>;
2392
+ }, z.core.$strict>;
2393
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
2394
+ }, z.core.$strict>>;
2395
+ }, z.core.$strict>, z.ZodObject<{
2396
+ schemaVersion: z.ZodLiteral<2>;
2397
+ records: z.ZodArray<z.ZodObject<{
2398
+ files: z.ZodRecord<z.ZodString, z.ZodString>;
2399
+ manifest: z.ZodDiscriminatedUnion<[z.ZodObject<{
2400
+ schemaVersion: z.ZodLiteral<1>;
2401
+ materialId: z.ZodString;
2402
+ revisionId: z.ZodString;
2403
+ name: z.ZodString;
2404
+ tags: z.ZodArray<z.ZodString>;
2405
+ tileable: z.ZodBoolean;
2406
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
2407
+ width: z.ZodNumber;
2408
+ height: z.ZodNumber;
2409
+ }, z.core.$strict>>;
2410
+ parameters: z.ZodObject<{
2411
+ baseColor: z.ZodOptional<z.ZodNumber>;
2412
+ roughness: z.ZodDefault<z.ZodNumber>;
2413
+ metalness: z.ZodDefault<z.ZodNumber>;
2414
+ emissive: z.ZodOptional<z.ZodNumber>;
2415
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
2416
+ alphaMode: z.ZodDefault<z.ZodEnum<{
2417
+ blend: "blend";
2418
+ mask: "mask";
2419
+ opaque: "opaque";
2420
+ }>>;
2421
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
2422
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
2423
+ }, z.core.$strict>;
2424
+ sources: z.ZodArray<z.ZodObject<{
2425
+ id: z.ZodString;
2426
+ kind: z.ZodEnum<{
2427
+ external: "external";
2428
+ procedural: "procedural";
2429
+ }>;
2430
+ provider: z.ZodString;
2431
+ creator: z.ZodString;
2432
+ assetId: z.ZodOptional<z.ZodString>;
2433
+ assetUrl: z.ZodOptional<z.ZodString>;
2434
+ accessedAt: z.ZodOptional<z.ZodString>;
2435
+ license: z.ZodObject<{
2436
+ spdx: z.ZodString;
2437
+ url: z.ZodString;
2438
+ attribution: z.ZodString;
2439
+ }, z.core.$strict>;
2440
+ originalFiles: z.ZodArray<z.ZodObject<{
2441
+ name: z.ZodString;
2442
+ sha256: z.ZodString;
2443
+ bytes: z.ZodNumber;
2444
+ }, z.core.$strict>>;
2445
+ }, z.core.$strict>>;
2446
+ maps: z.ZodArray<z.ZodObject<{
2447
+ slot: z.ZodEnum<{
2448
+ baseColor: "baseColor";
2449
+ emissive: "emissive";
2450
+ metallicRoughness: "metallicRoughness";
2451
+ normal: "normal";
2452
+ occlusion: "occlusion";
2453
+ }>;
2454
+ file: z.ZodEnum<{
2455
+ "baseColor.png": "baseColor.png";
2456
+ "emissive.png": "emissive.png";
2457
+ "metallicRoughness.png": "metallicRoughness.png";
2458
+ "normal.png": "normal.png";
2459
+ "occlusion.png": "occlusion.png";
2460
+ }>;
2461
+ sha256: z.ZodString;
2462
+ bytes: z.ZodNumber;
2463
+ width: z.ZodNumber;
2464
+ height: z.ZodNumber;
2465
+ usage: z.ZodEnum<{
2466
+ albedo: "albedo";
2467
+ emissive: "emissive";
2468
+ metallicRoughness: "metallicRoughness";
2469
+ normal: "normal";
2470
+ occlusion: "occlusion";
2471
+ }>;
2472
+ colorSpace: z.ZodEnum<{
2473
+ linear: "linear";
2474
+ srgb: "srgb";
2475
+ }>;
2476
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
2477
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
2478
+ sourceId: z.ZodString;
2479
+ originalFile: z.ZodOptional<z.ZodString>;
2480
+ transforms: z.ZodArray<z.ZodObject<{
2481
+ operation: z.ZodString;
2482
+ tool: z.ZodString;
2483
+ version: z.ZodString;
2484
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
2485
+ }, z.core.$strict>>;
2486
+ procedural: z.ZodOptional<z.ZodObject<{
2487
+ compiler: z.ZodLiteral<"kiln.procedural-texture.v2">;
2488
+ spec: z.ZodObject<{
2489
+ schemaVersion: z.ZodLiteral<2>;
2490
+ size: z.ZodDefault<z.ZodNumber>;
2491
+ usage: z.ZodDefault<z.ZodEnum<{
2492
+ albedo: "albedo";
2493
+ emissive: "emissive";
2494
+ metallicRoughness: "metallicRoughness";
2495
+ metalness: "metalness";
2496
+ normal: "normal";
2497
+ occlusion: "occlusion";
2498
+ roughness: "roughness";
2499
+ }>>;
2500
+ name: z.ZodOptional<z.ZodString>;
2501
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2502
+ blend: z.ZodDefault<z.ZodEnum<{
2503
+ multiply: "multiply";
2504
+ normal: "normal";
2505
+ overlay: "overlay";
2506
+ screen: "screen";
2507
+ }>>;
2508
+ opacity: z.ZodDefault<z.ZodNumber>;
2509
+ op: z.ZodLiteral<"solid">;
2510
+ color: z.ZodNumber;
2511
+ }, z.core.$strict>, z.ZodObject<{
2512
+ blend: z.ZodDefault<z.ZodEnum<{
2513
+ multiply: "multiply";
2514
+ normal: "normal";
2515
+ overlay: "overlay";
2516
+ screen: "screen";
2517
+ }>>;
2518
+ opacity: z.ZodDefault<z.ZodNumber>;
2519
+ op: z.ZodLiteral<"checker">;
2520
+ colorA: z.ZodNumber;
2521
+ colorB: z.ZodNumber;
2522
+ squares: z.ZodDefault<z.ZodNumber>;
2523
+ }, z.core.$strict>, z.ZodObject<{
2524
+ blend: z.ZodDefault<z.ZodEnum<{
2525
+ multiply: "multiply";
2526
+ normal: "normal";
2527
+ overlay: "overlay";
2528
+ screen: "screen";
2529
+ }>>;
2530
+ opacity: z.ZodDefault<z.ZodNumber>;
2531
+ op: z.ZodLiteral<"stripes">;
2532
+ colorA: z.ZodNumber;
2533
+ colorB: z.ZodNumber;
2534
+ count: z.ZodDefault<z.ZodNumber>;
2535
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2536
+ }, z.core.$strict>, z.ZodObject<{
2537
+ blend: z.ZodDefault<z.ZodEnum<{
2538
+ multiply: "multiply";
2539
+ normal: "normal";
2540
+ overlay: "overlay";
2541
+ screen: "screen";
2542
+ }>>;
2543
+ opacity: z.ZodDefault<z.ZodNumber>;
2544
+ op: z.ZodLiteral<"gradient">;
2545
+ from: z.ZodNumber;
2546
+ to: z.ZodNumber;
2547
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2548
+ }, z.core.$strict>, z.ZodObject<{
2549
+ blend: z.ZodDefault<z.ZodEnum<{
2550
+ multiply: "multiply";
2551
+ normal: "normal";
2552
+ overlay: "overlay";
2553
+ screen: "screen";
2554
+ }>>;
2555
+ opacity: z.ZodDefault<z.ZodNumber>;
2556
+ op: z.ZodLiteral<"bricks">;
2557
+ brick: z.ZodNumber;
2558
+ mortar: z.ZodNumber;
2559
+ rows: z.ZodDefault<z.ZodNumber>;
2560
+ cols: z.ZodDefault<z.ZodNumber>;
2561
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
2562
+ stagger: z.ZodDefault<z.ZodNumber>;
2563
+ }, z.core.$strict>, z.ZodObject<{
2564
+ blend: z.ZodDefault<z.ZodEnum<{
2565
+ multiply: "multiply";
2566
+ normal: "normal";
2567
+ overlay: "overlay";
2568
+ screen: "screen";
2569
+ }>>;
2570
+ opacity: z.ZodDefault<z.ZodNumber>;
2571
+ op: z.ZodLiteral<"noise">;
2572
+ colorA: z.ZodNumber;
2573
+ colorB: z.ZodNumber;
2574
+ scale: z.ZodDefault<z.ZodNumber>;
2575
+ octaves: z.ZodDefault<z.ZodNumber>;
2576
+ seed: z.ZodDefault<z.ZodNumber>;
2577
+ }, z.core.$strict>], "op">>;
2578
+ }, z.core.$strict>;
2579
+ derive: z.ZodOptional<z.ZodObject<{
2580
+ kind: z.ZodLiteral<"normal-from-height">;
2581
+ strength: z.ZodNumber;
2582
+ }, z.core.$strict>>;
2583
+ recipeHash: z.ZodString;
2584
+ pixelHash: z.ZodString;
2585
+ encoder: z.ZodObject<{
2586
+ name: z.ZodLiteral<"sharp">;
2587
+ version: z.ZodString;
2588
+ }, z.core.$strict>;
2589
+ }, z.core.$strict>>;
2590
+ }, z.core.$strict>>;
2591
+ }, z.core.$strict>, z.ZodObject<{
2592
+ materialId: z.ZodString;
2593
+ revisionId: z.ZodString;
2594
+ name: z.ZodString;
2595
+ tags: z.ZodArray<z.ZodString>;
2596
+ tileable: z.ZodBoolean;
2597
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
2598
+ width: z.ZodNumber;
2599
+ height: z.ZodNumber;
2600
+ }, z.core.$strict>>;
2601
+ parameters: z.ZodObject<{
2602
+ baseColor: z.ZodOptional<z.ZodNumber>;
2603
+ roughness: z.ZodDefault<z.ZodNumber>;
2604
+ metalness: z.ZodDefault<z.ZodNumber>;
2605
+ emissive: z.ZodOptional<z.ZodNumber>;
2606
+ emissiveIntensity: z.ZodDefault<z.ZodNumber>;
2607
+ alphaMode: z.ZodDefault<z.ZodEnum<{
2608
+ blend: "blend";
2609
+ mask: "mask";
2610
+ opaque: "opaque";
2611
+ }>>;
2612
+ alphaCutoff: z.ZodDefault<z.ZodNumber>;
2613
+ doubleSided: z.ZodDefault<z.ZodBoolean>;
2614
+ }, z.core.$strict>;
2615
+ sources: z.ZodArray<z.ZodObject<{
2616
+ id: z.ZodString;
2617
+ kind: z.ZodEnum<{
2618
+ external: "external";
2619
+ procedural: "procedural";
2620
+ }>;
2621
+ provider: z.ZodString;
2622
+ creator: z.ZodString;
2623
+ assetId: z.ZodOptional<z.ZodString>;
2624
+ assetUrl: z.ZodOptional<z.ZodString>;
2625
+ accessedAt: z.ZodOptional<z.ZodString>;
2626
+ license: z.ZodObject<{
2627
+ spdx: z.ZodString;
2628
+ url: z.ZodString;
2629
+ attribution: z.ZodString;
2630
+ }, z.core.$strict>;
2631
+ originalFiles: z.ZodArray<z.ZodObject<{
2632
+ name: z.ZodString;
2633
+ sha256: z.ZodString;
2634
+ bytes: z.ZodNumber;
2635
+ }, z.core.$strict>>;
2636
+ }, z.core.$strict>>;
2637
+ schemaVersion: z.ZodLiteral<2>;
2638
+ dependencies: z.ZodArray<z.ZodObject<{
2639
+ resourceId: z.ZodString;
2640
+ revisionId: z.ZodString;
2641
+ sha256: z.ZodString;
2642
+ }, z.core.$strict>>;
2643
+ maps: z.ZodArray<z.ZodObject<{
2644
+ slot: z.ZodEnum<{
2645
+ baseColor: "baseColor";
2646
+ emissive: "emissive";
2647
+ metallicRoughness: "metallicRoughness";
2648
+ normal: "normal";
2649
+ occlusion: "occlusion";
2650
+ }>;
2651
+ file: z.ZodEnum<{
2652
+ "baseColor.png": "baseColor.png";
2653
+ "emissive.png": "emissive.png";
2654
+ "metallicRoughness.png": "metallicRoughness.png";
2655
+ "normal.png": "normal.png";
2656
+ "occlusion.png": "occlusion.png";
2657
+ }>;
2658
+ sha256: z.ZodString;
2659
+ bytes: z.ZodNumber;
2660
+ width: z.ZodNumber;
2661
+ height: z.ZodNumber;
2662
+ usage: z.ZodEnum<{
2663
+ albedo: "albedo";
2664
+ emissive: "emissive";
2665
+ metallicRoughness: "metallicRoughness";
2666
+ normal: "normal";
2667
+ occlusion: "occlusion";
2668
+ }>;
2669
+ colorSpace: z.ZodEnum<{
2670
+ linear: "linear";
2671
+ srgb: "srgb";
2672
+ }>;
2673
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
2674
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
2675
+ sourceId: z.ZodString;
2676
+ originalFile: z.ZodOptional<z.ZodString>;
2677
+ transforms: z.ZodArray<z.ZodObject<{
2678
+ operation: z.ZodString;
2679
+ tool: z.ZodString;
2680
+ version: z.ZodString;
2681
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
2682
+ }, z.core.$strict>>;
2683
+ sampler: z.ZodObject<{
2684
+ minFilter: z.ZodEnum<{
2685
+ linear: "linear";
2686
+ "linear-mipmap-linear": "linear-mipmap-linear";
2687
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
2688
+ nearest: "nearest";
2689
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
2690
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
2691
+ }>;
2692
+ magFilter: z.ZodEnum<{
2693
+ linear: "linear";
2694
+ nearest: "nearest";
2695
+ }>;
2696
+ wrapS: z.ZodEnum<{
2697
+ "clamp-to-edge": "clamp-to-edge";
2698
+ "mirrored-repeat": "mirrored-repeat";
2699
+ repeat: "repeat";
2700
+ }>;
2701
+ wrapT: z.ZodEnum<{
2702
+ "clamp-to-edge": "clamp-to-edge";
2703
+ "mirrored-repeat": "mirrored-repeat";
2704
+ repeat: "repeat";
2705
+ }>;
2706
+ }, z.core.$strict>;
2707
+ pixelHash: z.ZodString;
2708
+ recipe: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2709
+ kind: z.ZodLiteral<"procedural">;
2710
+ compilerId: z.ZodEnum<{
2711
+ "kiln.procedural-rgba.v3.1": "kiln.procedural-rgba.v3.1";
2712
+ "kiln.procedural-texture.v2": "kiln.procedural-texture.v2";
2713
+ }>;
2714
+ spec: z.ZodUnion<readonly [z.ZodObject<{
2715
+ schemaVersion: z.ZodLiteral<2>;
2716
+ size: z.ZodDefault<z.ZodNumber>;
2717
+ usage: z.ZodDefault<z.ZodEnum<{
2718
+ albedo: "albedo";
2719
+ emissive: "emissive";
2720
+ metallicRoughness: "metallicRoughness";
2721
+ metalness: "metalness";
2722
+ normal: "normal";
2723
+ occlusion: "occlusion";
2724
+ roughness: "roughness";
2725
+ }>>;
2726
+ name: z.ZodOptional<z.ZodString>;
2727
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2728
+ blend: z.ZodDefault<z.ZodEnum<{
2729
+ multiply: "multiply";
2730
+ normal: "normal";
2731
+ overlay: "overlay";
2732
+ screen: "screen";
2733
+ }>>;
2734
+ opacity: z.ZodDefault<z.ZodNumber>;
2735
+ op: z.ZodLiteral<"solid">;
2736
+ color: z.ZodNumber;
2737
+ }, z.core.$strict>, z.ZodObject<{
2738
+ blend: z.ZodDefault<z.ZodEnum<{
2739
+ multiply: "multiply";
2740
+ normal: "normal";
2741
+ overlay: "overlay";
2742
+ screen: "screen";
2743
+ }>>;
2744
+ opacity: z.ZodDefault<z.ZodNumber>;
2745
+ op: z.ZodLiteral<"checker">;
2746
+ colorA: z.ZodNumber;
2747
+ colorB: z.ZodNumber;
2748
+ squares: z.ZodDefault<z.ZodNumber>;
2749
+ }, z.core.$strict>, z.ZodObject<{
2750
+ blend: z.ZodDefault<z.ZodEnum<{
2751
+ multiply: "multiply";
2752
+ normal: "normal";
2753
+ overlay: "overlay";
2754
+ screen: "screen";
2755
+ }>>;
2756
+ opacity: z.ZodDefault<z.ZodNumber>;
2757
+ op: z.ZodLiteral<"stripes">;
2758
+ colorA: z.ZodNumber;
2759
+ colorB: z.ZodNumber;
2760
+ count: z.ZodDefault<z.ZodNumber>;
2761
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2762
+ }, z.core.$strict>, z.ZodObject<{
2763
+ blend: z.ZodDefault<z.ZodEnum<{
2764
+ multiply: "multiply";
2765
+ normal: "normal";
2766
+ overlay: "overlay";
2767
+ screen: "screen";
2768
+ }>>;
2769
+ opacity: z.ZodDefault<z.ZodNumber>;
2770
+ op: z.ZodLiteral<"gradient">;
2771
+ from: z.ZodNumber;
2772
+ to: z.ZodNumber;
2773
+ angleDeg: z.ZodDefault<z.ZodNumber>;
2774
+ }, z.core.$strict>, z.ZodObject<{
2775
+ blend: z.ZodDefault<z.ZodEnum<{
2776
+ multiply: "multiply";
2777
+ normal: "normal";
2778
+ overlay: "overlay";
2779
+ screen: "screen";
2780
+ }>>;
2781
+ opacity: z.ZodDefault<z.ZodNumber>;
2782
+ op: z.ZodLiteral<"bricks">;
2783
+ brick: z.ZodNumber;
2784
+ mortar: z.ZodNumber;
2785
+ rows: z.ZodDefault<z.ZodNumber>;
2786
+ cols: z.ZodDefault<z.ZodNumber>;
2787
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
2788
+ stagger: z.ZodDefault<z.ZodNumber>;
2789
+ }, z.core.$strict>, z.ZodObject<{
2790
+ blend: z.ZodDefault<z.ZodEnum<{
2791
+ multiply: "multiply";
2792
+ normal: "normal";
2793
+ overlay: "overlay";
2794
+ screen: "screen";
2795
+ }>>;
2796
+ opacity: z.ZodDefault<z.ZodNumber>;
2797
+ op: z.ZodLiteral<"noise">;
2798
+ colorA: z.ZodNumber;
2799
+ colorB: z.ZodNumber;
2800
+ scale: z.ZodDefault<z.ZodNumber>;
2801
+ octaves: z.ZodDefault<z.ZodNumber>;
2802
+ seed: z.ZodDefault<z.ZodNumber>;
2803
+ }, z.core.$strict>], "op">>;
2804
+ }, z.core.$strict>, z.ZodObject<{
2805
+ schemaVersion: z.ZodLiteral<3>;
2806
+ width: z.ZodNumber;
2807
+ height: z.ZodNumber;
2808
+ usage: z.ZodEnum<{
2809
+ albedo: "albedo";
2810
+ emissive: "emissive";
2811
+ metallicRoughness: "metallicRoughness";
2812
+ metalness: "metalness";
2813
+ normal: "normal";
2814
+ occlusion: "occlusion";
2815
+ roughness: "roughness";
2816
+ }>;
2817
+ name: z.ZodOptional<z.ZodString>;
2818
+ background: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2819
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
2820
+ op: z.ZodLiteral<"paint">;
2821
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2822
+ x: z.ZodNumber;
2823
+ y: z.ZodNumber;
2824
+ width: z.ZodNumber;
2825
+ height: z.ZodNumber;
2826
+ kind: z.ZodLiteral<"rectangle">;
2827
+ }, z.core.$strict>, z.ZodObject<{
2828
+ x: z.ZodNumber;
2829
+ y: z.ZodNumber;
2830
+ width: z.ZodNumber;
2831
+ height: z.ZodNumber;
2832
+ kind: z.ZodLiteral<"ellipse">;
2833
+ }, z.core.$strict>, z.ZodObject<{
2834
+ kind: z.ZodLiteral<"polygon">;
2835
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2836
+ }, z.core.$strict>, z.ZodObject<{
2837
+ kind: z.ZodLiteral<"line">;
2838
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2839
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2840
+ width: z.ZodNumber;
2841
+ }, z.core.$strict>], "kind">;
2842
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2843
+ opacity: z.ZodNumber;
2844
+ }, z.core.$strict>, z.ZodObject<{
2845
+ op: z.ZodLiteral<"mask">;
2846
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2847
+ x: z.ZodNumber;
2848
+ y: z.ZodNumber;
2849
+ width: z.ZodNumber;
2850
+ height: z.ZodNumber;
2851
+ kind: z.ZodLiteral<"rectangle">;
2852
+ }, z.core.$strict>, z.ZodObject<{
2853
+ x: z.ZodNumber;
2854
+ y: z.ZodNumber;
2855
+ width: z.ZodNumber;
2856
+ height: z.ZodNumber;
2857
+ kind: z.ZodLiteral<"ellipse">;
2858
+ }, z.core.$strict>, z.ZodObject<{
2859
+ kind: z.ZodLiteral<"polygon">;
2860
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2861
+ }, z.core.$strict>, z.ZodObject<{
2862
+ kind: z.ZodLiteral<"line">;
2863
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2864
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2865
+ width: z.ZodNumber;
2866
+ }, z.core.$strict>], "kind">;
2867
+ alpha: z.ZodNumber;
2868
+ invert: z.ZodBoolean;
2869
+ }, z.core.$strict>, z.ZodObject<{
2870
+ op: z.ZodLiteral<"stamps">;
2871
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
2872
+ x: z.ZodNumber;
2873
+ y: z.ZodNumber;
2874
+ width: z.ZodNumber;
2875
+ height: z.ZodNumber;
2876
+ kind: z.ZodLiteral<"rectangle">;
2877
+ }, z.core.$strict>, z.ZodObject<{
2878
+ x: z.ZodNumber;
2879
+ y: z.ZodNumber;
2880
+ width: z.ZodNumber;
2881
+ height: z.ZodNumber;
2882
+ kind: z.ZodLiteral<"ellipse">;
2883
+ }, z.core.$strict>, z.ZodObject<{
2884
+ kind: z.ZodLiteral<"polygon">;
2885
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
2886
+ }, z.core.$strict>, z.ZodObject<{
2887
+ kind: z.ZodLiteral<"line">;
2888
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2889
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2890
+ width: z.ZodNumber;
2891
+ }, z.core.$strict>], "kind">;
2892
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2893
+ opacity: z.ZodNumber;
2894
+ count: z.ZodNumber;
2895
+ seed: z.ZodNumber;
2896
+ area: z.ZodObject<{
2897
+ x: z.ZodNumber;
2898
+ y: z.ZodNumber;
2899
+ width: z.ZodNumber;
2900
+ height: z.ZodNumber;
2901
+ }, z.core.$strict>;
2902
+ periodic: z.ZodBoolean;
2903
+ }, z.core.$strict>, z.ZodObject<{
2904
+ op: z.ZodLiteral<"legacy-v2">;
2905
+ alpha: z.ZodNumber;
2906
+ opacity: z.ZodNumber;
2907
+ spec: z.ZodType<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown, z.core.$ZodTypeInternals<import("./procedural-material-v2.js").CanonicalProceduralTextureSpecV2, unknown>>;
2908
+ }, z.core.$strict>], "op">>;
2909
+ palette: z.ZodOptional<z.ZodObject<{
2910
+ colors: z.ZodArray<z.ZodNumber>;
2911
+ dither: z.ZodEnum<{
2912
+ bayer4: "bayer4";
2913
+ none: "none";
2914
+ }>;
2915
+ }, z.core.$strict>>;
2916
+ }, z.core.$strict>]>;
2917
+ recipeHash: z.ZodString;
2918
+ pixelHash: z.ZodString;
2919
+ encoder: z.ZodObject<{
2920
+ name: z.ZodLiteral<"sharp">;
2921
+ version: z.ZodString;
2922
+ }, z.core.$strict>;
2923
+ derive: z.ZodOptional<z.ZodObject<{
2924
+ kind: z.ZodLiteral<"normal-from-height">;
2925
+ strength: z.ZodNumber;
2926
+ }, z.core.$strict>>;
2927
+ }, z.core.$strict>, z.ZodObject<{
2928
+ kind: z.ZodLiteral<"atlas">;
2929
+ compilerId: z.ZodLiteral<"kiln.texture-atlas.v1.1">;
2930
+ spec: z.ZodType<CanonicalTextureAtlasSpecV1, unknown, z.core.$ZodTypeInternals<CanonicalTextureAtlasSpecV1, unknown>>;
2931
+ manifest: z.ZodType<TextureAtlasManifestV1, unknown, z.core.$ZodTypeInternals<TextureAtlasManifestV1, unknown>>;
2932
+ encoder: z.ZodObject<{
2933
+ name: z.ZodLiteral<"sharp">;
2934
+ version: z.ZodString;
2935
+ }, z.core.$strict>;
2936
+ }, z.core.$strict>], "kind">>;
2937
+ }, z.core.$strict>>;
2938
+ }, z.core.$strict>], "schemaVersion">;
2939
+ }, z.core.$strict>>;
2940
+ }, z.core.$strict>], "schemaVersion">;
2941
+ export declare function materialRecordDependencyPins(manifest: MaterialManifest): MaterialMapPinV1[];
2942
+ /** Opt-in JSON-only standalone creation; external bytes remain host-only. */
2943
+ export declare const proceduralMaterialDraftV2Schema: z.ZodObject<{
2944
+ materialId: z.ZodString;
2945
+ name: z.ZodString;
2946
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
2947
+ tileable: z.ZodBoolean;
2948
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
2949
+ width: z.ZodNumber;
2950
+ height: z.ZodNumber;
2951
+ }, z.core.$strict>>;
2952
+ parameters: z.ZodOptional<z.ZodObject<{
2953
+ baseColor: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2954
+ roughness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2955
+ metalness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2956
+ emissive: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
2957
+ emissiveIntensity: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2958
+ alphaMode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
2959
+ blend: "blend";
2960
+ mask: "mask";
2961
+ opaque: "opaque";
2962
+ }>>>;
2963
+ alphaCutoff: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2964
+ doubleSided: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2965
+ }, z.core.$strict>>;
2966
+ sources: z.ZodArray<z.ZodObject<{
2967
+ id: z.ZodString;
2968
+ kind: z.ZodEnum<{
2969
+ external: "external";
2970
+ procedural: "procedural";
2971
+ }>;
2972
+ provider: z.ZodString;
2973
+ creator: z.ZodString;
2974
+ assetId: z.ZodOptional<z.ZodString>;
2975
+ assetUrl: z.ZodOptional<z.ZodString>;
2976
+ accessedAt: z.ZodOptional<z.ZodString>;
2977
+ license: z.ZodObject<{
2978
+ spdx: z.ZodString;
2979
+ url: z.ZodString;
2980
+ attribution: z.ZodString;
2981
+ }, z.core.$strict>;
2982
+ originalFiles: z.ZodArray<z.ZodObject<{
2983
+ name: z.ZodString;
2984
+ sha256: z.ZodString;
2985
+ bytes: z.ZodNumber;
2986
+ }, z.core.$strict>>;
2987
+ }, z.core.$strict>>;
2988
+ schemaVersion: z.ZodLiteral<2>;
2989
+ maps: z.ZodArray<z.ZodObject<{
2990
+ slot: z.ZodEnum<{
2991
+ baseColor: "baseColor";
2992
+ emissive: "emissive";
2993
+ metallicRoughness: "metallicRoughness";
2994
+ normal: "normal";
2995
+ occlusion: "occlusion";
2996
+ }>;
2997
+ sourceId: z.ZodString;
2998
+ transforms: z.ZodArray<z.ZodObject<{
2999
+ operation: z.ZodString;
3000
+ tool: z.ZodString;
3001
+ version: z.ZodString;
3002
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
3003
+ }, z.core.$strict>>;
3004
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
3005
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
3006
+ derive: z.ZodOptional<z.ZodObject<{
3007
+ kind: z.ZodLiteral<"normal-from-height">;
3008
+ strength: z.ZodNumber;
3009
+ }, z.core.$strict>>;
3010
+ sampler: z.ZodObject<{
3011
+ minFilter: z.ZodEnum<{
3012
+ linear: "linear";
3013
+ "linear-mipmap-linear": "linear-mipmap-linear";
3014
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
3015
+ nearest: "nearest";
3016
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
3017
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
3018
+ }>;
3019
+ magFilter: z.ZodEnum<{
3020
+ linear: "linear";
3021
+ nearest: "nearest";
3022
+ }>;
3023
+ wrapS: z.ZodEnum<{
3024
+ "clamp-to-edge": "clamp-to-edge";
3025
+ "mirrored-repeat": "mirrored-repeat";
3026
+ repeat: "repeat";
3027
+ }>;
3028
+ wrapT: z.ZodEnum<{
3029
+ "clamp-to-edge": "clamp-to-edge";
3030
+ "mirrored-repeat": "mirrored-repeat";
3031
+ repeat: "repeat";
3032
+ }>;
3033
+ }, z.core.$strict>;
3034
+ procedural: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
3035
+ schemaVersion: z.ZodLiteral<2>;
3036
+ size: z.ZodDefault<z.ZodNumber>;
3037
+ usage: z.ZodDefault<z.ZodEnum<{
3038
+ albedo: "albedo";
3039
+ emissive: "emissive";
3040
+ metallicRoughness: "metallicRoughness";
3041
+ metalness: "metalness";
3042
+ normal: "normal";
3043
+ occlusion: "occlusion";
3044
+ roughness: "roughness";
3045
+ }>>;
3046
+ name: z.ZodOptional<z.ZodString>;
3047
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3048
+ blend: z.ZodDefault<z.ZodEnum<{
3049
+ multiply: "multiply";
3050
+ normal: "normal";
3051
+ overlay: "overlay";
3052
+ screen: "screen";
3053
+ }>>;
3054
+ opacity: z.ZodDefault<z.ZodNumber>;
3055
+ op: z.ZodLiteral<"solid">;
3056
+ color: z.ZodNumber;
3057
+ }, z.core.$strict>, z.ZodObject<{
3058
+ blend: z.ZodDefault<z.ZodEnum<{
3059
+ multiply: "multiply";
3060
+ normal: "normal";
3061
+ overlay: "overlay";
3062
+ screen: "screen";
3063
+ }>>;
3064
+ opacity: z.ZodDefault<z.ZodNumber>;
3065
+ op: z.ZodLiteral<"checker">;
3066
+ colorA: z.ZodNumber;
3067
+ colorB: z.ZodNumber;
3068
+ squares: z.ZodDefault<z.ZodNumber>;
3069
+ }, z.core.$strict>, z.ZodObject<{
3070
+ blend: z.ZodDefault<z.ZodEnum<{
3071
+ multiply: "multiply";
3072
+ normal: "normal";
3073
+ overlay: "overlay";
3074
+ screen: "screen";
3075
+ }>>;
3076
+ opacity: z.ZodDefault<z.ZodNumber>;
3077
+ op: z.ZodLiteral<"stripes">;
3078
+ colorA: z.ZodNumber;
3079
+ colorB: z.ZodNumber;
3080
+ count: z.ZodDefault<z.ZodNumber>;
3081
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3082
+ }, z.core.$strict>, z.ZodObject<{
3083
+ blend: z.ZodDefault<z.ZodEnum<{
3084
+ multiply: "multiply";
3085
+ normal: "normal";
3086
+ overlay: "overlay";
3087
+ screen: "screen";
3088
+ }>>;
3089
+ opacity: z.ZodDefault<z.ZodNumber>;
3090
+ op: z.ZodLiteral<"gradient">;
3091
+ from: z.ZodNumber;
3092
+ to: z.ZodNumber;
3093
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3094
+ }, z.core.$strict>, z.ZodObject<{
3095
+ blend: z.ZodDefault<z.ZodEnum<{
3096
+ multiply: "multiply";
3097
+ normal: "normal";
3098
+ overlay: "overlay";
3099
+ screen: "screen";
3100
+ }>>;
3101
+ opacity: z.ZodDefault<z.ZodNumber>;
3102
+ op: z.ZodLiteral<"bricks">;
3103
+ brick: z.ZodNumber;
3104
+ mortar: z.ZodNumber;
3105
+ rows: z.ZodDefault<z.ZodNumber>;
3106
+ cols: z.ZodDefault<z.ZodNumber>;
3107
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
3108
+ stagger: z.ZodDefault<z.ZodNumber>;
3109
+ }, z.core.$strict>, z.ZodObject<{
3110
+ blend: z.ZodDefault<z.ZodEnum<{
3111
+ multiply: "multiply";
3112
+ normal: "normal";
3113
+ overlay: "overlay";
3114
+ screen: "screen";
3115
+ }>>;
3116
+ opacity: z.ZodDefault<z.ZodNumber>;
3117
+ op: z.ZodLiteral<"noise">;
3118
+ colorA: z.ZodNumber;
3119
+ colorB: z.ZodNumber;
3120
+ scale: z.ZodDefault<z.ZodNumber>;
3121
+ octaves: z.ZodDefault<z.ZodNumber>;
3122
+ seed: z.ZodDefault<z.ZodNumber>;
3123
+ }, z.core.$strict>], "op">>;
3124
+ }, z.core.$strict>, z.ZodObject<{
3125
+ schemaVersion: z.ZodLiteral<3>;
3126
+ width: z.ZodNumber;
3127
+ height: z.ZodNumber;
3128
+ name: z.ZodOptional<z.ZodString>;
3129
+ usage: z.ZodOptional<z.ZodEnum<{
3130
+ albedo: "albedo";
3131
+ emissive: "emissive";
3132
+ metallicRoughness: "metallicRoughness";
3133
+ metalness: "metalness";
3134
+ normal: "normal";
3135
+ occlusion: "occlusion";
3136
+ roughness: "roughness";
3137
+ }>>;
3138
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3139
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3140
+ op: z.ZodLiteral<"paint">;
3141
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3142
+ x: z.ZodNumber;
3143
+ y: z.ZodNumber;
3144
+ width: z.ZodNumber;
3145
+ height: z.ZodNumber;
3146
+ kind: z.ZodLiteral<"rectangle">;
3147
+ }, z.core.$strict>, z.ZodObject<{
3148
+ x: z.ZodNumber;
3149
+ y: z.ZodNumber;
3150
+ width: z.ZodNumber;
3151
+ height: z.ZodNumber;
3152
+ kind: z.ZodLiteral<"ellipse">;
3153
+ }, z.core.$strict>, z.ZodObject<{
3154
+ kind: z.ZodLiteral<"polygon">;
3155
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3156
+ }, z.core.$strict>, z.ZodObject<{
3157
+ kind: z.ZodLiteral<"line">;
3158
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3159
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3160
+ width: z.ZodNumber;
3161
+ }, z.core.$strict>], "kind">;
3162
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3163
+ opacity: z.ZodOptional<z.ZodNumber>;
3164
+ }, z.core.$strict>, z.ZodObject<{
3165
+ op: z.ZodLiteral<"mask">;
3166
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3167
+ x: z.ZodNumber;
3168
+ y: z.ZodNumber;
3169
+ width: z.ZodNumber;
3170
+ height: z.ZodNumber;
3171
+ kind: z.ZodLiteral<"rectangle">;
3172
+ }, z.core.$strict>, z.ZodObject<{
3173
+ x: z.ZodNumber;
3174
+ y: z.ZodNumber;
3175
+ width: z.ZodNumber;
3176
+ height: z.ZodNumber;
3177
+ kind: z.ZodLiteral<"ellipse">;
3178
+ }, z.core.$strict>, z.ZodObject<{
3179
+ kind: z.ZodLiteral<"polygon">;
3180
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3181
+ }, z.core.$strict>, z.ZodObject<{
3182
+ kind: z.ZodLiteral<"line">;
3183
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3184
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3185
+ width: z.ZodNumber;
3186
+ }, z.core.$strict>], "kind">;
3187
+ alpha: z.ZodOptional<z.ZodNumber>;
3188
+ invert: z.ZodOptional<z.ZodBoolean>;
3189
+ }, z.core.$strict>, z.ZodObject<{
3190
+ op: z.ZodLiteral<"stamps">;
3191
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3192
+ x: z.ZodNumber;
3193
+ y: z.ZodNumber;
3194
+ width: z.ZodNumber;
3195
+ height: z.ZodNumber;
3196
+ kind: z.ZodLiteral<"rectangle">;
3197
+ }, z.core.$strict>, z.ZodObject<{
3198
+ x: z.ZodNumber;
3199
+ y: z.ZodNumber;
3200
+ width: z.ZodNumber;
3201
+ height: z.ZodNumber;
3202
+ kind: z.ZodLiteral<"ellipse">;
3203
+ }, z.core.$strict>, z.ZodObject<{
3204
+ kind: z.ZodLiteral<"polygon">;
3205
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3206
+ }, z.core.$strict>, z.ZodObject<{
3207
+ kind: z.ZodLiteral<"line">;
3208
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3209
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3210
+ width: z.ZodNumber;
3211
+ }, z.core.$strict>], "kind">;
3212
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3213
+ opacity: z.ZodOptional<z.ZodNumber>;
3214
+ count: z.ZodNumber;
3215
+ seed: z.ZodNumber;
3216
+ area: z.ZodObject<{
3217
+ x: z.ZodNumber;
3218
+ y: z.ZodNumber;
3219
+ width: z.ZodNumber;
3220
+ height: z.ZodNumber;
3221
+ }, z.core.$strict>;
3222
+ periodic: z.ZodOptional<z.ZodBoolean>;
3223
+ }, z.core.$strict>, z.ZodObject<{
3224
+ op: z.ZodLiteral<"legacy-v2">;
3225
+ spec: z.ZodObject<{
3226
+ schemaVersion: z.ZodLiteral<2>;
3227
+ size: z.ZodDefault<z.ZodNumber>;
3228
+ usage: z.ZodDefault<z.ZodEnum<{
3229
+ albedo: "albedo";
3230
+ emissive: "emissive";
3231
+ metallicRoughness: "metallicRoughness";
3232
+ metalness: "metalness";
3233
+ normal: "normal";
3234
+ occlusion: "occlusion";
3235
+ roughness: "roughness";
3236
+ }>>;
3237
+ name: z.ZodOptional<z.ZodString>;
3238
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3239
+ blend: z.ZodDefault<z.ZodEnum<{
3240
+ multiply: "multiply";
3241
+ normal: "normal";
3242
+ overlay: "overlay";
3243
+ screen: "screen";
3244
+ }>>;
3245
+ opacity: z.ZodDefault<z.ZodNumber>;
3246
+ op: z.ZodLiteral<"solid">;
3247
+ color: z.ZodNumber;
3248
+ }, z.core.$strict>, z.ZodObject<{
3249
+ blend: z.ZodDefault<z.ZodEnum<{
3250
+ multiply: "multiply";
3251
+ normal: "normal";
3252
+ overlay: "overlay";
3253
+ screen: "screen";
3254
+ }>>;
3255
+ opacity: z.ZodDefault<z.ZodNumber>;
3256
+ op: z.ZodLiteral<"checker">;
3257
+ colorA: z.ZodNumber;
3258
+ colorB: z.ZodNumber;
3259
+ squares: z.ZodDefault<z.ZodNumber>;
3260
+ }, z.core.$strict>, z.ZodObject<{
3261
+ blend: z.ZodDefault<z.ZodEnum<{
3262
+ multiply: "multiply";
3263
+ normal: "normal";
3264
+ overlay: "overlay";
3265
+ screen: "screen";
3266
+ }>>;
3267
+ opacity: z.ZodDefault<z.ZodNumber>;
3268
+ op: z.ZodLiteral<"stripes">;
3269
+ colorA: z.ZodNumber;
3270
+ colorB: z.ZodNumber;
3271
+ count: z.ZodDefault<z.ZodNumber>;
3272
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3273
+ }, z.core.$strict>, z.ZodObject<{
3274
+ blend: z.ZodDefault<z.ZodEnum<{
3275
+ multiply: "multiply";
3276
+ normal: "normal";
3277
+ overlay: "overlay";
3278
+ screen: "screen";
3279
+ }>>;
3280
+ opacity: z.ZodDefault<z.ZodNumber>;
3281
+ op: z.ZodLiteral<"gradient">;
3282
+ from: z.ZodNumber;
3283
+ to: z.ZodNumber;
3284
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3285
+ }, z.core.$strict>, z.ZodObject<{
3286
+ blend: z.ZodDefault<z.ZodEnum<{
3287
+ multiply: "multiply";
3288
+ normal: "normal";
3289
+ overlay: "overlay";
3290
+ screen: "screen";
3291
+ }>>;
3292
+ opacity: z.ZodDefault<z.ZodNumber>;
3293
+ op: z.ZodLiteral<"bricks">;
3294
+ brick: z.ZodNumber;
3295
+ mortar: z.ZodNumber;
3296
+ rows: z.ZodDefault<z.ZodNumber>;
3297
+ cols: z.ZodDefault<z.ZodNumber>;
3298
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
3299
+ stagger: z.ZodDefault<z.ZodNumber>;
3300
+ }, z.core.$strict>, z.ZodObject<{
3301
+ blend: z.ZodDefault<z.ZodEnum<{
3302
+ multiply: "multiply";
3303
+ normal: "normal";
3304
+ overlay: "overlay";
3305
+ screen: "screen";
3306
+ }>>;
3307
+ opacity: z.ZodDefault<z.ZodNumber>;
3308
+ op: z.ZodLiteral<"noise">;
3309
+ colorA: z.ZodNumber;
3310
+ colorB: z.ZodNumber;
3311
+ scale: z.ZodDefault<z.ZodNumber>;
3312
+ octaves: z.ZodDefault<z.ZodNumber>;
3313
+ seed: z.ZodDefault<z.ZodNumber>;
3314
+ }, z.core.$strict>], "op">>;
3315
+ }, z.core.$strict>;
3316
+ alpha: z.ZodOptional<z.ZodNumber>;
3317
+ opacity: z.ZodOptional<z.ZodNumber>;
3318
+ }, z.core.$strict>], "op">>;
3319
+ palette: z.ZodOptional<z.ZodObject<{
3320
+ colors: z.ZodArray<z.ZodNumber>;
3321
+ dither: z.ZodOptional<z.ZodEnum<{
3322
+ bayer4: "bayer4";
3323
+ none: "none";
3324
+ }>>;
3325
+ }, z.core.$strict>>;
3326
+ }, z.core.$strict>]>>;
3327
+ atlas: z.ZodOptional<z.ZodObject<{
3328
+ schemaVersion: z.ZodLiteral<1>;
3329
+ width: z.ZodNumber;
3330
+ height: z.ZodNumber;
3331
+ usage: z.ZodEnum<{
3332
+ albedo: "albedo";
3333
+ emissive: "emissive";
3334
+ metallicRoughness: "metallicRoughness";
3335
+ metalness: "metalness";
3336
+ normal: "normal";
3337
+ occlusion: "occlusion";
3338
+ roughness: "roughness";
3339
+ }>;
3340
+ sampler: z.ZodOptional<z.ZodObject<{
3341
+ minFilter: z.ZodEnum<{
3342
+ linear: "linear";
3343
+ "linear-mipmap-linear": "linear-mipmap-linear";
3344
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
3345
+ nearest: "nearest";
3346
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
3347
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
3348
+ }>;
3349
+ magFilter: z.ZodEnum<{
3350
+ linear: "linear";
3351
+ nearest: "nearest";
3352
+ }>;
3353
+ wrapS: z.ZodEnum<{
3354
+ "clamp-to-edge": "clamp-to-edge";
3355
+ "mirrored-repeat": "mirrored-repeat";
3356
+ repeat: "repeat";
3357
+ }>;
3358
+ wrapT: z.ZodEnum<{
3359
+ "clamp-to-edge": "clamp-to-edge";
3360
+ "mirrored-repeat": "mirrored-repeat";
3361
+ repeat: "repeat";
3362
+ }>;
3363
+ }, z.core.$strict>>;
3364
+ regions: z.ZodArray<z.ZodObject<{
3365
+ name: z.ZodString;
3366
+ content: z.ZodObject<{
3367
+ width: z.ZodNumber;
3368
+ height: z.ZodNumber;
3369
+ x: z.ZodNumber;
3370
+ y: z.ZodNumber;
3371
+ }, z.core.$strict>;
3372
+ gutter: z.ZodOptional<z.ZodNumber>;
3373
+ edgeMode: z.ZodOptional<z.ZodEnum<{
3374
+ "copy-edge": "copy-edge";
3375
+ "mask-rgb-dilate": "mask-rgb-dilate";
3376
+ }>>;
3377
+ crop: z.ZodOptional<z.ZodObject<{
3378
+ width: z.ZodNumber;
3379
+ height: z.ZodNumber;
3380
+ x: z.ZodNumber;
3381
+ y: z.ZodNumber;
3382
+ }, z.core.$strict>>;
3383
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
3384
+ kind: z.ZodLiteral<"procedural">;
3385
+ spec: z.ZodObject<{
3386
+ schemaVersion: z.ZodLiteral<3>;
3387
+ width: z.ZodNumber;
3388
+ height: z.ZodNumber;
3389
+ name: z.ZodOptional<z.ZodString>;
3390
+ usage: z.ZodOptional<z.ZodEnum<{
3391
+ albedo: "albedo";
3392
+ emissive: "emissive";
3393
+ metallicRoughness: "metallicRoughness";
3394
+ metalness: "metalness";
3395
+ normal: "normal";
3396
+ occlusion: "occlusion";
3397
+ roughness: "roughness";
3398
+ }>>;
3399
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3400
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3401
+ op: z.ZodLiteral<"paint">;
3402
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3403
+ x: z.ZodNumber;
3404
+ y: z.ZodNumber;
3405
+ width: z.ZodNumber;
3406
+ height: z.ZodNumber;
3407
+ kind: z.ZodLiteral<"rectangle">;
3408
+ }, z.core.$strict>, z.ZodObject<{
3409
+ x: z.ZodNumber;
3410
+ y: z.ZodNumber;
3411
+ width: z.ZodNumber;
3412
+ height: z.ZodNumber;
3413
+ kind: z.ZodLiteral<"ellipse">;
3414
+ }, z.core.$strict>, z.ZodObject<{
3415
+ kind: z.ZodLiteral<"polygon">;
3416
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3417
+ }, z.core.$strict>, z.ZodObject<{
3418
+ kind: z.ZodLiteral<"line">;
3419
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3420
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3421
+ width: z.ZodNumber;
3422
+ }, z.core.$strict>], "kind">;
3423
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3424
+ opacity: z.ZodOptional<z.ZodNumber>;
3425
+ }, z.core.$strict>, z.ZodObject<{
3426
+ op: z.ZodLiteral<"mask">;
3427
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3428
+ x: z.ZodNumber;
3429
+ y: z.ZodNumber;
3430
+ width: z.ZodNumber;
3431
+ height: z.ZodNumber;
3432
+ kind: z.ZodLiteral<"rectangle">;
3433
+ }, z.core.$strict>, z.ZodObject<{
3434
+ x: z.ZodNumber;
3435
+ y: z.ZodNumber;
3436
+ width: z.ZodNumber;
3437
+ height: z.ZodNumber;
3438
+ kind: z.ZodLiteral<"ellipse">;
3439
+ }, z.core.$strict>, z.ZodObject<{
3440
+ kind: z.ZodLiteral<"polygon">;
3441
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3442
+ }, z.core.$strict>, z.ZodObject<{
3443
+ kind: z.ZodLiteral<"line">;
3444
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3445
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3446
+ width: z.ZodNumber;
3447
+ }, z.core.$strict>], "kind">;
3448
+ alpha: z.ZodOptional<z.ZodNumber>;
3449
+ invert: z.ZodOptional<z.ZodBoolean>;
3450
+ }, z.core.$strict>, z.ZodObject<{
3451
+ op: z.ZodLiteral<"stamps">;
3452
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3453
+ x: z.ZodNumber;
3454
+ y: z.ZodNumber;
3455
+ width: z.ZodNumber;
3456
+ height: z.ZodNumber;
3457
+ kind: z.ZodLiteral<"rectangle">;
3458
+ }, z.core.$strict>, z.ZodObject<{
3459
+ x: z.ZodNumber;
3460
+ y: z.ZodNumber;
3461
+ width: z.ZodNumber;
3462
+ height: z.ZodNumber;
3463
+ kind: z.ZodLiteral<"ellipse">;
3464
+ }, z.core.$strict>, z.ZodObject<{
3465
+ kind: z.ZodLiteral<"polygon">;
3466
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3467
+ }, z.core.$strict>, z.ZodObject<{
3468
+ kind: z.ZodLiteral<"line">;
3469
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3470
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3471
+ width: z.ZodNumber;
3472
+ }, z.core.$strict>], "kind">;
3473
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3474
+ opacity: z.ZodOptional<z.ZodNumber>;
3475
+ count: z.ZodNumber;
3476
+ seed: z.ZodNumber;
3477
+ area: z.ZodObject<{
3478
+ x: z.ZodNumber;
3479
+ y: z.ZodNumber;
3480
+ width: z.ZodNumber;
3481
+ height: z.ZodNumber;
3482
+ }, z.core.$strict>;
3483
+ periodic: z.ZodOptional<z.ZodBoolean>;
3484
+ }, z.core.$strict>, z.ZodObject<{
3485
+ op: z.ZodLiteral<"legacy-v2">;
3486
+ spec: z.ZodObject<{
3487
+ schemaVersion: z.ZodLiteral<2>;
3488
+ size: z.ZodDefault<z.ZodNumber>;
3489
+ usage: z.ZodDefault<z.ZodEnum<{
3490
+ albedo: "albedo";
3491
+ emissive: "emissive";
3492
+ metallicRoughness: "metallicRoughness";
3493
+ metalness: "metalness";
3494
+ normal: "normal";
3495
+ occlusion: "occlusion";
3496
+ roughness: "roughness";
3497
+ }>>;
3498
+ name: z.ZodOptional<z.ZodString>;
3499
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3500
+ blend: z.ZodDefault<z.ZodEnum<{
3501
+ multiply: "multiply";
3502
+ normal: "normal";
3503
+ overlay: "overlay";
3504
+ screen: "screen";
3505
+ }>>;
3506
+ opacity: z.ZodDefault<z.ZodNumber>;
3507
+ op: z.ZodLiteral<"solid">;
3508
+ color: z.ZodNumber;
3509
+ }, z.core.$strict>, z.ZodObject<{
3510
+ blend: z.ZodDefault<z.ZodEnum<{
3511
+ multiply: "multiply";
3512
+ normal: "normal";
3513
+ overlay: "overlay";
3514
+ screen: "screen";
3515
+ }>>;
3516
+ opacity: z.ZodDefault<z.ZodNumber>;
3517
+ op: z.ZodLiteral<"checker">;
3518
+ colorA: z.ZodNumber;
3519
+ colorB: z.ZodNumber;
3520
+ squares: z.ZodDefault<z.ZodNumber>;
3521
+ }, z.core.$strict>, z.ZodObject<{
3522
+ blend: z.ZodDefault<z.ZodEnum<{
3523
+ multiply: "multiply";
3524
+ normal: "normal";
3525
+ overlay: "overlay";
3526
+ screen: "screen";
3527
+ }>>;
3528
+ opacity: z.ZodDefault<z.ZodNumber>;
3529
+ op: z.ZodLiteral<"stripes">;
3530
+ colorA: z.ZodNumber;
3531
+ colorB: z.ZodNumber;
3532
+ count: z.ZodDefault<z.ZodNumber>;
3533
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3534
+ }, z.core.$strict>, z.ZodObject<{
3535
+ blend: z.ZodDefault<z.ZodEnum<{
3536
+ multiply: "multiply";
3537
+ normal: "normal";
3538
+ overlay: "overlay";
3539
+ screen: "screen";
3540
+ }>>;
3541
+ opacity: z.ZodDefault<z.ZodNumber>;
3542
+ op: z.ZodLiteral<"gradient">;
3543
+ from: z.ZodNumber;
3544
+ to: z.ZodNumber;
3545
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3546
+ }, z.core.$strict>, z.ZodObject<{
3547
+ blend: z.ZodDefault<z.ZodEnum<{
3548
+ multiply: "multiply";
3549
+ normal: "normal";
3550
+ overlay: "overlay";
3551
+ screen: "screen";
3552
+ }>>;
3553
+ opacity: z.ZodDefault<z.ZodNumber>;
3554
+ op: z.ZodLiteral<"bricks">;
3555
+ brick: z.ZodNumber;
3556
+ mortar: z.ZodNumber;
3557
+ rows: z.ZodDefault<z.ZodNumber>;
3558
+ cols: z.ZodDefault<z.ZodNumber>;
3559
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
3560
+ stagger: z.ZodDefault<z.ZodNumber>;
3561
+ }, z.core.$strict>, z.ZodObject<{
3562
+ blend: z.ZodDefault<z.ZodEnum<{
3563
+ multiply: "multiply";
3564
+ normal: "normal";
3565
+ overlay: "overlay";
3566
+ screen: "screen";
3567
+ }>>;
3568
+ opacity: z.ZodDefault<z.ZodNumber>;
3569
+ op: z.ZodLiteral<"noise">;
3570
+ colorA: z.ZodNumber;
3571
+ colorB: z.ZodNumber;
3572
+ scale: z.ZodDefault<z.ZodNumber>;
3573
+ octaves: z.ZodDefault<z.ZodNumber>;
3574
+ seed: z.ZodDefault<z.ZodNumber>;
3575
+ }, z.core.$strict>], "op">>;
3576
+ }, z.core.$strict>;
3577
+ alpha: z.ZodOptional<z.ZodNumber>;
3578
+ opacity: z.ZodOptional<z.ZodNumber>;
3579
+ }, z.core.$strict>], "op">>;
3580
+ palette: z.ZodOptional<z.ZodObject<{
3581
+ colors: z.ZodArray<z.ZodNumber>;
3582
+ dither: z.ZodOptional<z.ZodEnum<{
3583
+ bayer4: "bayer4";
3584
+ none: "none";
3585
+ }>>;
3586
+ }, z.core.$strict>>;
3587
+ }, z.core.$strict>;
3588
+ }, z.core.$strict>, z.ZodObject<{
3589
+ kind: z.ZodLiteral<"resource">;
3590
+ resourceId: z.ZodString;
3591
+ pin: z.ZodObject<{
3592
+ resourceId: z.ZodString;
3593
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
3594
+ sha256: z.ZodTemplateLiteral<`sha256:${string}`>;
3595
+ }, z.core.$strict>;
3596
+ expected: z.ZodOptional<z.ZodObject<{
3597
+ width: z.ZodOptional<z.ZodNumber>;
3598
+ height: z.ZodOptional<z.ZodNumber>;
3599
+ imageSha256: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
3600
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
3601
+ }, z.core.$strict>>;
3602
+ }, z.core.$strict>], "kind">;
3603
+ }, z.core.$strict>>;
3604
+ }, z.core.$strict>>;
3605
+ }, z.core.$strict>>;
3606
+ }, z.core.$strict>;
3607
+ export type ProceduralMaterialDraftV2 = z.infer<typeof proceduralMaterialDraftV2Schema>;
3608
+ export declare const proceduralMaterialDraftAnySchema: z.ZodUnion<readonly [z.ZodObject<{
3609
+ materialId: z.ZodString;
3610
+ name: z.ZodString;
3611
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
3612
+ tileable: z.ZodBoolean;
3613
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
3614
+ width: z.ZodNumber;
3615
+ height: z.ZodNumber;
3616
+ }, z.core.$strict>>;
3617
+ parameters: z.ZodOptional<z.ZodObject<{
3618
+ baseColor: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3619
+ roughness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3620
+ metalness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3621
+ emissive: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3622
+ emissiveIntensity: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3623
+ alphaMode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
3624
+ blend: "blend";
3625
+ mask: "mask";
3626
+ opaque: "opaque";
3627
+ }>>>;
3628
+ alphaCutoff: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3629
+ doubleSided: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
3630
+ }, z.core.$strict>>;
3631
+ sources: z.ZodArray<z.ZodObject<{
3632
+ id: z.ZodString;
3633
+ kind: z.ZodEnum<{
3634
+ external: "external";
3635
+ procedural: "procedural";
3636
+ }>;
3637
+ provider: z.ZodString;
3638
+ creator: z.ZodString;
3639
+ assetId: z.ZodOptional<z.ZodString>;
3640
+ assetUrl: z.ZodOptional<z.ZodString>;
3641
+ accessedAt: z.ZodOptional<z.ZodString>;
3642
+ license: z.ZodObject<{
3643
+ spdx: z.ZodString;
3644
+ url: z.ZodString;
3645
+ attribution: z.ZodString;
3646
+ }, z.core.$strict>;
3647
+ originalFiles: z.ZodArray<z.ZodObject<{
3648
+ name: z.ZodString;
3649
+ sha256: z.ZodString;
3650
+ bytes: z.ZodNumber;
3651
+ }, z.core.$strict>>;
3652
+ }, z.core.$strict>>;
3653
+ maps: z.ZodArray<z.ZodObject<{
3654
+ slot: z.ZodEnum<{
3655
+ baseColor: "baseColor";
3656
+ emissive: "emissive";
3657
+ metallicRoughness: "metallicRoughness";
3658
+ normal: "normal";
3659
+ occlusion: "occlusion";
3660
+ }>;
3661
+ sourceId: z.ZodString;
3662
+ transforms: z.ZodArray<z.ZodObject<{
3663
+ operation: z.ZodString;
3664
+ tool: z.ZodString;
3665
+ version: z.ZodString;
3666
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
3667
+ }, z.core.$strict>>;
3668
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
3669
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
3670
+ procedural: z.ZodObject<{
3671
+ schemaVersion: z.ZodLiteral<2>;
3672
+ size: z.ZodDefault<z.ZodNumber>;
3673
+ usage: z.ZodDefault<z.ZodEnum<{
3674
+ albedo: "albedo";
3675
+ emissive: "emissive";
3676
+ metallicRoughness: "metallicRoughness";
3677
+ metalness: "metalness";
3678
+ normal: "normal";
3679
+ occlusion: "occlusion";
3680
+ roughness: "roughness";
3681
+ }>>;
3682
+ name: z.ZodOptional<z.ZodString>;
3683
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3684
+ blend: z.ZodDefault<z.ZodEnum<{
3685
+ multiply: "multiply";
3686
+ normal: "normal";
3687
+ overlay: "overlay";
3688
+ screen: "screen";
3689
+ }>>;
3690
+ opacity: z.ZodDefault<z.ZodNumber>;
3691
+ op: z.ZodLiteral<"solid">;
3692
+ color: z.ZodNumber;
3693
+ }, z.core.$strict>, z.ZodObject<{
3694
+ blend: z.ZodDefault<z.ZodEnum<{
3695
+ multiply: "multiply";
3696
+ normal: "normal";
3697
+ overlay: "overlay";
3698
+ screen: "screen";
3699
+ }>>;
3700
+ opacity: z.ZodDefault<z.ZodNumber>;
3701
+ op: z.ZodLiteral<"checker">;
3702
+ colorA: z.ZodNumber;
3703
+ colorB: z.ZodNumber;
3704
+ squares: z.ZodDefault<z.ZodNumber>;
3705
+ }, z.core.$strict>, z.ZodObject<{
3706
+ blend: z.ZodDefault<z.ZodEnum<{
3707
+ multiply: "multiply";
3708
+ normal: "normal";
3709
+ overlay: "overlay";
3710
+ screen: "screen";
3711
+ }>>;
3712
+ opacity: z.ZodDefault<z.ZodNumber>;
3713
+ op: z.ZodLiteral<"stripes">;
3714
+ colorA: z.ZodNumber;
3715
+ colorB: z.ZodNumber;
3716
+ count: z.ZodDefault<z.ZodNumber>;
3717
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3718
+ }, z.core.$strict>, z.ZodObject<{
3719
+ blend: z.ZodDefault<z.ZodEnum<{
3720
+ multiply: "multiply";
3721
+ normal: "normal";
3722
+ overlay: "overlay";
3723
+ screen: "screen";
3724
+ }>>;
3725
+ opacity: z.ZodDefault<z.ZodNumber>;
3726
+ op: z.ZodLiteral<"gradient">;
3727
+ from: z.ZodNumber;
3728
+ to: z.ZodNumber;
3729
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3730
+ }, z.core.$strict>, z.ZodObject<{
3731
+ blend: z.ZodDefault<z.ZodEnum<{
3732
+ multiply: "multiply";
3733
+ normal: "normal";
3734
+ overlay: "overlay";
3735
+ screen: "screen";
3736
+ }>>;
3737
+ opacity: z.ZodDefault<z.ZodNumber>;
3738
+ op: z.ZodLiteral<"bricks">;
3739
+ brick: z.ZodNumber;
3740
+ mortar: z.ZodNumber;
3741
+ rows: z.ZodDefault<z.ZodNumber>;
3742
+ cols: z.ZodDefault<z.ZodNumber>;
3743
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
3744
+ stagger: z.ZodDefault<z.ZodNumber>;
3745
+ }, z.core.$strict>, z.ZodObject<{
3746
+ blend: z.ZodDefault<z.ZodEnum<{
3747
+ multiply: "multiply";
3748
+ normal: "normal";
3749
+ overlay: "overlay";
3750
+ screen: "screen";
3751
+ }>>;
3752
+ opacity: z.ZodDefault<z.ZodNumber>;
3753
+ op: z.ZodLiteral<"noise">;
3754
+ colorA: z.ZodNumber;
3755
+ colorB: z.ZodNumber;
3756
+ scale: z.ZodDefault<z.ZodNumber>;
3757
+ octaves: z.ZodDefault<z.ZodNumber>;
3758
+ seed: z.ZodDefault<z.ZodNumber>;
3759
+ }, z.core.$strict>], "op">>;
3760
+ }, z.core.$strict>;
3761
+ derive: z.ZodOptional<z.ZodObject<{
3762
+ kind: z.ZodLiteral<"normal-from-height">;
3763
+ strength: z.ZodNumber;
3764
+ }, z.core.$strict>>;
3765
+ }, z.core.$strict>>;
3766
+ }, z.core.$strict>, z.ZodObject<{
3767
+ materialId: z.ZodString;
3768
+ name: z.ZodString;
3769
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
3770
+ tileable: z.ZodBoolean;
3771
+ physicalSizeMeters: z.ZodOptional<z.ZodObject<{
3772
+ width: z.ZodNumber;
3773
+ height: z.ZodNumber;
3774
+ }, z.core.$strict>>;
3775
+ parameters: z.ZodOptional<z.ZodObject<{
3776
+ baseColor: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3777
+ roughness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3778
+ metalness: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3779
+ emissive: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
3780
+ emissiveIntensity: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3781
+ alphaMode: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
3782
+ blend: "blend";
3783
+ mask: "mask";
3784
+ opaque: "opaque";
3785
+ }>>>;
3786
+ alphaCutoff: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
3787
+ doubleSided: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
3788
+ }, z.core.$strict>>;
3789
+ sources: z.ZodArray<z.ZodObject<{
3790
+ id: z.ZodString;
3791
+ kind: z.ZodEnum<{
3792
+ external: "external";
3793
+ procedural: "procedural";
3794
+ }>;
3795
+ provider: z.ZodString;
3796
+ creator: z.ZodString;
3797
+ assetId: z.ZodOptional<z.ZodString>;
3798
+ assetUrl: z.ZodOptional<z.ZodString>;
3799
+ accessedAt: z.ZodOptional<z.ZodString>;
3800
+ license: z.ZodObject<{
3801
+ spdx: z.ZodString;
3802
+ url: z.ZodString;
3803
+ attribution: z.ZodString;
3804
+ }, z.core.$strict>;
3805
+ originalFiles: z.ZodArray<z.ZodObject<{
3806
+ name: z.ZodString;
3807
+ sha256: z.ZodString;
3808
+ bytes: z.ZodNumber;
3809
+ }, z.core.$strict>>;
3810
+ }, z.core.$strict>>;
3811
+ schemaVersion: z.ZodLiteral<2>;
3812
+ maps: z.ZodArray<z.ZodObject<{
3813
+ slot: z.ZodEnum<{
3814
+ baseColor: "baseColor";
3815
+ emissive: "emissive";
3816
+ metallicRoughness: "metallicRoughness";
3817
+ normal: "normal";
3818
+ occlusion: "occlusion";
3819
+ }>;
3820
+ sourceId: z.ZodString;
3821
+ transforms: z.ZodArray<z.ZodObject<{
3822
+ operation: z.ZodString;
3823
+ tool: z.ZodString;
3824
+ version: z.ZodString;
3825
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
3826
+ }, z.core.$strict>>;
3827
+ normalConvention: z.ZodOptional<z.ZodLiteral<"opengl">>;
3828
+ channelPacking: z.ZodOptional<z.ZodLiteral<"r-occlusion-g-roughness-b-metallic">>;
3829
+ derive: z.ZodOptional<z.ZodObject<{
3830
+ kind: z.ZodLiteral<"normal-from-height">;
3831
+ strength: z.ZodNumber;
3832
+ }, z.core.$strict>>;
3833
+ sampler: z.ZodObject<{
3834
+ minFilter: z.ZodEnum<{
3835
+ linear: "linear";
3836
+ "linear-mipmap-linear": "linear-mipmap-linear";
3837
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
3838
+ nearest: "nearest";
3839
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
3840
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
3841
+ }>;
3842
+ magFilter: z.ZodEnum<{
3843
+ linear: "linear";
3844
+ nearest: "nearest";
3845
+ }>;
3846
+ wrapS: z.ZodEnum<{
3847
+ "clamp-to-edge": "clamp-to-edge";
3848
+ "mirrored-repeat": "mirrored-repeat";
3849
+ repeat: "repeat";
3850
+ }>;
3851
+ wrapT: z.ZodEnum<{
3852
+ "clamp-to-edge": "clamp-to-edge";
3853
+ "mirrored-repeat": "mirrored-repeat";
3854
+ repeat: "repeat";
3855
+ }>;
3856
+ }, z.core.$strict>;
3857
+ procedural: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
3858
+ schemaVersion: z.ZodLiteral<2>;
3859
+ size: z.ZodDefault<z.ZodNumber>;
3860
+ usage: z.ZodDefault<z.ZodEnum<{
3861
+ albedo: "albedo";
3862
+ emissive: "emissive";
3863
+ metallicRoughness: "metallicRoughness";
3864
+ metalness: "metalness";
3865
+ normal: "normal";
3866
+ occlusion: "occlusion";
3867
+ roughness: "roughness";
3868
+ }>>;
3869
+ name: z.ZodOptional<z.ZodString>;
3870
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3871
+ blend: z.ZodDefault<z.ZodEnum<{
3872
+ multiply: "multiply";
3873
+ normal: "normal";
3874
+ overlay: "overlay";
3875
+ screen: "screen";
3876
+ }>>;
3877
+ opacity: z.ZodDefault<z.ZodNumber>;
3878
+ op: z.ZodLiteral<"solid">;
3879
+ color: z.ZodNumber;
3880
+ }, z.core.$strict>, z.ZodObject<{
3881
+ blend: z.ZodDefault<z.ZodEnum<{
3882
+ multiply: "multiply";
3883
+ normal: "normal";
3884
+ overlay: "overlay";
3885
+ screen: "screen";
3886
+ }>>;
3887
+ opacity: z.ZodDefault<z.ZodNumber>;
3888
+ op: z.ZodLiteral<"checker">;
3889
+ colorA: z.ZodNumber;
3890
+ colorB: z.ZodNumber;
3891
+ squares: z.ZodDefault<z.ZodNumber>;
3892
+ }, z.core.$strict>, z.ZodObject<{
3893
+ blend: z.ZodDefault<z.ZodEnum<{
3894
+ multiply: "multiply";
3895
+ normal: "normal";
3896
+ overlay: "overlay";
3897
+ screen: "screen";
3898
+ }>>;
3899
+ opacity: z.ZodDefault<z.ZodNumber>;
3900
+ op: z.ZodLiteral<"stripes">;
3901
+ colorA: z.ZodNumber;
3902
+ colorB: z.ZodNumber;
3903
+ count: z.ZodDefault<z.ZodNumber>;
3904
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3905
+ }, z.core.$strict>, z.ZodObject<{
3906
+ blend: z.ZodDefault<z.ZodEnum<{
3907
+ multiply: "multiply";
3908
+ normal: "normal";
3909
+ overlay: "overlay";
3910
+ screen: "screen";
3911
+ }>>;
3912
+ opacity: z.ZodDefault<z.ZodNumber>;
3913
+ op: z.ZodLiteral<"gradient">;
3914
+ from: z.ZodNumber;
3915
+ to: z.ZodNumber;
3916
+ angleDeg: z.ZodDefault<z.ZodNumber>;
3917
+ }, z.core.$strict>, z.ZodObject<{
3918
+ blend: z.ZodDefault<z.ZodEnum<{
3919
+ multiply: "multiply";
3920
+ normal: "normal";
3921
+ overlay: "overlay";
3922
+ screen: "screen";
3923
+ }>>;
3924
+ opacity: z.ZodDefault<z.ZodNumber>;
3925
+ op: z.ZodLiteral<"bricks">;
3926
+ brick: z.ZodNumber;
3927
+ mortar: z.ZodNumber;
3928
+ rows: z.ZodDefault<z.ZodNumber>;
3929
+ cols: z.ZodDefault<z.ZodNumber>;
3930
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
3931
+ stagger: z.ZodDefault<z.ZodNumber>;
3932
+ }, z.core.$strict>, z.ZodObject<{
3933
+ blend: z.ZodDefault<z.ZodEnum<{
3934
+ multiply: "multiply";
3935
+ normal: "normal";
3936
+ overlay: "overlay";
3937
+ screen: "screen";
3938
+ }>>;
3939
+ opacity: z.ZodDefault<z.ZodNumber>;
3940
+ op: z.ZodLiteral<"noise">;
3941
+ colorA: z.ZodNumber;
3942
+ colorB: z.ZodNumber;
3943
+ scale: z.ZodDefault<z.ZodNumber>;
3944
+ octaves: z.ZodDefault<z.ZodNumber>;
3945
+ seed: z.ZodDefault<z.ZodNumber>;
3946
+ }, z.core.$strict>], "op">>;
3947
+ }, z.core.$strict>, z.ZodObject<{
3948
+ schemaVersion: z.ZodLiteral<3>;
3949
+ width: z.ZodNumber;
3950
+ height: z.ZodNumber;
3951
+ name: z.ZodOptional<z.ZodString>;
3952
+ usage: z.ZodOptional<z.ZodEnum<{
3953
+ albedo: "albedo";
3954
+ emissive: "emissive";
3955
+ metallicRoughness: "metallicRoughness";
3956
+ metalness: "metalness";
3957
+ normal: "normal";
3958
+ occlusion: "occlusion";
3959
+ roughness: "roughness";
3960
+ }>>;
3961
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3962
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
3963
+ op: z.ZodLiteral<"paint">;
3964
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3965
+ x: z.ZodNumber;
3966
+ y: z.ZodNumber;
3967
+ width: z.ZodNumber;
3968
+ height: z.ZodNumber;
3969
+ kind: z.ZodLiteral<"rectangle">;
3970
+ }, z.core.$strict>, z.ZodObject<{
3971
+ x: z.ZodNumber;
3972
+ y: z.ZodNumber;
3973
+ width: z.ZodNumber;
3974
+ height: z.ZodNumber;
3975
+ kind: z.ZodLiteral<"ellipse">;
3976
+ }, z.core.$strict>, z.ZodObject<{
3977
+ kind: z.ZodLiteral<"polygon">;
3978
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
3979
+ }, z.core.$strict>, z.ZodObject<{
3980
+ kind: z.ZodLiteral<"line">;
3981
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3982
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
3983
+ width: z.ZodNumber;
3984
+ }, z.core.$strict>], "kind">;
3985
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
3986
+ opacity: z.ZodOptional<z.ZodNumber>;
3987
+ }, z.core.$strict>, z.ZodObject<{
3988
+ op: z.ZodLiteral<"mask">;
3989
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
3990
+ x: z.ZodNumber;
3991
+ y: z.ZodNumber;
3992
+ width: z.ZodNumber;
3993
+ height: z.ZodNumber;
3994
+ kind: z.ZodLiteral<"rectangle">;
3995
+ }, z.core.$strict>, z.ZodObject<{
3996
+ x: z.ZodNumber;
3997
+ y: z.ZodNumber;
3998
+ width: z.ZodNumber;
3999
+ height: z.ZodNumber;
4000
+ kind: z.ZodLiteral<"ellipse">;
4001
+ }, z.core.$strict>, z.ZodObject<{
4002
+ kind: z.ZodLiteral<"polygon">;
4003
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
4004
+ }, z.core.$strict>, z.ZodObject<{
4005
+ kind: z.ZodLiteral<"line">;
4006
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4007
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4008
+ width: z.ZodNumber;
4009
+ }, z.core.$strict>], "kind">;
4010
+ alpha: z.ZodOptional<z.ZodNumber>;
4011
+ invert: z.ZodOptional<z.ZodBoolean>;
4012
+ }, z.core.$strict>, z.ZodObject<{
4013
+ op: z.ZodLiteral<"stamps">;
4014
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
4015
+ x: z.ZodNumber;
4016
+ y: z.ZodNumber;
4017
+ width: z.ZodNumber;
4018
+ height: z.ZodNumber;
4019
+ kind: z.ZodLiteral<"rectangle">;
4020
+ }, z.core.$strict>, z.ZodObject<{
4021
+ x: z.ZodNumber;
4022
+ y: z.ZodNumber;
4023
+ width: z.ZodNumber;
4024
+ height: z.ZodNumber;
4025
+ kind: z.ZodLiteral<"ellipse">;
4026
+ }, z.core.$strict>, z.ZodObject<{
4027
+ kind: z.ZodLiteral<"polygon">;
4028
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
4029
+ }, z.core.$strict>, z.ZodObject<{
4030
+ kind: z.ZodLiteral<"line">;
4031
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4032
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4033
+ width: z.ZodNumber;
4034
+ }, z.core.$strict>], "kind">;
4035
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
4036
+ opacity: z.ZodOptional<z.ZodNumber>;
4037
+ count: z.ZodNumber;
4038
+ seed: z.ZodNumber;
4039
+ area: z.ZodObject<{
4040
+ x: z.ZodNumber;
4041
+ y: z.ZodNumber;
4042
+ width: z.ZodNumber;
4043
+ height: z.ZodNumber;
4044
+ }, z.core.$strict>;
4045
+ periodic: z.ZodOptional<z.ZodBoolean>;
4046
+ }, z.core.$strict>, z.ZodObject<{
4047
+ op: z.ZodLiteral<"legacy-v2">;
4048
+ spec: z.ZodObject<{
4049
+ schemaVersion: z.ZodLiteral<2>;
4050
+ size: z.ZodDefault<z.ZodNumber>;
4051
+ usage: z.ZodDefault<z.ZodEnum<{
4052
+ albedo: "albedo";
4053
+ emissive: "emissive";
4054
+ metallicRoughness: "metallicRoughness";
4055
+ metalness: "metalness";
4056
+ normal: "normal";
4057
+ occlusion: "occlusion";
4058
+ roughness: "roughness";
4059
+ }>>;
4060
+ name: z.ZodOptional<z.ZodString>;
4061
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
4062
+ blend: z.ZodDefault<z.ZodEnum<{
4063
+ multiply: "multiply";
4064
+ normal: "normal";
4065
+ overlay: "overlay";
4066
+ screen: "screen";
4067
+ }>>;
4068
+ opacity: z.ZodDefault<z.ZodNumber>;
4069
+ op: z.ZodLiteral<"solid">;
4070
+ color: z.ZodNumber;
4071
+ }, z.core.$strict>, z.ZodObject<{
4072
+ blend: z.ZodDefault<z.ZodEnum<{
4073
+ multiply: "multiply";
4074
+ normal: "normal";
4075
+ overlay: "overlay";
4076
+ screen: "screen";
4077
+ }>>;
4078
+ opacity: z.ZodDefault<z.ZodNumber>;
4079
+ op: z.ZodLiteral<"checker">;
4080
+ colorA: z.ZodNumber;
4081
+ colorB: z.ZodNumber;
4082
+ squares: z.ZodDefault<z.ZodNumber>;
4083
+ }, z.core.$strict>, z.ZodObject<{
4084
+ blend: z.ZodDefault<z.ZodEnum<{
4085
+ multiply: "multiply";
4086
+ normal: "normal";
4087
+ overlay: "overlay";
4088
+ screen: "screen";
4089
+ }>>;
4090
+ opacity: z.ZodDefault<z.ZodNumber>;
4091
+ op: z.ZodLiteral<"stripes">;
4092
+ colorA: z.ZodNumber;
4093
+ colorB: z.ZodNumber;
4094
+ count: z.ZodDefault<z.ZodNumber>;
4095
+ angleDeg: z.ZodDefault<z.ZodNumber>;
4096
+ }, z.core.$strict>, z.ZodObject<{
4097
+ blend: z.ZodDefault<z.ZodEnum<{
4098
+ multiply: "multiply";
4099
+ normal: "normal";
4100
+ overlay: "overlay";
4101
+ screen: "screen";
4102
+ }>>;
4103
+ opacity: z.ZodDefault<z.ZodNumber>;
4104
+ op: z.ZodLiteral<"gradient">;
4105
+ from: z.ZodNumber;
4106
+ to: z.ZodNumber;
4107
+ angleDeg: z.ZodDefault<z.ZodNumber>;
4108
+ }, z.core.$strict>, z.ZodObject<{
4109
+ blend: z.ZodDefault<z.ZodEnum<{
4110
+ multiply: "multiply";
4111
+ normal: "normal";
4112
+ overlay: "overlay";
4113
+ screen: "screen";
4114
+ }>>;
4115
+ opacity: z.ZodDefault<z.ZodNumber>;
4116
+ op: z.ZodLiteral<"bricks">;
4117
+ brick: z.ZodNumber;
4118
+ mortar: z.ZodNumber;
4119
+ rows: z.ZodDefault<z.ZodNumber>;
4120
+ cols: z.ZodDefault<z.ZodNumber>;
4121
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
4122
+ stagger: z.ZodDefault<z.ZodNumber>;
4123
+ }, z.core.$strict>, z.ZodObject<{
4124
+ blend: z.ZodDefault<z.ZodEnum<{
4125
+ multiply: "multiply";
4126
+ normal: "normal";
4127
+ overlay: "overlay";
4128
+ screen: "screen";
4129
+ }>>;
4130
+ opacity: z.ZodDefault<z.ZodNumber>;
4131
+ op: z.ZodLiteral<"noise">;
4132
+ colorA: z.ZodNumber;
4133
+ colorB: z.ZodNumber;
4134
+ scale: z.ZodDefault<z.ZodNumber>;
4135
+ octaves: z.ZodDefault<z.ZodNumber>;
4136
+ seed: z.ZodDefault<z.ZodNumber>;
4137
+ }, z.core.$strict>], "op">>;
4138
+ }, z.core.$strict>;
4139
+ alpha: z.ZodOptional<z.ZodNumber>;
4140
+ opacity: z.ZodOptional<z.ZodNumber>;
4141
+ }, z.core.$strict>], "op">>;
4142
+ palette: z.ZodOptional<z.ZodObject<{
4143
+ colors: z.ZodArray<z.ZodNumber>;
4144
+ dither: z.ZodOptional<z.ZodEnum<{
4145
+ bayer4: "bayer4";
4146
+ none: "none";
4147
+ }>>;
4148
+ }, z.core.$strict>>;
4149
+ }, z.core.$strict>]>>;
4150
+ atlas: z.ZodOptional<z.ZodObject<{
4151
+ schemaVersion: z.ZodLiteral<1>;
4152
+ width: z.ZodNumber;
4153
+ height: z.ZodNumber;
4154
+ usage: z.ZodEnum<{
4155
+ albedo: "albedo";
4156
+ emissive: "emissive";
4157
+ metallicRoughness: "metallicRoughness";
4158
+ metalness: "metalness";
4159
+ normal: "normal";
4160
+ occlusion: "occlusion";
4161
+ roughness: "roughness";
4162
+ }>;
4163
+ sampler: z.ZodOptional<z.ZodObject<{
4164
+ minFilter: z.ZodEnum<{
4165
+ linear: "linear";
4166
+ "linear-mipmap-linear": "linear-mipmap-linear";
4167
+ "linear-mipmap-nearest": "linear-mipmap-nearest";
4168
+ nearest: "nearest";
4169
+ "nearest-mipmap-linear": "nearest-mipmap-linear";
4170
+ "nearest-mipmap-nearest": "nearest-mipmap-nearest";
4171
+ }>;
4172
+ magFilter: z.ZodEnum<{
4173
+ linear: "linear";
4174
+ nearest: "nearest";
4175
+ }>;
4176
+ wrapS: z.ZodEnum<{
4177
+ "clamp-to-edge": "clamp-to-edge";
4178
+ "mirrored-repeat": "mirrored-repeat";
4179
+ repeat: "repeat";
4180
+ }>;
4181
+ wrapT: z.ZodEnum<{
4182
+ "clamp-to-edge": "clamp-to-edge";
4183
+ "mirrored-repeat": "mirrored-repeat";
4184
+ repeat: "repeat";
4185
+ }>;
4186
+ }, z.core.$strict>>;
4187
+ regions: z.ZodArray<z.ZodObject<{
4188
+ name: z.ZodString;
4189
+ content: z.ZodObject<{
4190
+ width: z.ZodNumber;
4191
+ height: z.ZodNumber;
4192
+ x: z.ZodNumber;
4193
+ y: z.ZodNumber;
4194
+ }, z.core.$strict>;
4195
+ gutter: z.ZodOptional<z.ZodNumber>;
4196
+ edgeMode: z.ZodOptional<z.ZodEnum<{
4197
+ "copy-edge": "copy-edge";
4198
+ "mask-rgb-dilate": "mask-rgb-dilate";
4199
+ }>>;
4200
+ crop: z.ZodOptional<z.ZodObject<{
4201
+ width: z.ZodNumber;
4202
+ height: z.ZodNumber;
4203
+ x: z.ZodNumber;
4204
+ y: z.ZodNumber;
4205
+ }, z.core.$strict>>;
4206
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
4207
+ kind: z.ZodLiteral<"procedural">;
4208
+ spec: z.ZodObject<{
4209
+ schemaVersion: z.ZodLiteral<3>;
4210
+ width: z.ZodNumber;
4211
+ height: z.ZodNumber;
4212
+ name: z.ZodOptional<z.ZodString>;
4213
+ usage: z.ZodOptional<z.ZodEnum<{
4214
+ albedo: "albedo";
4215
+ emissive: "emissive";
4216
+ metallicRoughness: "metallicRoughness";
4217
+ metalness: "metalness";
4218
+ normal: "normal";
4219
+ occlusion: "occlusion";
4220
+ roughness: "roughness";
4221
+ }>>;
4222
+ background: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4223
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
4224
+ op: z.ZodLiteral<"paint">;
4225
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
4226
+ x: z.ZodNumber;
4227
+ y: z.ZodNumber;
4228
+ width: z.ZodNumber;
4229
+ height: z.ZodNumber;
4230
+ kind: z.ZodLiteral<"rectangle">;
4231
+ }, z.core.$strict>, z.ZodObject<{
4232
+ x: z.ZodNumber;
4233
+ y: z.ZodNumber;
4234
+ width: z.ZodNumber;
4235
+ height: z.ZodNumber;
4236
+ kind: z.ZodLiteral<"ellipse">;
4237
+ }, z.core.$strict>, z.ZodObject<{
4238
+ kind: z.ZodLiteral<"polygon">;
4239
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
4240
+ }, z.core.$strict>, z.ZodObject<{
4241
+ kind: z.ZodLiteral<"line">;
4242
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4243
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4244
+ width: z.ZodNumber;
4245
+ }, z.core.$strict>], "kind">;
4246
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
4247
+ opacity: z.ZodOptional<z.ZodNumber>;
4248
+ }, z.core.$strict>, z.ZodObject<{
4249
+ op: z.ZodLiteral<"mask">;
4250
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
4251
+ x: z.ZodNumber;
4252
+ y: z.ZodNumber;
4253
+ width: z.ZodNumber;
4254
+ height: z.ZodNumber;
4255
+ kind: z.ZodLiteral<"rectangle">;
4256
+ }, z.core.$strict>, z.ZodObject<{
4257
+ x: z.ZodNumber;
4258
+ y: z.ZodNumber;
4259
+ width: z.ZodNumber;
4260
+ height: z.ZodNumber;
4261
+ kind: z.ZodLiteral<"ellipse">;
4262
+ }, z.core.$strict>, z.ZodObject<{
4263
+ kind: z.ZodLiteral<"polygon">;
4264
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
4265
+ }, z.core.$strict>, z.ZodObject<{
4266
+ kind: z.ZodLiteral<"line">;
4267
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4268
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4269
+ width: z.ZodNumber;
4270
+ }, z.core.$strict>], "kind">;
4271
+ alpha: z.ZodOptional<z.ZodNumber>;
4272
+ invert: z.ZodOptional<z.ZodBoolean>;
4273
+ }, z.core.$strict>, z.ZodObject<{
4274
+ op: z.ZodLiteral<"stamps">;
4275
+ shape: z.ZodDiscriminatedUnion<[z.ZodObject<{
4276
+ x: z.ZodNumber;
4277
+ y: z.ZodNumber;
4278
+ width: z.ZodNumber;
4279
+ height: z.ZodNumber;
4280
+ kind: z.ZodLiteral<"rectangle">;
4281
+ }, z.core.$strict>, z.ZodObject<{
4282
+ x: z.ZodNumber;
4283
+ y: z.ZodNumber;
4284
+ width: z.ZodNumber;
4285
+ height: z.ZodNumber;
4286
+ kind: z.ZodLiteral<"ellipse">;
4287
+ }, z.core.$strict>, z.ZodObject<{
4288
+ kind: z.ZodLiteral<"polygon">;
4289
+ points: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
4290
+ }, z.core.$strict>, z.ZodObject<{
4291
+ kind: z.ZodLiteral<"line">;
4292
+ from: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4293
+ to: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4294
+ width: z.ZodNumber;
4295
+ }, z.core.$strict>], "kind">;
4296
+ rgba: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
4297
+ opacity: z.ZodOptional<z.ZodNumber>;
4298
+ count: z.ZodNumber;
4299
+ seed: z.ZodNumber;
4300
+ area: z.ZodObject<{
4301
+ x: z.ZodNumber;
4302
+ y: z.ZodNumber;
4303
+ width: z.ZodNumber;
4304
+ height: z.ZodNumber;
4305
+ }, z.core.$strict>;
4306
+ periodic: z.ZodOptional<z.ZodBoolean>;
4307
+ }, z.core.$strict>, z.ZodObject<{
4308
+ op: z.ZodLiteral<"legacy-v2">;
4309
+ spec: z.ZodObject<{
4310
+ schemaVersion: z.ZodLiteral<2>;
4311
+ size: z.ZodDefault<z.ZodNumber>;
4312
+ usage: z.ZodDefault<z.ZodEnum<{
4313
+ albedo: "albedo";
4314
+ emissive: "emissive";
4315
+ metallicRoughness: "metallicRoughness";
4316
+ metalness: "metalness";
4317
+ normal: "normal";
4318
+ occlusion: "occlusion";
4319
+ roughness: "roughness";
4320
+ }>>;
4321
+ name: z.ZodOptional<z.ZodString>;
4322
+ layers: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
4323
+ blend: z.ZodDefault<z.ZodEnum<{
4324
+ multiply: "multiply";
4325
+ normal: "normal";
4326
+ overlay: "overlay";
4327
+ screen: "screen";
4328
+ }>>;
4329
+ opacity: z.ZodDefault<z.ZodNumber>;
4330
+ op: z.ZodLiteral<"solid">;
4331
+ color: z.ZodNumber;
4332
+ }, z.core.$strict>, z.ZodObject<{
4333
+ blend: z.ZodDefault<z.ZodEnum<{
4334
+ multiply: "multiply";
4335
+ normal: "normal";
4336
+ overlay: "overlay";
4337
+ screen: "screen";
4338
+ }>>;
4339
+ opacity: z.ZodDefault<z.ZodNumber>;
4340
+ op: z.ZodLiteral<"checker">;
4341
+ colorA: z.ZodNumber;
4342
+ colorB: z.ZodNumber;
4343
+ squares: z.ZodDefault<z.ZodNumber>;
4344
+ }, z.core.$strict>, z.ZodObject<{
4345
+ blend: z.ZodDefault<z.ZodEnum<{
4346
+ multiply: "multiply";
4347
+ normal: "normal";
4348
+ overlay: "overlay";
4349
+ screen: "screen";
4350
+ }>>;
4351
+ opacity: z.ZodDefault<z.ZodNumber>;
4352
+ op: z.ZodLiteral<"stripes">;
4353
+ colorA: z.ZodNumber;
4354
+ colorB: z.ZodNumber;
4355
+ count: z.ZodDefault<z.ZodNumber>;
4356
+ angleDeg: z.ZodDefault<z.ZodNumber>;
4357
+ }, z.core.$strict>, z.ZodObject<{
4358
+ blend: z.ZodDefault<z.ZodEnum<{
4359
+ multiply: "multiply";
4360
+ normal: "normal";
4361
+ overlay: "overlay";
4362
+ screen: "screen";
4363
+ }>>;
4364
+ opacity: z.ZodDefault<z.ZodNumber>;
4365
+ op: z.ZodLiteral<"gradient">;
4366
+ from: z.ZodNumber;
4367
+ to: z.ZodNumber;
4368
+ angleDeg: z.ZodDefault<z.ZodNumber>;
4369
+ }, z.core.$strict>, z.ZodObject<{
4370
+ blend: z.ZodDefault<z.ZodEnum<{
4371
+ multiply: "multiply";
4372
+ normal: "normal";
4373
+ overlay: "overlay";
4374
+ screen: "screen";
4375
+ }>>;
4376
+ opacity: z.ZodDefault<z.ZodNumber>;
4377
+ op: z.ZodLiteral<"bricks">;
4378
+ brick: z.ZodNumber;
4379
+ mortar: z.ZodNumber;
4380
+ rows: z.ZodDefault<z.ZodNumber>;
4381
+ cols: z.ZodDefault<z.ZodNumber>;
4382
+ mortarWidth: z.ZodDefault<z.ZodNumber>;
4383
+ stagger: z.ZodDefault<z.ZodNumber>;
4384
+ }, z.core.$strict>, z.ZodObject<{
4385
+ blend: z.ZodDefault<z.ZodEnum<{
4386
+ multiply: "multiply";
4387
+ normal: "normal";
4388
+ overlay: "overlay";
4389
+ screen: "screen";
4390
+ }>>;
4391
+ opacity: z.ZodDefault<z.ZodNumber>;
4392
+ op: z.ZodLiteral<"noise">;
4393
+ colorA: z.ZodNumber;
4394
+ colorB: z.ZodNumber;
4395
+ scale: z.ZodDefault<z.ZodNumber>;
4396
+ octaves: z.ZodDefault<z.ZodNumber>;
4397
+ seed: z.ZodDefault<z.ZodNumber>;
4398
+ }, z.core.$strict>], "op">>;
4399
+ }, z.core.$strict>;
4400
+ alpha: z.ZodOptional<z.ZodNumber>;
4401
+ opacity: z.ZodOptional<z.ZodNumber>;
4402
+ }, z.core.$strict>], "op">>;
4403
+ palette: z.ZodOptional<z.ZodObject<{
4404
+ colors: z.ZodArray<z.ZodNumber>;
4405
+ dither: z.ZodOptional<z.ZodEnum<{
4406
+ bayer4: "bayer4";
4407
+ none: "none";
4408
+ }>>;
4409
+ }, z.core.$strict>>;
4410
+ }, z.core.$strict>;
4411
+ }, z.core.$strict>, z.ZodObject<{
4412
+ kind: z.ZodLiteral<"resource">;
4413
+ resourceId: z.ZodString;
4414
+ pin: z.ZodObject<{
4415
+ resourceId: z.ZodString;
4416
+ revisionId: z.ZodTemplateLiteral<`sha256:${string}`>;
4417
+ sha256: z.ZodTemplateLiteral<`sha256:${string}`>;
4418
+ }, z.core.$strict>;
4419
+ expected: z.ZodOptional<z.ZodObject<{
4420
+ width: z.ZodOptional<z.ZodNumber>;
4421
+ height: z.ZodOptional<z.ZodNumber>;
4422
+ imageSha256: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
4423
+ decodedPixelHash: z.ZodOptional<z.ZodTemplateLiteral<`sha256:${string}`>>;
4424
+ }, z.core.$strict>>;
4425
+ }, z.core.$strict>], "kind">;
4426
+ }, z.core.$strict>>;
4427
+ }, z.core.$strict>>;
4428
+ }, z.core.$strict>>;
4429
+ }, z.core.$strict>]>;
4430
+ export declare function validateMaterialManifestAny(value: unknown): MaterialManifest;
4431
+ export declare function validateMaterialRecordShapeAny(record: MaterialRecord): MaterialManifest;