@mat3ra/made 2024.3.22-0

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 (176) hide show
  1. package/.babelrc +10 -0
  2. package/.eslintrc.json +11 -0
  3. package/.mocharc.json +5 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc +6 -0
  6. package/LICENSE.md +15 -0
  7. package/README.md +167 -0
  8. package/dist/abstract/array_with_ids.d.ts +43 -0
  9. package/dist/abstract/array_with_ids.js +88 -0
  10. package/dist/abstract/scalar_with_id.d.ts +25 -0
  11. package/dist/abstract/scalar_with_id.js +44 -0
  12. package/dist/basis/basis.d.ts +269 -0
  13. package/dist/basis/basis.js +499 -0
  14. package/dist/basis/constrained_basis.d.ts +56 -0
  15. package/dist/basis/constrained_basis.js +90 -0
  16. package/dist/basis/types.d.ts +1 -0
  17. package/dist/basis/types.js +2 -0
  18. package/dist/cell/cell.d.ts +45 -0
  19. package/dist/cell/cell.js +88 -0
  20. package/dist/cell/conventional_cell.d.ts +22 -0
  21. package/dist/cell/conventional_cell.js +83 -0
  22. package/dist/cell/primitive_cell.d.ts +9 -0
  23. package/dist/cell/primitive_cell.js +166 -0
  24. package/dist/constants.d.ts +2 -0
  25. package/dist/constants.js +25 -0
  26. package/dist/constraints/constraints.d.ts +45 -0
  27. package/dist/constraints/constraints.js +49 -0
  28. package/dist/lattice/lattice.d.ts +104 -0
  29. package/dist/lattice/lattice.js +208 -0
  30. package/dist/lattice/lattice_bravais.d.ts +59 -0
  31. package/dist/lattice/lattice_bravais.js +120 -0
  32. package/dist/lattice/lattice_vectors.d.ts +46 -0
  33. package/dist/lattice/lattice_vectors.js +98 -0
  34. package/dist/lattice/reciprocal/lattice_reciprocal.d.ts +75 -0
  35. package/dist/lattice/reciprocal/lattice_reciprocal.js +148 -0
  36. package/dist/lattice/reciprocal/paths.d.ts +24 -0
  37. package/dist/lattice/reciprocal/paths.js +136 -0
  38. package/dist/lattice/reciprocal/symmetry_points.d.ts +8 -0
  39. package/dist/lattice/reciprocal/symmetry_points.js +866 -0
  40. package/dist/lattice/types.d.ts +49 -0
  41. package/dist/lattice/types.js +127 -0
  42. package/dist/lattice/unit_cell.d.ts +30 -0
  43. package/dist/lattice/unit_cell.js +31 -0
  44. package/dist/made.d.ts +40 -0
  45. package/dist/made.js +39 -0
  46. package/dist/material.d.ts +1562 -0
  47. package/dist/material.js +317 -0
  48. package/dist/math.d.ts +395 -0
  49. package/dist/math.js +7 -0
  50. package/dist/parsers/cif.d.ts +10 -0
  51. package/dist/parsers/cif.js +21 -0
  52. package/dist/parsers/errors.d.ts +5 -0
  53. package/dist/parsers/errors.js +11 -0
  54. package/dist/parsers/espresso.d.ts +10 -0
  55. package/dist/parsers/espresso.js +24 -0
  56. package/dist/parsers/native_format_parsers.d.ts +26 -0
  57. package/dist/parsers/native_format_parsers.js +52 -0
  58. package/dist/parsers/parsers.d.ts +13 -0
  59. package/dist/parsers/parsers.js +17 -0
  60. package/dist/parsers/poscar.d.ts +31 -0
  61. package/dist/parsers/poscar.js +180 -0
  62. package/dist/parsers/xyz.d.ts +62 -0
  63. package/dist/parsers/xyz.js +167 -0
  64. package/dist/parsers/xyz_combinatorial_basis.d.ts +64 -0
  65. package/dist/parsers/xyz_combinatorial_basis.js +241 -0
  66. package/dist/tools/basis.d.ts +22 -0
  67. package/dist/tools/basis.js +100 -0
  68. package/dist/tools/cell.d.ts +9 -0
  69. package/dist/tools/cell.js +39 -0
  70. package/dist/tools/index.d.ts +11 -0
  71. package/dist/tools/index.js +15 -0
  72. package/dist/tools/material.d.ts +25 -0
  73. package/dist/tools/material.js +54 -0
  74. package/dist/tools/supercell.d.ts +22 -0
  75. package/dist/tools/supercell.js +62 -0
  76. package/dist/tools/surface.d.ts +10 -0
  77. package/dist/tools/surface.js +147 -0
  78. package/dist/types.d.ts +3 -0
  79. package/dist/types.js +2 -0
  80. package/package.json +89 -0
  81. package/pyproject.toml +77 -0
  82. package/src/js/abstract/array_with_ids.ts +100 -0
  83. package/src/js/abstract/scalar_with_id.ts +53 -0
  84. package/src/js/basis/basis.ts +607 -0
  85. package/src/js/basis/constrained_basis.ts +107 -0
  86. package/src/js/basis/types.ts +1 -0
  87. package/src/js/cell/cell.ts +109 -0
  88. package/src/js/cell/conventional_cell.ts +89 -0
  89. package/src/js/cell/primitive_cell.ts +189 -0
  90. package/src/js/constants.js +4 -0
  91. package/src/js/constraints/constraints.ts +63 -0
  92. package/src/js/lattice/lattice.ts +229 -0
  93. package/src/js/lattice/lattice_bravais.ts +170 -0
  94. package/src/js/lattice/lattice_vectors.ts +126 -0
  95. package/src/js/lattice/reciprocal/lattice_reciprocal.js +155 -0
  96. package/src/js/lattice/reciprocal/paths.js +134 -0
  97. package/src/js/lattice/reciprocal/symmetry_points.ts +886 -0
  98. package/src/js/lattice/types.ts +142 -0
  99. package/src/js/lattice/unit_cell.ts +66 -0
  100. package/src/js/made.js +36 -0
  101. package/src/js/material.ts +398 -0
  102. package/src/js/math.js +6 -0
  103. package/src/js/parsers/cif.js +22 -0
  104. package/src/js/parsers/errors.js +7 -0
  105. package/src/js/parsers/espresso.ts +30 -0
  106. package/src/js/parsers/native_format_parsers.js +51 -0
  107. package/src/js/parsers/parsers.js +13 -0
  108. package/src/js/parsers/poscar.ts +201 -0
  109. package/src/js/parsers/xyz.ts +216 -0
  110. package/src/js/parsers/xyz_combinatorial_basis.js +243 -0
  111. package/src/js/tools/basis.js +116 -0
  112. package/src/js/tools/cell.js +36 -0
  113. package/src/js/tools/index.js +11 -0
  114. package/src/js/tools/material.js +60 -0
  115. package/src/js/tools/supercell.ts +80 -0
  116. package/src/js/tools/surface.js +176 -0
  117. package/src/js/types.ts +4 -0
  118. package/src/py/__init__.py +0 -0
  119. package/src/py/mat3ra/__init__.py +0 -0
  120. package/src/py/mat3ra/made/__init__.py +5 -0
  121. package/tests/.gitattributes +1 -0
  122. package/tests/fixtures/AsGe-basis.json +3 -0
  123. package/tests/fixtures/C2H4-translated.json +3 -0
  124. package/tests/fixtures/C2H4.json +3 -0
  125. package/tests/fixtures/FeLiSi-basis.json +3 -0
  126. package/tests/fixtures/FeO.json +3 -0
  127. package/tests/fixtures/Ge2-basis.json +3 -0
  128. package/tests/fixtures/Graphene.json +3 -0
  129. package/tests/fixtures/Graphene.poscar +3 -0
  130. package/tests/fixtures/H2+H-final.json +3 -0
  131. package/tests/fixtures/H2+H-image.json +3 -0
  132. package/tests/fixtures/H2+H-initial.json +3 -0
  133. package/tests/fixtures/H2O.poscar +3 -0
  134. package/tests/fixtures/LiFeSi-basis.json +3 -0
  135. package/tests/fixtures/Na.json +3 -0
  136. package/tests/fixtures/Na4Cl4-cartesian.json +3 -0
  137. package/tests/fixtures/Na4Cl4.json +3 -0
  138. package/tests/fixtures/Na4Cl4.poscar +3 -0
  139. package/tests/fixtures/Ni-hex.json +3 -0
  140. package/tests/fixtures/Ni-hex.poscar +3 -0
  141. package/tests/fixtures/OSi-basis.json +3 -0
  142. package/tests/fixtures/Si-hex.json +3 -0
  143. package/tests/fixtures/Si-hex.poscar +3 -0
  144. package/tests/fixtures/Si-pwscf.in +3 -0
  145. package/tests/fixtures/Si-slab.json +3 -0
  146. package/tests/fixtures/Si-supercell.json +3 -0
  147. package/tests/fixtures/Si.json +3 -0
  148. package/tests/fixtures/Si2-basis-repeated.json +3 -0
  149. package/tests/fixtures/Si2-basis.json +3 -0
  150. package/tests/fixtures/Zr1H23Zr1H1.json +3 -0
  151. package/tests/fixtures/Zr1H23Zr1H1.poscar +3 -0
  152. package/tests/fixtures/atomic-constraints.json +3 -0
  153. package/tests/js/basis/basis.js +221 -0
  154. package/tests/js/cell/cell.js +21 -0
  155. package/tests/js/cell/primitive_cell.js +17 -0
  156. package/tests/js/constraints/constraints.js +27 -0
  157. package/tests/js/enums.js +40 -0
  158. package/tests/js/lattice/lattice.js +31 -0
  159. package/tests/js/lattice/lattice_bravais.js +17 -0
  160. package/tests/js/lattice/lattice_reciprocal.js +99 -0
  161. package/tests/js/lattice/lattice_vectors.js +10 -0
  162. package/tests/js/material.test.js +11 -0
  163. package/tests/js/parsers/espresso.js +12 -0
  164. package/tests/js/parsers/native_formats.js +30 -0
  165. package/tests/js/parsers/poscar.js +21 -0
  166. package/tests/js/parsers/xyz.js +25 -0
  167. package/tests/js/parsers/xyz_combinatorial_basis.js +153 -0
  168. package/tests/js/setup.js +6 -0
  169. package/tests/js/tools/basis.js +18 -0
  170. package/tests/js/tools/supercell.js +23 -0
  171. package/tests/js/tools/surface.js +12 -0
  172. package/tests/js/utils.js +17 -0
  173. package/tests/py/__init__.py +0 -0
  174. package/tests/py/unit/__init__.py +0 -0
  175. package/tests/py/unit/test_sample.py +10 -0
  176. package/tsconfig.json +3 -0
@@ -0,0 +1,1562 @@
1
+ import { HasConsistencyChecksHasMetadataNamedDefaultableInMemoryEntity } from "@exabyte-io/code.js/dist/entity";
2
+ import { AnyObject } from "@exabyte-io/code.js/dist/entity/in_memory";
3
+ import { ConsistencyCheck, DerivedPropertiesSchema, FileSourceSchema, MaterialSchema } from "@mat3ra/esse/lib/js/types";
4
+ import { ConstrainedBasis } from "./basis/constrained_basis";
5
+ import { Constraint } from "./constraints/constraints";
6
+ import { Lattice } from "./lattice/lattice";
7
+ import { BravaisConfigProps } from "./lattice/lattice_vectors";
8
+ import { BasisConfig } from "./parsers/xyz";
9
+ import { MaterialJSON } from "./types";
10
+ export declare const defaultMaterialConfig: {
11
+ name: string;
12
+ basis: {
13
+ elements: {
14
+ id: number;
15
+ value: string;
16
+ }[];
17
+ coordinates: {
18
+ id: number;
19
+ value: number[];
20
+ }[];
21
+ units: string;
22
+ };
23
+ lattice: {
24
+ type: string;
25
+ a: number;
26
+ b: number;
27
+ c: number;
28
+ alpha: number;
29
+ beta: number;
30
+ gamma: number;
31
+ units: {
32
+ length: string;
33
+ angle: string;
34
+ };
35
+ };
36
+ };
37
+ export interface MaterialSchemaJSON extends MaterialSchema, AnyObject {
38
+ }
39
+ type MaterialBaseEntity = InstanceType<typeof HasConsistencyChecksHasMetadataNamedDefaultableInMemoryEntity>;
40
+ export type MaterialBaseEntityConstructor<T extends MaterialBaseEntity = MaterialBaseEntity> = new (...args: any[]) => T;
41
+ export declare function MaterialMixin<T extends MaterialBaseEntityConstructor = MaterialBaseEntityConstructor>(superclass: T): {
42
+ new (...config: any[]): {
43
+ _json: MaterialSchemaJSON;
44
+ toJSON(): MaterialJSON;
45
+ src: FileSourceSchema;
46
+ updateFormula(): void;
47
+ /**
48
+ * Gets Bolean value for whether or not a material is non-periodic vs periodic.
49
+ * False = periodic, True = non-periodic
50
+ */
51
+ isNonPeriodic: boolean;
52
+ /**
53
+ * @summary Returns the specific derived property (as specified by name) for a material.
54
+ */
55
+ getDerivedPropertyByName(name: string): {
56
+ name?: "volume" | undefined;
57
+ units?: "angstrom^3" | undefined;
58
+ value: number;
59
+ } | {
60
+ name?: "density" | undefined;
61
+ units?: "g/cm^3" | undefined;
62
+ value: number;
63
+ } | {
64
+ pointGroupSymbol?: string | undefined;
65
+ spaceGroupSymbol?: string | undefined;
66
+ tolerance?: {
67
+ units?: "angstrom" | undefined;
68
+ value: number;
69
+ } | undefined;
70
+ name?: "symmetry" | undefined;
71
+ } | {
72
+ name?: "elemental_ratio" | undefined;
73
+ value: number;
74
+ element?: string | undefined;
75
+ } | {
76
+ name?: "p-norm" | undefined;
77
+ degree?: number | undefined;
78
+ value: number;
79
+ } | {
80
+ name?: "inchi" | undefined;
81
+ value: string;
82
+ } | {
83
+ name?: "inchi_key" | undefined;
84
+ value: string;
85
+ } | undefined;
86
+ /**
87
+ * @summary Returns the derived properties array for a material.
88
+ */
89
+ getDerivedProperties(): DerivedPropertiesSchema;
90
+ /**
91
+ * Gets material's formula
92
+ */
93
+ readonly formula: string;
94
+ readonly unitCellFormula: string;
95
+ /**
96
+ * @param textOrObject Basis text or JSON object.
97
+ * @param format Format (xyz, etc.)
98
+ * @param unitz crystal/cartesian
99
+ */
100
+ setBasis(textOrObject: string | BasisConfig, format?: string, unitz?: string): void;
101
+ setBasisConstraints(constraints: Constraint[]): void;
102
+ readonly basis: BasisConfig;
103
+ readonly Basis: ConstrainedBasis;
104
+ /**
105
+ * High-level access to unique elements from material instead of basis.
106
+ */
107
+ readonly uniqueElements: string[];
108
+ lattice: BravaisConfigProps | undefined;
109
+ readonly Lattice: Lattice;
110
+ /**
111
+ * Returns the inchi string from the derivedProperties for a non-periodic material, or throws an error if the
112
+ * inchi cannot be found.
113
+ * @returns {String}
114
+ */
115
+ getInchiStringForHash(): string;
116
+ /**
117
+ * Calculates hash from basis and lattice. Algorithm expects the following:
118
+ * - asserts lattice units to be angstrom
119
+ * - asserts basis units to be crystal
120
+ * - asserts basis coordinates and lattice measurements are rounded to hash precision
121
+ * - forms strings for lattice and basis
122
+ * - creates MD5 hash from basisStr + latticeStr + salt
123
+ * @param salt Salt for hashing, empty string by default.
124
+ * @param isScaled Whether to scale the lattice parameter 'a' to 1.
125
+ */
126
+ calculateHash(salt?: string, isScaled?: boolean, bypassNonPeriodicCheck?: boolean): string;
127
+ hash: string;
128
+ /**
129
+ * Calculates hash from basis and lattice as above + scales lattice properties to make lattice.a = 1
130
+ */
131
+ readonly scaledHash: string;
132
+ /**
133
+ * Converts basis to crystal/fractional coordinates.
134
+ */
135
+ toCrystal(): void;
136
+ /**
137
+ * Converts current material's basis coordinates to cartesian.
138
+ * No changes if coordinates already cartesian.
139
+ */
140
+ toCartesian(): void;
141
+ /**
142
+ * Returns material's basis in XYZ format.
143
+ */
144
+ getBasisAsXyz(fractional?: boolean): string;
145
+ /**
146
+ * Returns material in Quantum Espresso output format:
147
+ * ```
148
+ * CELL_PARAMETERS (angstroms)
149
+ * -0.543131284 -0.000000000 0.543131284
150
+ * -0.000000000 0.543131284 0.543131284
151
+ * -0.543131284 0.543131284 0.000000000
152
+ *
153
+ * ATOMIC_POSITIONS (crystal)
154
+ * Si 0.000000000 0.000000000 -0.000000000
155
+ * Si 0.250000000 0.250000000 0.250000000
156
+ * ```
157
+ */
158
+ getAsQEFormat(): string;
159
+ /**
160
+ * Returns material in POSCAR format. Pass `true` to ignore original poscar source and re-serialize.
161
+ */
162
+ getAsPOSCAR(ignoreOriginal?: boolean, omitConstraints?: boolean): string;
163
+ /**
164
+ * Returns a copy of the material with conventional cell constructed instead of primitive.
165
+ */
166
+ getACopyWithConventionalCell(): any;
167
+ /**
168
+ * @summary a series of checks for the material and returns an array of results in ConsistencyChecks format.
169
+ * @returns Array of checks results
170
+ */
171
+ getConsistencyChecks(): ConsistencyCheck[];
172
+ /**
173
+ * @summary a series of checks for the material's basis and returns an array of results in ConsistencyChecks format.
174
+ * @returns Array of checks results
175
+ */
176
+ getBasisConsistencyChecks(): ConsistencyCheck[];
177
+ consistencyChecks: object[];
178
+ addConsistencyChecks(array: object[]): void;
179
+ prop: {
180
+ <T_1 = undefined>(name: string, defaultValue: T_1): T_1;
181
+ <T_1 = undefined>(name: string): T_1 | undefined;
182
+ } & {
183
+ <T_2 = undefined>(name: string, defaultValue: T_2): T_2;
184
+ <T_1_1 = undefined>(name: string): T_1_1 | undefined;
185
+ } & {
186
+ <T_3 = undefined>(name: string, defaultValue: T_3): T_3;
187
+ <T_1_2 = undefined>(name: string): T_1_2 | undefined;
188
+ } & {
189
+ <T_4 = undefined>(name: string, defaultValue: T_4): T_4;
190
+ <T_1_3 = undefined>(name: string): T_1_3 | undefined;
191
+ } & {
192
+ <T_5 = undefined>(name: string, defaultValue: T_5): T_5;
193
+ <T_6 = undefined>(name: string): T_6 | undefined;
194
+ };
195
+ setProp: ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void);
196
+ unsetProp: ((name: string) => void) & ((name: string) => void) & ((name: string) => void) & ((name: string) => void) & ((name: string) => void);
197
+ toJSONSafe: ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject);
198
+ toJSONQuick: ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject);
199
+ clone: ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any);
200
+ validate: (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
201
+ clean: ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject);
202
+ isValid: (() => boolean) & (() => boolean) & (() => boolean) & (() => boolean) & (() => boolean);
203
+ id: string;
204
+ readonly cls: string;
205
+ getClsName: (() => string) & (() => string) & (() => string) & (() => string) & (() => string);
206
+ readonly slug: string;
207
+ readonly isSystemEntity: boolean;
208
+ getAsEntityReference: ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema);
209
+ getEntityByName: ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity);
210
+ metadata: object;
211
+ updateMetadata(object: object): void;
212
+ name: string;
213
+ setName(name: string): void;
214
+ readonly isDefault: boolean;
215
+ };
216
+ readonly jsonSchema: {
217
+ $id: string;
218
+ $schema: string;
219
+ title: string;
220
+ type: string;
221
+ required: string[];
222
+ properties: {
223
+ formula: {
224
+ description: string;
225
+ type: string;
226
+ };
227
+ unitCellFormula: {
228
+ description: string;
229
+ type: string;
230
+ };
231
+ basis: {
232
+ $schema: string;
233
+ title: string;
234
+ type: string;
235
+ required: string[];
236
+ properties: {
237
+ elements: {
238
+ type: string;
239
+ items: {
240
+ $schema: string;
241
+ title: string;
242
+ description: string;
243
+ type: string;
244
+ required: string[];
245
+ properties: {
246
+ id: {
247
+ type: string;
248
+ };
249
+ value: {
250
+ type: string;
251
+ };
252
+ occurrence: {
253
+ description: string;
254
+ type: string;
255
+ };
256
+ oxidationState: {
257
+ type: string;
258
+ };
259
+ };
260
+ };
261
+ };
262
+ labels: {
263
+ description: string;
264
+ type: string;
265
+ items: {
266
+ properties: {
267
+ id: {
268
+ type: string;
269
+ };
270
+ value: {
271
+ type: string;
272
+ };
273
+ };
274
+ };
275
+ };
276
+ coordinates: {
277
+ type: string;
278
+ items: {
279
+ $schema: string;
280
+ title: string;
281
+ description: string;
282
+ type: string;
283
+ properties: {
284
+ id: {
285
+ type: string;
286
+ };
287
+ value: {
288
+ $schema: string;
289
+ title: string;
290
+ oneOf: {
291
+ $schema: string;
292
+ title: string;
293
+ type: string;
294
+ items: {
295
+ type: string;
296
+ };
297
+ minItems: number;
298
+ maxItems: number;
299
+ }[];
300
+ };
301
+ };
302
+ };
303
+ };
304
+ name: {
305
+ type: string;
306
+ };
307
+ units: {
308
+ type: string;
309
+ };
310
+ bonds: {
311
+ $schema: string;
312
+ title: string;
313
+ type: string;
314
+ uniqueItems: boolean;
315
+ items: {
316
+ type: string;
317
+ properties: {
318
+ atomPair: {
319
+ description: string;
320
+ type: string;
321
+ minItems: number;
322
+ maxItems: number;
323
+ $schema: string;
324
+ title: string;
325
+ items: {
326
+ type: string;
327
+ properties: {
328
+ id: {
329
+ description: string;
330
+ type: string;
331
+ };
332
+ };
333
+ };
334
+ };
335
+ bondType: {
336
+ type: string;
337
+ enum: string[];
338
+ };
339
+ }; /**
340
+ * Returns the inchi string from the derivedProperties for a non-periodic material, or throws an error if the
341
+ * inchi cannot be found.
342
+ * @returns {String}
343
+ */
344
+ };
345
+ };
346
+ };
347
+ };
348
+ lattice: {
349
+ $schema: string;
350
+ title: string;
351
+ type: string;
352
+ required: string[];
353
+ properties: {
354
+ name: {
355
+ enum: string[];
356
+ };
357
+ vectors: {
358
+ $schema: string;
359
+ title: string;
360
+ type: string;
361
+ required: string[];
362
+ properties: {
363
+ alat: {
364
+ description: string;
365
+ type: string;
366
+ default: number;
367
+ };
368
+ units: {
369
+ enum: string[];
370
+ };
371
+ a: {
372
+ $schema: string;
373
+ title: string;
374
+ type: string;
375
+ minItems: number;
376
+ maxItems: number;
377
+ items: {
378
+ type: string;
379
+ };
380
+ };
381
+ b: {
382
+ $schema: string;
383
+ title: string;
384
+ type: string;
385
+ minItems: number;
386
+ maxItems: number;
387
+ items: {
388
+ type: string;
389
+ };
390
+ };
391
+ c: {
392
+ $schema: string;
393
+ title: string;
394
+ type: string;
395
+ minItems: number;
396
+ maxItems: number;
397
+ items: {
398
+ type: string;
399
+ };
400
+ };
401
+ };
402
+ };
403
+ type: {
404
+ $schema: string;
405
+ title: string;
406
+ type: string;
407
+ enum: string[];
408
+ };
409
+ units: {
410
+ type: string;
411
+ properties: {
412
+ length: {
413
+ type: string;
414
+ enum: string[];
415
+ };
416
+ angle: {
417
+ type: string;
418
+ enum: string[];
419
+ };
420
+ };
421
+ };
422
+ a: {
423
+ description: string;
424
+ type: string;
425
+ };
426
+ b: {
427
+ description: string;
428
+ type: string;
429
+ };
430
+ c: {
431
+ description: string;
432
+ type: string;
433
+ };
434
+ alpha: {
435
+ description: string;
436
+ type: string;
437
+ };
438
+ beta: {
439
+ description: string;
440
+ type: string;
441
+ };
442
+ gamma: {
443
+ description: string;
444
+ type: string;
445
+ };
446
+ };
447
+ };
448
+ derivedProperties: {
449
+ $schema: string;
450
+ title: string;
451
+ type: string;
452
+ items: {
453
+ oneOf: ({
454
+ $schema: string;
455
+ title: string;
456
+ type: string;
457
+ required: string[];
458
+ properties: {
459
+ name: {
460
+ enum: string[];
461
+ };
462
+ units: {
463
+ enum: string[];
464
+ };
465
+ value: {
466
+ type: string;
467
+ minimum?: undefined;
468
+ maximum?: undefined;
469
+ };
470
+ pointGroupSymbol?: undefined;
471
+ spaceGroupSymbol?: undefined;
472
+ tolerance?: undefined;
473
+ element?: undefined;
474
+ degree?: undefined;
475
+ };
476
+ description?: undefined;
477
+ } | {
478
+ $schema: string;
479
+ title: string;
480
+ type: string;
481
+ properties: {
482
+ pointGroupSymbol: {
483
+ description: string;
484
+ type: string;
485
+ };
486
+ spaceGroupSymbol: {
487
+ description: string;
488
+ type: string;
489
+ };
490
+ tolerance: {
491
+ type: string;
492
+ description: string;
493
+ $schema: string;
494
+ title: string;
495
+ required: string[];
496
+ properties: {
497
+ units: {
498
+ enum: string[];
499
+ };
500
+ value: {
501
+ type: string;
502
+ };
503
+ };
504
+ };
505
+ name: {
506
+ enum: string[];
507
+ };
508
+ units?: undefined;
509
+ value?: undefined;
510
+ element?: undefined;
511
+ degree?: undefined;
512
+ };
513
+ required?: undefined;
514
+ description?: undefined;
515
+ } | {
516
+ $schema: string;
517
+ title: string;
518
+ description: string;
519
+ type: string;
520
+ required: string[];
521
+ properties: {
522
+ name: {
523
+ enum: string[];
524
+ };
525
+ value: {
526
+ type: string;
527
+ minimum: number;
528
+ maximum: number;
529
+ };
530
+ element: {
531
+ type: string;
532
+ description: string;
533
+ };
534
+ units?: undefined;
535
+ pointGroupSymbol?: undefined;
536
+ spaceGroupSymbol?: undefined;
537
+ tolerance?: undefined;
538
+ degree?: undefined;
539
+ };
540
+ } | {
541
+ $schema: string;
542
+ title: string;
543
+ description: string;
544
+ type: string;
545
+ required: string[];
546
+ properties: {
547
+ name: {
548
+ enum: string[];
549
+ };
550
+ degree: {
551
+ type: string;
552
+ description: string;
553
+ };
554
+ value: {
555
+ type: string;
556
+ minimum?: undefined;
557
+ maximum?: undefined;
558
+ };
559
+ units?: undefined;
560
+ pointGroupSymbol?: undefined;
561
+ spaceGroupSymbol?: undefined;
562
+ tolerance?: undefined;
563
+ element?: undefined;
564
+ };
565
+ } | {
566
+ $schema: string;
567
+ title: string;
568
+ type: string;
569
+ required: string[];
570
+ properties: {
571
+ name: {
572
+ enum: string[];
573
+ };
574
+ value: {
575
+ type: string;
576
+ minimum?: undefined;
577
+ maximum?: undefined;
578
+ };
579
+ units?: undefined;
580
+ pointGroupSymbol?: undefined;
581
+ spaceGroupSymbol?: undefined;
582
+ tolerance?: undefined;
583
+ element?: undefined;
584
+ degree?: undefined;
585
+ };
586
+ description?: undefined;
587
+ })[];
588
+ discriminator: {
589
+ propertyName: string;
590
+ };
591
+ required: string[];
592
+ };
593
+ };
594
+ external: {
595
+ $schema: string;
596
+ title: string;
597
+ description: string;
598
+ type: string;
599
+ required: string[];
600
+ properties: {
601
+ id: {
602
+ description: string;
603
+ oneOf: {
604
+ type: string;
605
+ }[];
606
+ };
607
+ source: {
608
+ description: string;
609
+ type: string;
610
+ };
611
+ origin: {
612
+ description: string;
613
+ type: string;
614
+ };
615
+ data: {
616
+ description: string;
617
+ type: string;
618
+ };
619
+ doi: {
620
+ description: string;
621
+ type: string;
622
+ };
623
+ url: {
624
+ description: string;
625
+ type: string;
626
+ };
627
+ };
628
+ };
629
+ src: {
630
+ $schema: string;
631
+ title: string;
632
+ description: string;
633
+ type: string;
634
+ required: string[];
635
+ properties: {
636
+ extension: {
637
+ description: string;
638
+ type: string;
639
+ };
640
+ filename: {
641
+ description: string;
642
+ type: string;
643
+ };
644
+ text: {
645
+ description: string;
646
+ type: string;
647
+ };
648
+ hash: {
649
+ description: string;
650
+ type: string;
651
+ };
652
+ };
653
+ };
654
+ scaledHash: {
655
+ description: string;
656
+ type: string;
657
+ };
658
+ icsdId: {
659
+ description: string;
660
+ type: string;
661
+ };
662
+ isNonPeriodic: {
663
+ description: string;
664
+ type: string;
665
+ };
666
+ _id: {
667
+ description: string;
668
+ type: string;
669
+ };
670
+ slug: {
671
+ description: string;
672
+ type: string;
673
+ };
674
+ systemName: {
675
+ type: string;
676
+ };
677
+ consistencyChecks: {
678
+ type: string;
679
+ items: {
680
+ $schema: string;
681
+ title: string;
682
+ type: string;
683
+ description: string;
684
+ required: string[];
685
+ properties: {
686
+ key: {
687
+ type: string;
688
+ description: string;
689
+ };
690
+ name: {
691
+ enum: string[];
692
+ description: string;
693
+ };
694
+ severity: {
695
+ enum: string[];
696
+ description: string;
697
+ };
698
+ message: {
699
+ type: string;
700
+ description: string;
701
+ };
702
+ };
703
+ };
704
+ };
705
+ schemaVersion: {
706
+ description: string;
707
+ type: string;
708
+ default: string;
709
+ };
710
+ name: {
711
+ description: string;
712
+ type: string;
713
+ };
714
+ isDefault: {
715
+ description: string;
716
+ type: string;
717
+ default: boolean;
718
+ };
719
+ metadata: {
720
+ type: string;
721
+ };
722
+ };
723
+ };
724
+ readonly defaultConfig: {
725
+ name: string;
726
+ basis: {
727
+ elements: {
728
+ id: number;
729
+ value: string;
730
+ }[];
731
+ coordinates: {
732
+ id: number;
733
+ value: number[];
734
+ }[];
735
+ units: string;
736
+ };
737
+ lattice: {
738
+ type: string;
739
+ a: number;
740
+ b: number;
741
+ c: number;
742
+ alpha: number;
743
+ beta: number;
744
+ gamma: number;
745
+ units: {
746
+ length: string;
747
+ angle: string;
748
+ };
749
+ };
750
+ };
751
+ } & T;
752
+ export declare const Material: {
753
+ new (...config: any[]): {
754
+ _json: MaterialSchemaJSON;
755
+ toJSON(): MaterialJSON;
756
+ src: FileSourceSchema;
757
+ updateFormula(): void;
758
+ /**
759
+ * Gets Bolean value for whether or not a material is non-periodic vs periodic.
760
+ * False = periodic, True = non-periodic
761
+ */
762
+ isNonPeriodic: boolean;
763
+ /**
764
+ * @summary Returns the specific derived property (as specified by name) for a material.
765
+ */
766
+ getDerivedPropertyByName(name: string): {
767
+ name?: "volume" | undefined;
768
+ units?: "angstrom^3" | undefined;
769
+ value: number;
770
+ } | {
771
+ name?: "density" | undefined;
772
+ units?: "g/cm^3" | undefined;
773
+ value: number;
774
+ } | {
775
+ pointGroupSymbol?: string | undefined;
776
+ spaceGroupSymbol?: string | undefined;
777
+ tolerance?: {
778
+ units?: "angstrom" | undefined;
779
+ value: number;
780
+ } | undefined;
781
+ name?: "symmetry" | undefined;
782
+ } | {
783
+ name?: "elemental_ratio" | undefined;
784
+ value: number;
785
+ element?: string | undefined;
786
+ } | {
787
+ name?: "p-norm" | undefined;
788
+ degree?: number | undefined;
789
+ value: number;
790
+ } | {
791
+ name?: "inchi" | undefined;
792
+ value: string;
793
+ } | {
794
+ name?: "inchi_key" | undefined;
795
+ value: string;
796
+ } | undefined;
797
+ /**
798
+ * @summary Returns the derived properties array for a material.
799
+ */
800
+ getDerivedProperties(): DerivedPropertiesSchema;
801
+ /**
802
+ * Gets material's formula
803
+ */
804
+ readonly formula: string;
805
+ readonly unitCellFormula: string;
806
+ /**
807
+ * @param textOrObject Basis text or JSON object.
808
+ * @param format Format (xyz, etc.)
809
+ * @param unitz crystal/cartesian
810
+ */
811
+ setBasis(textOrObject: string | BasisConfig, format?: string, unitz?: string): void;
812
+ setBasisConstraints(constraints: Constraint[]): void;
813
+ readonly basis: BasisConfig;
814
+ readonly Basis: ConstrainedBasis;
815
+ /**
816
+ * High-level access to unique elements from material instead of basis.
817
+ */
818
+ readonly uniqueElements: string[];
819
+ lattice: BravaisConfigProps | undefined;
820
+ readonly Lattice: Lattice;
821
+ /**
822
+ * Returns the inchi string from the derivedProperties for a non-periodic material, or throws an error if the
823
+ * inchi cannot be found.
824
+ * @returns {String}
825
+ */
826
+ getInchiStringForHash(): string;
827
+ /**
828
+ * Calculates hash from basis and lattice. Algorithm expects the following:
829
+ * - asserts lattice units to be angstrom
830
+ * - asserts basis units to be crystal
831
+ * - asserts basis coordinates and lattice measurements are rounded to hash precision
832
+ * - forms strings for lattice and basis
833
+ * - creates MD5 hash from basisStr + latticeStr + salt
834
+ * @param salt Salt for hashing, empty string by default.
835
+ * @param isScaled Whether to scale the lattice parameter 'a' to 1.
836
+ */
837
+ calculateHash(salt?: string, isScaled?: boolean, bypassNonPeriodicCheck?: boolean): string;
838
+ hash: string;
839
+ /**
840
+ * Calculates hash from basis and lattice as above + scales lattice properties to make lattice.a = 1
841
+ */
842
+ readonly scaledHash: string;
843
+ /**
844
+ * Converts basis to crystal/fractional coordinates.
845
+ */
846
+ toCrystal(): void;
847
+ /**
848
+ * Converts current material's basis coordinates to cartesian.
849
+ * No changes if coordinates already cartesian.
850
+ */
851
+ toCartesian(): void;
852
+ /**
853
+ * Returns material's basis in XYZ format.
854
+ */
855
+ getBasisAsXyz(fractional?: boolean): string;
856
+ /**
857
+ * Returns material in Quantum Espresso output format:
858
+ * ```
859
+ * CELL_PARAMETERS (angstroms)
860
+ * -0.543131284 -0.000000000 0.543131284
861
+ * -0.000000000 0.543131284 0.543131284
862
+ * -0.543131284 0.543131284 0.000000000
863
+ *
864
+ * ATOMIC_POSITIONS (crystal)
865
+ * Si 0.000000000 0.000000000 -0.000000000
866
+ * Si 0.250000000 0.250000000 0.250000000
867
+ * ```
868
+ */
869
+ getAsQEFormat(): string;
870
+ /**
871
+ * Returns material in POSCAR format. Pass `true` to ignore original poscar source and re-serialize.
872
+ */
873
+ getAsPOSCAR(ignoreOriginal?: boolean, omitConstraints?: boolean): string;
874
+ /**
875
+ * Returns a copy of the material with conventional cell constructed instead of primitive.
876
+ */
877
+ getACopyWithConventionalCell(): any;
878
+ /**
879
+ * @summary a series of checks for the material and returns an array of results in ConsistencyChecks format.
880
+ * @returns Array of checks results
881
+ */
882
+ getConsistencyChecks(): ConsistencyCheck[];
883
+ /**
884
+ * @summary a series of checks for the material's basis and returns an array of results in ConsistencyChecks format.
885
+ * @returns Array of checks results
886
+ */
887
+ getBasisConsistencyChecks(): ConsistencyCheck[];
888
+ consistencyChecks: object[];
889
+ addConsistencyChecks(array: object[]): void;
890
+ prop: {
891
+ <T = undefined>(name: string, defaultValue: T): T;
892
+ <T_1 = undefined>(name: string): T_1 | undefined;
893
+ } & {
894
+ <T_2 = undefined>(name: string, defaultValue: T_2): T_2;
895
+ <T_1_1 = undefined>(name: string): T_1_1 | undefined;
896
+ } & {
897
+ <T_3 = undefined>(name: string, defaultValue: T_3): T_3;
898
+ <T_1_2 = undefined>(name: string): T_1_2 | undefined;
899
+ } & {
900
+ <T_4 = undefined>(name: string, defaultValue: T_4): T_4;
901
+ <T_1_3 = undefined>(name: string): T_1_3 | undefined;
902
+ } & {
903
+ <T_5 = undefined>(name: string, defaultValue: T_5): T_5;
904
+ <T_6 = undefined>(name: string): T_6 | undefined;
905
+ };
906
+ setProp: ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void) & ((name: string, value: unknown) => void);
907
+ unsetProp: ((name: string) => void) & ((name: string) => void) & ((name: string) => void) & ((name: string) => void) & ((name: string) => void);
908
+ toJSONSafe: ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject);
909
+ toJSONQuick: ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject) & ((exclude?: string[] | undefined) => AnyObject);
910
+ clone: ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any) & ((extraContext?: object | undefined) => any);
911
+ validate: (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
912
+ clean: ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject) & ((config: AnyObject) => AnyObject);
913
+ isValid: (() => boolean) & (() => boolean) & (() => boolean) & (() => boolean) & (() => boolean);
914
+ id: string;
915
+ readonly cls: string;
916
+ getClsName: (() => string) & (() => string) & (() => string) & (() => string) & (() => string);
917
+ readonly slug: string;
918
+ readonly isSystemEntity: boolean;
919
+ getAsEntityReference: ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema) & ((byIdOnly?: boolean | undefined) => import("@mat3ra/esse/lib/js/types").EntityReferenceSchema);
920
+ getEntityByName: ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity) & ((entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string) => import("@exabyte-io/code.js/dist/entity").InMemoryEntity);
921
+ metadata: object;
922
+ updateMetadata(object: object): void;
923
+ name: string;
924
+ setName(name: string): void;
925
+ readonly isDefault: boolean;
926
+ };
927
+ readonly jsonSchema: {
928
+ $id: string;
929
+ $schema: string;
930
+ title: string;
931
+ type: string;
932
+ required: string[];
933
+ properties: {
934
+ formula: {
935
+ description: string;
936
+ type: string;
937
+ };
938
+ unitCellFormula: {
939
+ description: string;
940
+ type: string;
941
+ };
942
+ basis: {
943
+ $schema: string;
944
+ title: string;
945
+ type: string;
946
+ required: string[];
947
+ properties: {
948
+ elements: {
949
+ type: string;
950
+ items: {
951
+ $schema: string;
952
+ title: string;
953
+ description: string;
954
+ type: string;
955
+ required: string[];
956
+ properties: {
957
+ id: {
958
+ type: string;
959
+ };
960
+ value: {
961
+ type: string;
962
+ };
963
+ occurrence: {
964
+ description: string;
965
+ type: string;
966
+ };
967
+ oxidationState: {
968
+ type: string;
969
+ };
970
+ };
971
+ };
972
+ };
973
+ labels: {
974
+ description: string;
975
+ type: string;
976
+ items: {
977
+ properties: {
978
+ id: {
979
+ type: string;
980
+ };
981
+ value: {
982
+ type: string;
983
+ };
984
+ };
985
+ };
986
+ };
987
+ coordinates: {
988
+ type: string;
989
+ items: {
990
+ $schema: string;
991
+ title: string;
992
+ description: string;
993
+ type: string;
994
+ properties: {
995
+ id: {
996
+ type: string;
997
+ };
998
+ value: {
999
+ $schema: string;
1000
+ title: string;
1001
+ oneOf: {
1002
+ $schema: string;
1003
+ title: string;
1004
+ type: string;
1005
+ items: {
1006
+ type: string;
1007
+ };
1008
+ minItems: number;
1009
+ maxItems: number;
1010
+ }[];
1011
+ };
1012
+ };
1013
+ };
1014
+ };
1015
+ name: {
1016
+ type: string;
1017
+ };
1018
+ units: {
1019
+ type: string;
1020
+ };
1021
+ bonds: {
1022
+ $schema: string;
1023
+ title: string;
1024
+ type: string;
1025
+ uniqueItems: boolean;
1026
+ items: {
1027
+ type: string;
1028
+ properties: {
1029
+ atomPair: {
1030
+ description: string;
1031
+ type: string;
1032
+ minItems: number;
1033
+ maxItems: number;
1034
+ $schema: string;
1035
+ title: string;
1036
+ items: {
1037
+ type: string;
1038
+ properties: {
1039
+ id: {
1040
+ description: string;
1041
+ type: string;
1042
+ };
1043
+ };
1044
+ };
1045
+ };
1046
+ bondType: {
1047
+ type: string;
1048
+ enum: string[];
1049
+ };
1050
+ }; /**
1051
+ * Returns the inchi string from the derivedProperties for a non-periodic material, or throws an error if the
1052
+ * inchi cannot be found.
1053
+ * @returns {String}
1054
+ */
1055
+ };
1056
+ };
1057
+ };
1058
+ };
1059
+ lattice: {
1060
+ $schema: string;
1061
+ title: string;
1062
+ type: string;
1063
+ required: string[];
1064
+ properties: {
1065
+ name: {
1066
+ enum: string[];
1067
+ };
1068
+ vectors: {
1069
+ $schema: string;
1070
+ title: string;
1071
+ type: string;
1072
+ required: string[];
1073
+ properties: {
1074
+ alat: {
1075
+ description: string;
1076
+ type: string;
1077
+ default: number;
1078
+ };
1079
+ units: {
1080
+ enum: string[];
1081
+ };
1082
+ a: {
1083
+ $schema: string;
1084
+ title: string;
1085
+ type: string;
1086
+ minItems: number;
1087
+ maxItems: number;
1088
+ items: {
1089
+ type: string;
1090
+ };
1091
+ };
1092
+ b: {
1093
+ $schema: string;
1094
+ title: string;
1095
+ type: string;
1096
+ minItems: number;
1097
+ maxItems: number;
1098
+ items: {
1099
+ type: string;
1100
+ };
1101
+ };
1102
+ c: {
1103
+ $schema: string;
1104
+ title: string;
1105
+ type: string;
1106
+ minItems: number;
1107
+ maxItems: number;
1108
+ items: {
1109
+ type: string;
1110
+ };
1111
+ };
1112
+ };
1113
+ };
1114
+ type: {
1115
+ $schema: string;
1116
+ title: string;
1117
+ type: string;
1118
+ enum: string[];
1119
+ };
1120
+ units: {
1121
+ type: string;
1122
+ properties: {
1123
+ length: {
1124
+ type: string;
1125
+ enum: string[];
1126
+ };
1127
+ angle: {
1128
+ type: string;
1129
+ enum: string[];
1130
+ };
1131
+ };
1132
+ };
1133
+ a: {
1134
+ description: string;
1135
+ type: string;
1136
+ };
1137
+ b: {
1138
+ description: string;
1139
+ type: string;
1140
+ };
1141
+ c: {
1142
+ description: string;
1143
+ type: string;
1144
+ };
1145
+ alpha: {
1146
+ description: string;
1147
+ type: string;
1148
+ };
1149
+ beta: {
1150
+ description: string;
1151
+ type: string;
1152
+ };
1153
+ gamma: {
1154
+ description: string;
1155
+ type: string;
1156
+ };
1157
+ };
1158
+ };
1159
+ derivedProperties: {
1160
+ $schema: string;
1161
+ title: string;
1162
+ type: string;
1163
+ items: {
1164
+ oneOf: ({
1165
+ $schema: string;
1166
+ title: string;
1167
+ type: string;
1168
+ required: string[];
1169
+ properties: {
1170
+ name: {
1171
+ enum: string[];
1172
+ };
1173
+ units: {
1174
+ enum: string[];
1175
+ };
1176
+ value: {
1177
+ type: string;
1178
+ minimum?: undefined;
1179
+ maximum?: undefined;
1180
+ };
1181
+ pointGroupSymbol?: undefined;
1182
+ spaceGroupSymbol?: undefined;
1183
+ tolerance?: undefined;
1184
+ element?: undefined;
1185
+ degree?: undefined;
1186
+ };
1187
+ description?: undefined;
1188
+ } | {
1189
+ $schema: string;
1190
+ title: string;
1191
+ type: string;
1192
+ properties: {
1193
+ pointGroupSymbol: {
1194
+ description: string;
1195
+ type: string;
1196
+ };
1197
+ spaceGroupSymbol: {
1198
+ description: string;
1199
+ type: string;
1200
+ };
1201
+ tolerance: {
1202
+ type: string;
1203
+ description: string;
1204
+ $schema: string;
1205
+ title: string;
1206
+ required: string[];
1207
+ properties: {
1208
+ units: {
1209
+ enum: string[];
1210
+ };
1211
+ value: {
1212
+ type: string;
1213
+ };
1214
+ };
1215
+ };
1216
+ name: {
1217
+ enum: string[];
1218
+ };
1219
+ units?: undefined;
1220
+ value?: undefined;
1221
+ element?: undefined;
1222
+ degree?: undefined;
1223
+ };
1224
+ required?: undefined;
1225
+ description?: undefined;
1226
+ } | {
1227
+ $schema: string;
1228
+ title: string;
1229
+ description: string;
1230
+ type: string;
1231
+ required: string[];
1232
+ properties: {
1233
+ name: {
1234
+ enum: string[];
1235
+ };
1236
+ value: {
1237
+ type: string;
1238
+ minimum: number;
1239
+ maximum: number;
1240
+ };
1241
+ element: {
1242
+ type: string;
1243
+ description: string;
1244
+ };
1245
+ units?: undefined;
1246
+ pointGroupSymbol?: undefined;
1247
+ spaceGroupSymbol?: undefined;
1248
+ tolerance?: undefined;
1249
+ degree?: undefined;
1250
+ };
1251
+ } | {
1252
+ $schema: string;
1253
+ title: string;
1254
+ description: string;
1255
+ type: string;
1256
+ required: string[];
1257
+ properties: {
1258
+ name: {
1259
+ enum: string[];
1260
+ };
1261
+ degree: {
1262
+ type: string;
1263
+ description: string;
1264
+ };
1265
+ value: {
1266
+ type: string;
1267
+ minimum?: undefined;
1268
+ maximum?: undefined;
1269
+ };
1270
+ units?: undefined;
1271
+ pointGroupSymbol?: undefined;
1272
+ spaceGroupSymbol?: undefined;
1273
+ tolerance?: undefined;
1274
+ element?: undefined;
1275
+ };
1276
+ } | {
1277
+ $schema: string;
1278
+ title: string;
1279
+ type: string;
1280
+ required: string[];
1281
+ properties: {
1282
+ name: {
1283
+ enum: string[];
1284
+ };
1285
+ value: {
1286
+ type: string;
1287
+ minimum?: undefined;
1288
+ maximum?: undefined;
1289
+ };
1290
+ units?: undefined;
1291
+ pointGroupSymbol?: undefined;
1292
+ spaceGroupSymbol?: undefined;
1293
+ tolerance?: undefined;
1294
+ element?: undefined;
1295
+ degree?: undefined;
1296
+ };
1297
+ description?: undefined;
1298
+ })[];
1299
+ discriminator: {
1300
+ propertyName: string;
1301
+ };
1302
+ required: string[];
1303
+ };
1304
+ };
1305
+ external: {
1306
+ $schema: string;
1307
+ title: string;
1308
+ description: string;
1309
+ type: string;
1310
+ required: string[];
1311
+ properties: {
1312
+ id: {
1313
+ description: string;
1314
+ oneOf: {
1315
+ type: string;
1316
+ }[];
1317
+ };
1318
+ source: {
1319
+ description: string;
1320
+ type: string;
1321
+ };
1322
+ origin: {
1323
+ description: string;
1324
+ type: string;
1325
+ };
1326
+ data: {
1327
+ description: string;
1328
+ type: string;
1329
+ };
1330
+ doi: {
1331
+ description: string;
1332
+ type: string;
1333
+ };
1334
+ url: {
1335
+ description: string;
1336
+ type: string;
1337
+ };
1338
+ };
1339
+ };
1340
+ src: {
1341
+ $schema: string;
1342
+ title: string;
1343
+ description: string;
1344
+ type: string;
1345
+ required: string[];
1346
+ properties: {
1347
+ extension: {
1348
+ description: string;
1349
+ type: string;
1350
+ };
1351
+ filename: {
1352
+ description: string;
1353
+ type: string;
1354
+ };
1355
+ text: {
1356
+ description: string;
1357
+ type: string;
1358
+ };
1359
+ hash: {
1360
+ description: string;
1361
+ type: string;
1362
+ };
1363
+ };
1364
+ };
1365
+ scaledHash: {
1366
+ description: string;
1367
+ type: string;
1368
+ };
1369
+ icsdId: {
1370
+ description: string;
1371
+ type: string;
1372
+ };
1373
+ isNonPeriodic: {
1374
+ description: string;
1375
+ type: string;
1376
+ };
1377
+ _id: {
1378
+ description: string;
1379
+ type: string;
1380
+ };
1381
+ slug: {
1382
+ description: string;
1383
+ type: string;
1384
+ };
1385
+ systemName: {
1386
+ type: string;
1387
+ };
1388
+ consistencyChecks: {
1389
+ type: string;
1390
+ items: {
1391
+ $schema: string;
1392
+ title: string;
1393
+ type: string;
1394
+ description: string;
1395
+ required: string[];
1396
+ properties: {
1397
+ key: {
1398
+ type: string;
1399
+ description: string;
1400
+ };
1401
+ name: {
1402
+ enum: string[];
1403
+ description: string;
1404
+ };
1405
+ severity: {
1406
+ enum: string[];
1407
+ description: string;
1408
+ };
1409
+ message: {
1410
+ type: string;
1411
+ description: string;
1412
+ };
1413
+ };
1414
+ };
1415
+ };
1416
+ schemaVersion: {
1417
+ description: string;
1418
+ type: string;
1419
+ default: string;
1420
+ };
1421
+ name: {
1422
+ description: string;
1423
+ type: string;
1424
+ };
1425
+ isDefault: {
1426
+ description: string;
1427
+ type: string;
1428
+ default: boolean;
1429
+ };
1430
+ metadata: {
1431
+ type: string;
1432
+ };
1433
+ };
1434
+ };
1435
+ readonly defaultConfig: {
1436
+ name: string;
1437
+ basis: {
1438
+ elements: {
1439
+ id: number;
1440
+ value: string;
1441
+ }[];
1442
+ coordinates: {
1443
+ id: number;
1444
+ value: number[];
1445
+ }[];
1446
+ units: string;
1447
+ };
1448
+ lattice: {
1449
+ type: string;
1450
+ a: number;
1451
+ b: number;
1452
+ c: number;
1453
+ alpha: number;
1454
+ beta: number;
1455
+ gamma: number;
1456
+ units: {
1457
+ length: string;
1458
+ angle: string;
1459
+ };
1460
+ };
1461
+ };
1462
+ } & (new (...args: any[]) => {
1463
+ consistencyChecks: object[];
1464
+ addConsistencyChecks(array: object[]): void;
1465
+ _json: AnyObject;
1466
+ prop<T = undefined>(name: string, defaultValue: T): T;
1467
+ prop<T_1 = undefined>(name: string): T_1 | undefined;
1468
+ setProp(name: string, value: unknown): void;
1469
+ unsetProp(name: string): void;
1470
+ toJSON(exclude?: string[] | undefined): AnyObject;
1471
+ toJSONSafe(exclude?: string[] | undefined): AnyObject;
1472
+ /**
1473
+ * Returns material's basis in XYZ format.
1474
+ */
1475
+ toJSONQuick(exclude?: string[] | undefined): AnyObject;
1476
+ clone(extraContext?: object | undefined): any;
1477
+ validate(): void;
1478
+ clean(config: AnyObject): AnyObject;
1479
+ isValid(): boolean;
1480
+ id: string;
1481
+ readonly cls: string;
1482
+ getClsName(): string;
1483
+ readonly slug: string;
1484
+ readonly isSystemEntity: boolean;
1485
+ getAsEntityReference(byIdOnly?: boolean | undefined): import("@mat3ra/esse/lib/js/types").EntityReferenceSchema;
1486
+ getEntityByName(entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string): import("@exabyte-io/code.js/dist/entity").InMemoryEntity;
1487
+ }) & (new (...args: any[]) => {
1488
+ metadata: object;
1489
+ updateMetadata(object: object): void;
1490
+ _json: AnyObject;
1491
+ prop<T_2 = undefined>(name: string, defaultValue: T_2): T_2;
1492
+ prop<T_1_1 = undefined>(name: string): T_1_1 | undefined;
1493
+ setProp(name: string, value: unknown): void;
1494
+ unsetProp(name: string): void;
1495
+ toJSON(exclude?: string[] | undefined): AnyObject;
1496
+ toJSONSafe(exclude?: string[] | undefined): AnyObject;
1497
+ toJSONQuick(exclude?: string[] | undefined): AnyObject;
1498
+ clone(extraContext?: object | undefined): any;
1499
+ validate(): void;
1500
+ clean(config: AnyObject): AnyObject;
1501
+ isValid(): boolean;
1502
+ id: string;
1503
+ readonly cls: string;
1504
+ getClsName(): string;
1505
+ readonly slug: string;
1506
+ readonly isSystemEntity: boolean;
1507
+ getAsEntityReference(byIdOnly?: boolean | undefined): import("@mat3ra/esse/lib/js/types").EntityReferenceSchema;
1508
+ getEntityByName(entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string): import("@exabyte-io/code.js/dist/entity").InMemoryEntity;
1509
+ }) & (new (...args: any[]) => {
1510
+ name: string;
1511
+ setName(name: string): void;
1512
+ _json: AnyObject;
1513
+ prop<T_3 = undefined>(name: string, defaultValue: T_3): T_3;
1514
+ prop<T_1_2 = undefined>(name: string): T_1_2 | undefined;
1515
+ setProp(name: string, value: unknown): void;
1516
+ unsetProp(name: string): void;
1517
+ toJSON(exclude?: string[] | undefined): AnyObject;
1518
+ toJSONSafe(exclude?: string[] | undefined): AnyObject;
1519
+ toJSONQuick(exclude?: string[] | undefined): AnyObject;
1520
+ clone(extraContext?: object | undefined): any;
1521
+ validate(): void;
1522
+ clean(config: AnyObject): AnyObject;
1523
+ isValid(): boolean;
1524
+ id: string;
1525
+ readonly cls: string;
1526
+ getClsName(): string;
1527
+ readonly slug: string;
1528
+ readonly isSystemEntity: boolean;
1529
+ /**
1530
+ * @summary a series of checks for the material's basis and returns an array of results in ConsistencyChecks format.
1531
+ * @returns Array of checks results
1532
+ */
1533
+ getAsEntityReference(byIdOnly?: boolean | undefined): import("@mat3ra/esse/lib/js/types").EntityReferenceSchema;
1534
+ getEntityByName(entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string): import("@exabyte-io/code.js/dist/entity").InMemoryEntity;
1535
+ }) & {
1536
+ new (...args: any[]): {
1537
+ readonly isDefault: boolean;
1538
+ _json: AnyObject;
1539
+ prop<T_4 = undefined>(name: string, defaultValue: T_4): T_4;
1540
+ prop<T_1_3 = undefined>(name: string): T_1_3 | undefined;
1541
+ setProp(name: string, value: unknown): void;
1542
+ unsetProp(name: string): void;
1543
+ toJSON(exclude?: string[] | undefined): AnyObject;
1544
+ toJSONSafe(exclude?: string[] | undefined): AnyObject;
1545
+ toJSONQuick(exclude?: string[] | undefined): AnyObject;
1546
+ clone(extraContext?: object | undefined): any;
1547
+ validate(): void;
1548
+ clean(config: AnyObject): AnyObject;
1549
+ isValid(): boolean;
1550
+ id: string;
1551
+ readonly cls: string;
1552
+ getClsName(): string;
1553
+ readonly slug: string;
1554
+ readonly isSystemEntity: boolean;
1555
+ getAsEntityReference(byIdOnly?: boolean | undefined): import("@mat3ra/esse/lib/js/types").EntityReferenceSchema;
1556
+ getEntityByName(entities: import("@exabyte-io/code.js/dist/entity").InMemoryEntity[], entity: string, name: string): import("@exabyte-io/code.js/dist/entity").InMemoryEntity;
1557
+ };
1558
+ readonly defaultConfig: object | null;
1559
+ createDefault(): any;
1560
+ } & typeof import("@exabyte-io/code.js/dist/entity").InMemoryEntity;
1561
+ export type Material = InstanceType<typeof Material>;
1562
+ export {};