@kent-tokyo/chematic 0.1.10 → 0.1.20

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.
@@ -1,6 +1,64 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ /**
5
+ * A conformer ensemble: one molecule geometry with multiple 3D coordinate sets.
6
+ *
7
+ * Create with `new(smiles)`, then add conformers with `add_generated_conformer`
8
+ * or `add_minimized_conformer`. Retrieve coordinates as PDB strings via
9
+ * `get_conformer_pdb(idx)`. Compare conformers with `conformer_rmsd`.
10
+ */
11
+ export class ConformerHandle {
12
+ free(): void;
13
+ [Symbol.dispose](): void;
14
+ /**
15
+ * Generate a new 3D conformer using distance-geometry and add it to the ensemble.
16
+ *
17
+ * Returns the index of the newly added conformer.
18
+ */
19
+ add_generated_conformer(): number;
20
+ /**
21
+ * Generate a new 3D conformer, run force-field minimization, and add it.
22
+ *
23
+ * Returns the index of the newly added conformer.
24
+ */
25
+ add_minimized_conformer(): number;
26
+ /**
27
+ * Number of conformers currently stored.
28
+ */
29
+ conformer_count(): number;
30
+ /**
31
+ * Kabsch-aligned RMSD (Å) between conformers `a` and `b`.
32
+ *
33
+ * Returns `NaN` if either index is out of range.
34
+ */
35
+ conformer_rmsd(a: number, b: number): number;
36
+ /**
37
+ * Un-aligned (translation + rotation NOT removed) RMSD (Å) between conformers `a` and `b`.
38
+ *
39
+ * Returns `NaN` if either index is out of range.
40
+ */
41
+ conformer_rmsd_no_align(a: number, b: number): number;
42
+ /**
43
+ * Return conformer `idx` as a PDB string, or `null` if `idx` is out of range.
44
+ */
45
+ get_conformer_pdb(idx: number): string | undefined;
46
+ /**
47
+ * The ensemble's molecule as a `MolHandle`.
48
+ */
49
+ mol(): MolHandle;
50
+ /**
51
+ * Create a new empty ensemble for the molecule given by `smiles`.
52
+ *
53
+ * Returns a JS error on SMILES parse failure.
54
+ */
55
+ constructor(smiles: string);
56
+ /**
57
+ * Remove conformer `idx` and return `true`, or `false` if `idx` is out of range.
58
+ */
59
+ remove_conformer(idx: number): boolean;
60
+ }
61
+
4
62
  /**
5
63
  * Style options for [`MolHandle::depict_svg_opts`].
6
64
  *
@@ -17,6 +75,12 @@ export class DepictOptions {
17
75
  free(): void;
18
76
  [Symbol.dispose](): void;
19
77
  constructor();
78
+ /**
79
+ * Set a per-atom color override (CSS color string). Calling multiple times
80
+ * for the same `idx` uses the last value. The atom is highlighted even if
81
+ * not in `set_highlight_atoms`.
82
+ */
83
+ set_atom_color(idx: number, color: string): void;
20
84
  set_atom_ids(v: boolean): void;
21
85
  set_background(bg: string): void;
22
86
  set_dark(dark: boolean): void;
@@ -168,6 +232,14 @@ export class MolHandle {
168
232
  * Crippen–Wildman octanol/water partition coefficient (LogP).
169
233
  */
170
234
  logp_crippen(): number;
235
+ /**
236
+ * Maximum EState index across all heavy atoms.
237
+ */
238
+ max_estate(): number;
239
+ /**
240
+ * Minimum EState index across all heavy atoms.
241
+ */
242
+ min_estate(): number;
171
243
  /**
172
244
  * Wildman–Crippen molar refractivity (MR).
173
245
  */
@@ -186,6 +258,10 @@ export class MolHandle {
186
258
  * Number of non-aromatic rings containing at least one heteroatom.
187
259
  */
188
260
  num_aliphatic_heterocycles(): number;
261
+ /**
262
+ * Count of aliphatic (non-aromatic) rings in the SSSR.
263
+ */
264
+ num_aliphatic_rings(): number;
189
265
  /**
190
266
  * Number of aromatic rings containing at least one heteroatom (N, O, S, …).
191
267
  */
@@ -202,6 +278,10 @@ export class MolHandle {
202
278
  * Number of fully saturated rings containing at least one heteroatom.
203
279
  */
204
280
  num_saturated_heterocycles(): number;
281
+ /**
282
+ * Count of fully saturated rings in the SSSR.
283
+ */
284
+ num_saturated_rings(): number;
205
285
  /**
206
286
  * Number of spiro atoms (sole shared atom between exactly 2 rings).
207
287
  */
@@ -210,6 +290,10 @@ export class MolHandle {
210
290
  * Number of assigned stereocenters (R/S).
211
291
  */
212
292
  num_stereocenters(): number;
293
+ /**
294
+ * Count of tetrahedral stereocenters with unspecified configuration.
295
+ */
296
+ num_unspecified_stereocenters(): number;
213
297
  /**
214
298
  * Returns `true` if the molecule has no PAINS structural alerts.
215
299
  */
@@ -230,6 +314,10 @@ export class MolHandle {
230
314
  * Number of rotatable bonds.
231
315
  */
232
316
  rotatable_bond_count(): number;
317
+ /**
318
+ * Sum of EState indices over all heavy atoms.
319
+ */
320
+ sum_estate(): number;
233
321
  /**
234
322
  * Topological polar surface area (Ų).
235
323
  */
@@ -250,6 +338,11 @@ export class MolHandle {
250
338
  */
251
339
  export function add_hydrogens(mol: MolHandle): MolHandle;
252
340
 
341
+ /**
342
+ * AtomPair fingerprint as a bit-packed byte vector (256 bytes = 2048 bits).
343
+ */
344
+ export function atom_pair_bitvec(mol: MolHandle): Uint8Array;
345
+
253
346
  /**
254
347
  * Number of BRICS fragments produced by fragmenting the molecule.
255
348
  *
@@ -257,6 +350,82 @@ export function add_hydrogens(mol: MolHandle): MolHandle;
257
350
  */
258
351
  export function brics_fragment_count(mol: MolHandle): number;
259
352
 
353
+ /**
354
+ * BRICS fragment SMILES as a JSON array.
355
+ *
356
+ * Applies the BRICS fragmentation rules and returns the canonical SMILES of
357
+ * every resulting fragment. Returns `[]` for molecules with no BRICS-breakable
358
+ * bonds (e.g. benzene).
359
+ *
360
+ * The count of fragments equals `brics_fragment_count`.
361
+ */
362
+ export function brics_fragments_json(mol: MolHandle): string;
363
+
364
+ /**
365
+ * Cluster molecules by structural similarity (Butina algorithm, ECFP4 Tanimoto).
366
+ *
367
+ * `smiles_json` — a JSON array of SMILES strings.
368
+ * `cutoff` — Tanimoto similarity threshold (0.0–1.0); molecules within this
369
+ * distance of a cluster centre are assigned to that cluster.
370
+ * Returns a JSON array of clusters, each cluster being an array of 0-based input indices.
371
+ * Returns a JS error if any SMILES fails to parse.
372
+ */
373
+ export function butina_cluster_ecfp4_json(smiles_json: string, cutoff: number): string;
374
+
375
+ /**
376
+ * Canonical tautomer of `mol`.
377
+ *
378
+ * Applies a rule-based tautomer normalisation and returns the canonical form
379
+ * as a new `MolHandle`.
380
+ */
381
+ export function canonical_tautomer(mol: MolHandle): MolHandle;
382
+
383
+ /**
384
+ * CIP stereo assignments as a JSON array of `{atomIdx, cipCode}` objects.
385
+ *
386
+ * `cipCode` is one of `"R"`, `"S"`, `"E"`, or `"Z"`.
387
+ * Returns `[]` for molecules with no specified stereocenters.
388
+ */
389
+ export function cip_assignments_json(mol: MolHandle): string;
390
+
391
+ /**
392
+ * Return the CPK color (CSS hex string) for the given element symbol.
393
+ *
394
+ * Returns `"#000000"` (black) for carbon and unknown elements.
395
+ */
396
+ export function cpk_color(element_symbol: string): string;
397
+
398
+ /**
399
+ * Compute structured depiction data for `mol` as a JSON object.
400
+ *
401
+ * Returns:
402
+ * ```json
403
+ * {
404
+ * "atoms": [
405
+ * {"idx": 0, "element": "C", "x": 1.5, "y": 0.0, "charge": 0,
406
+ * "label": null, "color": "#000000"},
407
+ * ...
408
+ * ],
409
+ * "bonds": [
410
+ * {"idx": 0, "atom1": 0, "atom2": 1, "kind": "Single"},
411
+ * ...
412
+ * ]
413
+ * }
414
+ * ```
415
+ *
416
+ * `label` is `null` for carbon atoms in skeletal structures (label suppressed).
417
+ * `kind` is one of `"Single"`, `"Double"`, `"Triple"`, `"Aromatic"`, `"Up"`, `"Down"`.
418
+ */
419
+ export function depict_data_json(mol: MolHandle): string;
420
+
421
+ /**
422
+ * Render a reaction SMILES string (e.g. `"CC(=O)O.CCO>>CC(=O)OCC.O"`) as a
423
+ * single SVG showing reactants → products with `+` separators.
424
+ *
425
+ * Returns a self-contained SVG string. Returns a JS error on invalid input.
426
+ */
427
+ export function depict_reaction_svg(rxn_smiles: string): string;
428
+
260
429
  /**
261
430
  * Render a grid SVG from newline-separated SMILES (one per line).
262
431
  *
@@ -265,16 +434,389 @@ export function brics_fragment_count(mol: MolHandle): number;
265
434
  */
266
435
  export function depict_svg_grid(smiles_block: string, cols: number): string;
267
436
 
437
+ /**
438
+ * Render a molecule grid with SMARTS-based atom highlighting.
439
+ *
440
+ * `smiles_block` — newline-separated SMILES strings (same format as `depict_svg_grid`).
441
+ * `cols` — number of grid columns.
442
+ * `match_smarts` — SMARTS pattern; matched atoms in each molecule are highlighted.
443
+ * Pass an empty string `""` to render without any highlighting.
444
+ *
445
+ * Invalid SMILES are rendered as empty cells; SMARTS parse failure returns an
446
+ * unhighlighted grid (the SMARTS is silently ignored).
447
+ */
448
+ export function depict_svg_grid_highlighted(smiles_block: string, cols: number, match_smarts: string): string;
449
+
450
+ /**
451
+ * Detect named functional groups in `mol`.
452
+ *
453
+ * Returns a JSON array of `{"name":"hydroxyl","atoms":[3]}` objects.
454
+ * Multiple matches of the same group (e.g. two hydroxyl groups) each appear
455
+ * as a separate entry. Overlapping groups (carboxylic acid → "carboxyl" +
456
+ * "hydroxyl" + "carbonyl") are all returned.
457
+ */
458
+ export function detect_functional_groups(mol: MolHandle): string;
459
+
460
+ /**
461
+ * Dice similarity between `a` and `b` using ECFP4 fingerprints.
462
+ */
463
+ export function dice_ecfp4(a: MolHandle, b: MolHandle): number;
464
+
465
+ /**
466
+ * Dice similarity between `a` and `b` using ECFP6 fingerprints.
467
+ */
468
+ export function dice_ecfp6(a: MolHandle, b: MolHandle): number;
469
+
470
+ /**
471
+ * Dice similarity between `a` and `b` using MACCS 166-bit fingerprints.
472
+ */
473
+ export function dice_maccs(a: MolHandle, b: MolHandle): number;
474
+
268
475
  /**
269
476
  * Compute the ECFP4 fingerprint as a bit-packed byte vector (256 bytes = 2048 bits).
270
477
  */
271
478
  export function ecfp4_bitvec(mol: MolHandle): Uint8Array;
272
479
 
480
+ /**
481
+ * ECFP6 (radius-3) fingerprint as a bit-packed byte vector (256 bytes = 2048 bits).
482
+ */
483
+ export function ecfp6_bitvec(mol: MolHandle): Uint8Array;
484
+
485
+ /**
486
+ * Compute a fingerprint bit-vector with configurable ECFP radius and bit width.
487
+ *
488
+ * `radius` — Morgan radius (1 = ECFP2, 2 = ECFP4, 3 = ECFP6).
489
+ * `nbits` — bit width; must be one of 256, 512, 1024, or 2048.
490
+ * Returns a `Uint8Array` of `nbits/8` bytes.
491
+ *
492
+ * The hash modulo is applied at fingerprint-generation time (`id % nbits`),
493
+ * so no post-processing fold is needed.
494
+ */
495
+ export function ecfp_bitvec_custom(mol: MolHandle, radius: number, nbits: number): Uint8Array;
496
+
497
+ /**
498
+ * Enumerate all stereoisomers arising from unspecified tetrahedral stereocenters.
499
+ *
500
+ * Only considers carbon stereocenters without explicit `@`/`@@` annotation.
501
+ * Already-specified centers and E/Z double-bond geometry are unchanged.
502
+ * Returns a JSON array of canonical SMILES strings.
503
+ *
504
+ * At most 2^6 = 64 combinations are enumerated; if more than 6 unspecified
505
+ * centers are present this function returns a JS error to avoid combinatorial
506
+ * explosion.
507
+ */
508
+ export function enumerate_stereo_isomers_json(mol: MolHandle): string;
509
+
510
+ /**
511
+ * All enumerated tautomers of `mol` as a JSON array of canonical SMILES strings.
512
+ *
513
+ * Example return value: `["Oc1cccc2ccccc12","O=C1C=CC=Cc2ccccc21"]`
514
+ */
515
+ export function enumerate_tautomers_json(mol: MolHandle): string;
516
+
517
+ /**
518
+ * Per-atom EState values as a JSON array of f64.
519
+ *
520
+ * Indices match `mol.atoms()` order. Hydrogen atoms get 0.0.
521
+ */
522
+ export function estate_indices_json(mol: MolHandle): string;
523
+
524
+ /**
525
+ * FCFP4 (pharmacophore, radius-2) fingerprint as a bit-packed byte vector (256 bytes).
526
+ */
527
+ export function fcfp4_bitvec(mol: MolHandle): Uint8Array;
528
+
529
+ /**
530
+ * FCFP6 (pharmacophore, radius-3) fingerprint as a bit-packed byte vector (256 bytes).
531
+ */
532
+ export function fcfp6_bitvec(mol: MolHandle): Uint8Array;
533
+
534
+ /**
535
+ * Gasteiger-Marsili PEOE partial charges as a JSON array of f64.
536
+ */
537
+ export function gasteiger_charges_json(mol: MolHandle): string;
538
+
539
+ /**
540
+ * Generate energy-minimized 3D coordinates and return a PDB string.
541
+ *
542
+ * Runs distance-geometry placement followed by gradient-descent force-field
543
+ * minimization. Geometry quality is better than `generate_3d_pdb` for
544
+ * flexible molecules; the force field is approximate (not MMFF94/UFF).
545
+ */
546
+ export function generate_3d_minimized_pdb(mol: MolHandle): string;
547
+
548
+ /**
549
+ * Generate 3D coordinates for the molecule and return a PDB string.
550
+ *
551
+ * Coordinates are generated using distance-geometry placement with ring templates.
552
+ * Returns heavy-atom PDB (HETATM records, no explicit H).
553
+ */
554
+ export function generate_3d_pdb(mol: MolHandle): string;
555
+
556
+ /**
557
+ * Generic (atom-type-erased) Murcko scaffold of `mol`.
558
+ *
559
+ * All atoms become carbon and all bonds become single bonds, giving the pure
560
+ * graph topology of the scaffold.
561
+ */
562
+ export function generic_murcko_scaffold(mol: MolHandle): MolHandle;
563
+
564
+ /**
565
+ * Return information about a single atom as a JSON object.
566
+ *
567
+ * `idx` is the 0-based atom index (matching `atoms()` order).
568
+ * Returns `"null"` if `idx` is out of range.
569
+ *
570
+ * Fields: `element` (symbol), `hybridization` ("sp"/"sp2"/"sp3"),
571
+ * `charge` (formal charge integer), `isAromatic` (bool),
572
+ * `totalHydrogens` (explicit + implicit H count, integer).
573
+ * sp3d/sp3d2 (hypervalent P/S) are not distinguished from sp3/sp2.
574
+ */
575
+ export function get_atom_info(mol: MolHandle, idx: number): string;
576
+
577
+ /**
578
+ * Return bond information as a JSON object, looked up by the two bonded atom indices.
579
+ *
580
+ * Useful when you know the atom indices from SMARTS matching or `data-atom-idx` SVG
581
+ * attributes but not the bond index. Returns `"null"` if no bond exists between them.
582
+ *
583
+ * Fields: same as `get_bond_info` plus `bondIdx` (u32).
584
+ */
585
+ export function get_bond_between(mol: MolHandle, atom1: number, atom2: number): string;
586
+
587
+ /**
588
+ * Return bond information as a JSON object, looked up by bond index.
589
+ *
590
+ * `idx` is the 0-based bond index (order matches `mol.bonds()` iteration).
591
+ * Returns `"null"` if `idx` is out of range.
592
+ *
593
+ * Fields: `bondOrder` (1.0/1.5/2.0/3.0), `isAromatic` (bool),
594
+ * `isInRing` (bool), `atomFrom` (u32), `atomTo` (u32).
595
+ */
596
+ export function get_bond_info(mol: MolHandle, idx: number): string;
597
+
598
+ /**
599
+ * All scalar molecular descriptors as a single JSON object.
600
+ *
601
+ * Keys use camelCase and match the individual `MolHandle` method names.
602
+ * Drug-likeness rule outcomes are included as boolean fields.
603
+ */
604
+ export function get_descriptors_json(mol: MolHandle): string;
605
+
606
+ /**
607
+ * Identify functional groups. Returns a JSON array of objects:
608
+ * `[{"atoms":[0,2,3],"type":"C,N,O"}, …]`
609
+ */
610
+ export function identify_functional_groups(mol: MolHandle): string;
611
+
273
612
  /**
274
613
  * Returns `true` if the SMILES string can be parsed without error.
275
614
  */
276
615
  export function is_valid_smiles(s: string): boolean;
277
616
 
617
+ /**
618
+ * Per-atom Labute approximate surface area contributions as a JSON array of f64.
619
+ *
620
+ * Non-finite values (single-atom molecules etc.) are emitted as JSON `null`.
621
+ */
622
+ export function labute_asa_per_atom_json(mol: MolHandle): string;
623
+
624
+ /**
625
+ * Return the largest fragment of `mol` (salt/solvent stripping).
626
+ *
627
+ * For single-component molecules returns a copy of the same molecule.
628
+ */
629
+ export function largest_fragment(mol: MolHandle): MolHandle;
630
+
631
+ /**
632
+ * Per-atom Crippen LogP contributions as a JSON array of f64.
633
+ *
634
+ * Index `i` corresponds to atom `i` in `mol.atoms()` order.
635
+ */
636
+ export function logp_per_atom_json(mol: MolHandle): string;
637
+
638
+ /**
639
+ * MACCS 166-bit structural keys fingerprint as a byte array (21 bytes, LSB-first).
640
+ *
641
+ * Bit `i` (0-indexed) corresponds to MACCS key `i+1`.
642
+ */
643
+ export function maccs_bitvec(mol: MolHandle): Uint8Array;
644
+
645
+ /**
646
+ * Find all SMARTS matches in a molecule given only SMILES strings.
647
+ *
648
+ * Convenience wrapper around `smarts_match_atoms` that accepts raw SMILES
649
+ * instead of a `MolHandle`. Returns the same JSON format: `[[0,1],[3,4]]`.
650
+ * Returns a JS error on SMILES or SMARTS parse failure.
651
+ */
652
+ export function match_smarts_smiles(smiles: string, smarts: string): string;
653
+
654
+ /**
655
+ * Select `n` maximally-diverse molecules (MaxMin algorithm, ECFP4 Tanimoto).
656
+ *
657
+ * `smiles_json` — a JSON array of SMILES strings, e.g. `["CC","c1ccccc1","CCO"]`.
658
+ * Returns a JSON array of 0-based indices into the input array.
659
+ * Returns a JS error if any SMILES fails to parse (indices would otherwise shift).
660
+ */
661
+ export function maxmin_picks_ecfp4_json(smiles_json: string, n: number): string;
662
+
663
+ /**
664
+ * Maximum Common Substructure of a set of molecules, returned as a canonical SMILES string.
665
+ *
666
+ * `smiles_json` — a JSON array of at least 2 SMILES strings.
667
+ * Returns the MCS SMILES, or `"null"` when no common substructure was found.
668
+ * Returns a JS error on SMILES parse failure.
669
+ */
670
+ export function mcs_smiles_json(smiles_json: string): string;
671
+
672
+ /**
673
+ * Find matched molecular pairs in a set of molecules as JSON.
674
+ *
675
+ * `smiles_json` — JSON array of SMILES strings to analyze.
676
+ *
677
+ * Returns a JSON array of matched pairs:
678
+ * ```json
679
+ * [
680
+ * {
681
+ * "mol_a": "CC(=O)Oc1ccccc1",
682
+ * "mol_b": "CC(=O)Nc1ccccc1",
683
+ * "core": "c1ccccc1[*]",
684
+ * "fragment_a": "[*]OC(C)=O",
685
+ * "fragment_b": "[*]NC(C)=O"
686
+ * }
687
+ * ]
688
+ * ```
689
+ *
690
+ * Each pair represents molecules that share a common core scaffold but differ
691
+ * by exactly one structural fragment at a single BRICS-breakable bond cut.
692
+ *
693
+ * Returns a JS error if any SMILES fails to parse.
694
+ */
695
+ export function mmp_pairs_json(smiles_json: string): string;
696
+
697
+ /**
698
+ * Serialize a SMILES string directly to a MOL V2000 block with 2D coordinates.
699
+ *
700
+ * Returns a JS error on SMILES parse failure.
701
+ */
702
+ export function mol_block_from_smiles(smiles: string): string;
703
+
704
+ /**
705
+ * Parse a ChemDraw XML (CDXML) string into a `MolHandle`.
706
+ *
707
+ * Only the first molecular fragment in the document is returned.
708
+ * Returns a JS error if the document cannot be parsed.
709
+ */
710
+ export function mol_from_cdxml(cdxml: string): MolHandle;
711
+
712
+ /**
713
+ * Parse a CML string into a `MolHandle`.
714
+ *
715
+ * Returns a JS error if the CML is invalid (unknown element, bad bond, etc.).
716
+ */
717
+ export function mol_from_cml(cml: string): MolHandle;
718
+
719
+ /**
720
+ * Parse a PDB file and return a `MolHandle` (topology only; coordinates are discarded).
721
+ *
722
+ * Uses CONECT records for connectivity if present; otherwise infers bonds from
723
+ * atom distances (the same heuristic as the internal `pdb_to_molecule` function).
724
+ */
725
+ export function mol_from_pdb(pdb: string): MolHandle;
726
+
727
+ /**
728
+ * Parse a MOL V2000 block and return a `MolHandle`.
729
+ *
730
+ * Returns a JS error string on parse failure.
731
+ */
732
+ export function mol_from_sdf_block(block: string): MolHandle;
733
+
734
+ /**
735
+ * Parse a MOL V3000 block and return a `MolHandle`.
736
+ *
737
+ * Returns a JS error string on parse failure.
738
+ */
739
+ export function mol_from_v3000_block(block: string): MolHandle;
740
+
741
+ /**
742
+ * Parse an XYZ file and return a `MolHandle` (topology only; coordinates are discarded).
743
+ *
744
+ * Returns a JS error on parse failure.
745
+ */
746
+ export function mol_from_xyz(xyz: string): MolHandle;
747
+
748
+ /**
749
+ * Return the index that would be assigned to an atom appended to `mol`.
750
+ */
751
+ export function mol_next_atom_idx(mol: MolHandle): number;
752
+
753
+ /**
754
+ * Return a new `MolHandle` with one atom appended.
755
+ *
756
+ * The second return value is the new atom's index (as a JS number).
757
+ * Use `with_atom_added_idx` to retrieve the index.
758
+ */
759
+ export function mol_with_atom_added(mol: MolHandle, element_symbol: string): MolHandle;
760
+
761
+ /**
762
+ * Return a new `MolHandle` with atom `idx` and all its bonds removed.
763
+ *
764
+ * Atom indices above `idx` shift down by 1. Returns a JS error if `idx`
765
+ * is out of range.
766
+ */
767
+ export function mol_with_atom_removed(mol: MolHandle, idx: number): MolHandle;
768
+
769
+ /**
770
+ * Return a new `MolHandle` with one bond added between `a` and `b`.
771
+ *
772
+ * `order` — 1 = single, 2 = double, 3 = triple.
773
+ * Returns a JS error if the bond already exists or `a == b`.
774
+ */
775
+ export function mol_with_bond_added(mol: MolHandle, a: number, b: number, order: number): MolHandle;
776
+
777
+ /**
778
+ * Return a new `MolHandle` with bond `idx` removed.
779
+ *
780
+ * Atom indices are unchanged; bond indices above `idx` shift down.
781
+ * Returns a JS error if `idx` is out of range.
782
+ */
783
+ export function mol_with_bond_removed(mol: MolHandle, idx: number): MolHandle;
784
+
785
+ /**
786
+ * Per-atom molar refractivity contributions as a JSON array of f64.
787
+ */
788
+ export function mr_per_atom_json(mol: MolHandle): string;
789
+
790
+ /**
791
+ * Murcko scaffold of `mol` — the ring system plus linkers, side-chains removed.
792
+ *
793
+ * Returns a new `MolHandle`. For acyclic molecules returns an empty molecule.
794
+ */
795
+ export function murcko_scaffold(mol: MolHandle): MolHandle;
796
+
797
+ /**
798
+ * Neutralize formal charges on `mol` by proton addition/removal.
799
+ *
800
+ * Returns a new `MolHandle` with all formal charges set to zero where possible.
801
+ */
802
+ export function neutralize_charges(mol: MolHandle): MolHandle;
803
+
804
+ /**
805
+ * Parse and re-serialise a reaction SMILES string, returning the normalised form.
806
+ *
807
+ * Useful for validating reaction SMILES and obtaining a canonical representation.
808
+ * Returns a JS error on parse failure.
809
+ */
810
+ export function normalize_reaction_smiles(rxn_smiles: string): string;
811
+
812
+ /**
813
+ * PAINS structural alert names matched by `mol` as a JSON array.
814
+ *
815
+ * Returns `[]` when no alerts fire, or e.g. `["ene_six_het_A(483)"]`.
816
+ * Use alongside `pains_passes()` to know *which* alerts triggered.
817
+ */
818
+ export function pains_matches_json(mol: MolHandle): string;
819
+
278
820
  /**
279
821
  * Parse a SMILES string into a `MolHandle`.
280
822
  *
@@ -282,11 +824,39 @@ export function is_valid_smiles(s: string): boolean;
282
824
  */
283
825
  export function parse_smiles(s: string): MolHandle;
284
826
 
827
+ /**
828
+ * PEOE_VSA descriptors (14 bins) as a JSON array.
829
+ */
830
+ export function peoe_vsa_json(mol: MolHandle): string;
831
+
285
832
  /**
286
833
  * Return a copy of the molecule with all explicit hydrogen atoms removed.
287
834
  */
288
835
  export function remove_hydrogens(mol: MolHandle): MolHandle;
289
836
 
837
+ /**
838
+ * Decompose a set of molecules against a core SMARTS, returning R-group SMILES.
839
+ *
840
+ * `smiles_json` — JSON array of SMILES strings.
841
+ * `core_smarts` — SMARTS pattern with `*` (wildcard) atoms marking R-group
842
+ * attachment points. For example `c1ccc(*)cc1` for para-substituted benzene.
843
+ *
844
+ * Returns a JSON array with one entry per input molecule:
845
+ * ```json
846
+ * [
847
+ * {"matched":true, "r1":"C"},
848
+ * {"matched":true, "r1":"CC"},
849
+ * {"matched":false}
850
+ * ]
851
+ * ```
852
+ * R-group keys are `"r1"`, `"r2"`, … in the order the `*` atoms appear in
853
+ * the SMARTS pattern. A molecule that does not contain the core gets
854
+ * `"matched": false` and no R-group keys.
855
+ *
856
+ * Returns a JS error if the SMARTS fails to parse or any SMILES is invalid.
857
+ */
858
+ export function rgroup_decompose_json(smiles_json: string, core_smarts: string): string;
859
+
290
860
  /**
291
861
  * Apply a SMIRKS reaction template and return product SMILES as a JSON string.
292
862
  *
@@ -296,6 +866,106 @@ export function remove_hydrogens(mol: MolHandle): MolHandle;
296
866
  */
297
867
  export function run_reactants(smirks: string, reactants_smiles: string): string;
298
868
 
869
+ /**
870
+ * Synthetic Accessibility Score (1 = easy, 10 = hard).
871
+ */
872
+ export function sa_score(mol: MolHandle): number;
873
+
874
+ /**
875
+ * Serialize multiple molecules with properties to an SDF string.
876
+ *
877
+ * # Arguments
878
+ * * `smiles_json` — JSON array of SMILES strings, e.g. `["CC(=O)O","c1ccccc1"]`
879
+ * * `names_json` — JSON array of molecule names (same length as `smiles_json`)
880
+ * * `props_json` — JSON array where each element encodes one molecule's SD data fields
881
+ * as `"key1\tvalue1\nkey2\tvalue2"` (tab-separated key/value, `\n`-separated pairs;
882
+ * pass `""` for a molecule with no properties)
883
+ *
884
+ * Returns the SDF string, or a JS error if any SMILES fails to parse or the
885
+ * arrays have mismatched lengths.
886
+ *
887
+ * The `\n` and `\t` sequences in `props_json` are JSON-escaped — they are
888
+ * decoded to the actual characters before SDF formatting.
889
+ */
890
+ export function sdf_from_records_json(smiles_json: string, names_json: string, props_json: string): string;
891
+
892
+ /**
893
+ * Parse an SDF string and return a JSON array of record objects.
894
+ *
895
+ * Each record has the shape:
896
+ * ```json
897
+ * {"smiles":"CC(=O)O","name":"aspirin","properties":{"MW":"180.2","Activity":"high"}}
898
+ * ```
899
+ *
900
+ * Invalid records are represented as `null`. SD data fields are included in
901
+ * `properties`; multi-line values are joined with `\n`.
902
+ */
903
+ export function sdf_to_records_json(sdf: string): string;
904
+
905
+ /**
906
+ * Parse an SDF string and return a JSON array of canonical SMILES strings.
907
+ *
908
+ * Invalid records are represented as `null` in the array.
909
+ */
910
+ export function sdf_to_smiles_json(sdf: string): string;
911
+
912
+ /**
913
+ * 3D shape descriptors as a JSON object.
914
+ *
915
+ * Keys: `pmi1`, `pmi2`, `pmi3`, `npr1`, `npr2`, `asphericity`, `eccentricity`,
916
+ * `radiusOfGyration`, `planeOfBestFit`. Non-finite values (e.g. single-atom
917
+ * molecules where pmi3 = 0) are serialised as JSON `null`.
918
+ */
919
+ export function shape_descriptors_json(mol: MolHandle): string;
920
+
921
+ /**
922
+ * SlogP_VSA descriptors (12 bins) as a JSON array.
923
+ */
924
+ export function slogp_vsa_json(mol: MolHandle): string;
925
+
926
+ /**
927
+ * Find all substructure matches of a SMARTS pattern in `mol`.
928
+ *
929
+ * Returns JSON array of arrays of atom indices (sorted, 0-based).
930
+ * Example: `[[0,1,2],[3,4,5]]` — two matches.
931
+ * Returns `"[]"` if no match. Returns a JS error on invalid SMARTS.
932
+ */
933
+ export function smarts_match_atoms(smarts: string, mol: MolHandle): string;
934
+
935
+ /**
936
+ * Serialise a JSON array of SMILES to an SDF string.
937
+ *
938
+ * Generates 2D coordinates for each molecule. Property data can be
939
+ * included by using `sdf_from_records_json` instead.
940
+ */
941
+ export function smiles_array_to_sdf(smiles_json: string): string;
942
+
943
+ /**
944
+ * Render a highlighted SVG from a SMILES string in one call.
945
+ *
946
+ * `atoms` — 0-based atom indices to highlight (Uint32Array in JS).
947
+ * `bonds` — 0-based bond indices to highlight (Uint32Array in JS).
948
+ * `color` — CSS color for highlights (e.g. `"#ef4444"`); empty string uses default yellow.
949
+ *
950
+ * Returns a JS error on SMILES parse failure.
951
+ */
952
+ export function smiles_to_svg_highlighted(smiles: string, atoms: Uint32Array, bonds: Uint32Array, color: string): string;
953
+
954
+ /**
955
+ * SMR_VSA descriptors (10 bins) as a JSON array.
956
+ */
957
+ export function smr_vsa_json(mol: MolHandle): string;
958
+
959
+ /**
960
+ * Smallest Set of Smallest Rings (SSSR) as a JSON array of atom-index arrays.
961
+ *
962
+ * Example return value for naphthalene:
963
+ * `[[0,1,2,3,4,5],[5,6,7,8,9,4]]`
964
+ */
965
+ export function sssr_rings_json(mol: MolHandle): string;
966
+
967
+ export function start(): void;
968
+
299
969
  /**
300
970
  * Tanimoto similarity between two molecules using AtomPair fingerprints.
301
971
  */
@@ -306,12 +976,286 @@ export function tanimoto_atom_pair(a: MolHandle, b: MolHandle): number;
306
976
  */
307
977
  export function tanimoto_ecfp4(a: MolHandle, b: MolHandle): number;
308
978
 
979
+ /**
980
+ * Tanimoto similarity between `a` and `b` using ECFP6 fingerprints.
981
+ */
982
+ export function tanimoto_ecfp6(a: MolHandle, b: MolHandle): number;
983
+
309
984
  /**
310
985
  * Tanimoto similarity between two molecules using FCFP4 fingerprints (pharmacophore-based).
311
986
  */
312
987
  export function tanimoto_fcfp4(a: MolHandle, b: MolHandle): number;
313
988
 
989
+ /**
990
+ * Tanimoto similarity between `a` and `b` using FCFP6 (radius-3 pharmacophore) fingerprints.
991
+ */
992
+ export function tanimoto_fcfp6(a: MolHandle, b: MolHandle): number;
993
+
994
+ /**
995
+ * Tanimoto similarity between `a` and `b` using MACCS 166-bit fingerprints.
996
+ */
997
+ export function tanimoto_maccs(a: MolHandle, b: MolHandle): number;
998
+
999
+ /**
1000
+ * Tanimoto similarity between two molecules given only SMILES strings (ECFP4).
1001
+ *
1002
+ * Returns a JS error on parse failure.
1003
+ */
1004
+ export function tanimoto_smiles(smiles1: string, smiles2: string): number;
1005
+
1006
+ /**
1007
+ * Tanimoto similarity between two molecules using topological path fingerprints.
1008
+ */
1009
+ export function tanimoto_topo_path(a: MolHandle, b: MolHandle): number;
1010
+
314
1011
  /**
315
1012
  * Tanimoto similarity between two molecules using Topological Torsion fingerprints.
316
1013
  */
317
1014
  export function tanimoto_torsion(a: MolHandle, b: MolHandle): number;
1015
+
1016
+ /**
1017
+ * Serialise a `MolHandle` to a CML string with 2D coordinates.
1018
+ *
1019
+ * Coordinates are generated using the same 2D layout engine as `to_mol_block`.
1020
+ */
1021
+ export function to_cml(mol: MolHandle): string;
1022
+
1023
+ /**
1024
+ * Serialize a molecule to a MOL V2000 block with 2D coordinates.
1025
+ *
1026
+ * Atom positions are computed via the same layout engine used for SVG depiction
1027
+ * and converted to Ångström units (`1.5 Å` per bond).
1028
+ */
1029
+ export function to_mol_block(mol: MolHandle): string;
1030
+
1031
+ /**
1032
+ * Serialise a `MolHandle` to MOL V3000 format with 2D coordinates.
1033
+ */
1034
+ export function to_mol_v3000_block(mol: MolHandle): string;
1035
+
1036
+ /**
1037
+ * Serialize a molecule to XYZ format.
1038
+ *
1039
+ * 3D coordinates are generated via distance-geometry placement.
1040
+ */
1041
+ export function to_xyz(mol: MolHandle): string;
1042
+
1043
+ /**
1044
+ * Torsion fingerprint as a bit-packed byte vector (256 bytes = 2048 bits).
1045
+ */
1046
+ export function torsion_bitvec(mol: MolHandle): Uint8Array;
1047
+
1048
+ /**
1049
+ * Non-canonical SMILES for `mol`.
1050
+ *
1051
+ * Unlike `canonical_smiles`, the output depends on the internal atom ordering
1052
+ * and is not normalised. Useful when round-trip fidelity (preserving atom
1053
+ * order) matters more than a canonical form.
1054
+ */
1055
+ export function write_smiles(mol: MolHandle): string;
1056
+
1057
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
1058
+
1059
+ export interface InitOutput {
1060
+ readonly memory: WebAssembly.Memory;
1061
+ readonly __wbg_conformerhandle_free: (a: number, b: number) => void;
1062
+ readonly __wbg_depictoptions_free: (a: number, b: number) => void;
1063
+ readonly __wbg_molhandle_free: (a: number, b: number) => void;
1064
+ readonly add_hydrogens: (a: number) => number;
1065
+ readonly atom_pair_bitvec: (a: number) => [number, number];
1066
+ readonly brics_fragment_count: (a: number) => number;
1067
+ readonly brics_fragments_json: (a: number) => [number, number];
1068
+ readonly butina_cluster_ecfp4_json: (a: number, b: number, c: number) => [number, number, number, number];
1069
+ readonly canonical_tautomer: (a: number) => number;
1070
+ readonly cip_assignments_json: (a: number) => [number, number];
1071
+ readonly conformerhandle_add_generated_conformer: (a: number) => number;
1072
+ readonly conformerhandle_add_minimized_conformer: (a: number) => number;
1073
+ readonly conformerhandle_conformer_count: (a: number) => number;
1074
+ readonly conformerhandle_conformer_rmsd: (a: number, b: number, c: number) => number;
1075
+ readonly conformerhandle_conformer_rmsd_no_align: (a: number, b: number, c: number) => number;
1076
+ readonly conformerhandle_get_conformer_pdb: (a: number, b: number) => [number, number];
1077
+ readonly conformerhandle_mol: (a: number) => number;
1078
+ readonly conformerhandle_new: (a: number, b: number) => [number, number, number];
1079
+ readonly conformerhandle_remove_conformer: (a: number, b: number) => number;
1080
+ readonly cpk_color: (a: number, b: number) => [number, number];
1081
+ readonly depict_data_json: (a: number) => [number, number];
1082
+ readonly depict_reaction_svg: (a: number, b: number) => [number, number, number, number];
1083
+ readonly depict_svg_grid: (a: number, b: number, c: number) => [number, number];
1084
+ readonly depict_svg_grid_highlighted: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1085
+ readonly depictoptions_new: () => number;
1086
+ readonly depictoptions_set_atom_color: (a: number, b: number, c: number, d: number) => void;
1087
+ readonly depictoptions_set_atom_ids: (a: number, b: number) => void;
1088
+ readonly depictoptions_set_background: (a: number, b: number, c: number) => void;
1089
+ readonly depictoptions_set_dark: (a: number, b: number) => void;
1090
+ readonly depictoptions_set_height: (a: number, b: number) => void;
1091
+ readonly depictoptions_set_highlight_atoms: (a: number, b: number, c: number) => void;
1092
+ readonly depictoptions_set_highlight_bonds: (a: number, b: number, c: number) => void;
1093
+ readonly depictoptions_set_highlight_color: (a: number, b: number, c: number) => void;
1094
+ readonly depictoptions_set_kekulize: (a: number, b: number) => void;
1095
+ readonly depictoptions_set_padding: (a: number, b: number) => void;
1096
+ readonly depictoptions_set_show_atom_indices: (a: number, b: number) => void;
1097
+ readonly depictoptions_set_width: (a: number, b: number) => void;
1098
+ readonly detect_functional_groups: (a: number) => [number, number];
1099
+ readonly dice_ecfp4: (a: number, b: number) => number;
1100
+ readonly dice_ecfp6: (a: number, b: number) => number;
1101
+ readonly dice_maccs: (a: number, b: number) => number;
1102
+ readonly ecfp4_bitvec: (a: number) => [number, number];
1103
+ readonly ecfp6_bitvec: (a: number) => [number, number];
1104
+ readonly ecfp_bitvec_custom: (a: number, b: number, c: number) => [number, number];
1105
+ readonly enumerate_stereo_isomers_json: (a: number) => [number, number, number, number];
1106
+ readonly enumerate_tautomers_json: (a: number) => [number, number];
1107
+ readonly estate_indices_json: (a: number) => [number, number];
1108
+ readonly fcfp4_bitvec: (a: number) => [number, number];
1109
+ readonly fcfp6_bitvec: (a: number) => [number, number];
1110
+ readonly gasteiger_charges_json: (a: number) => [number, number];
1111
+ readonly generate_3d_minimized_pdb: (a: number) => [number, number];
1112
+ readonly generate_3d_pdb: (a: number) => [number, number];
1113
+ readonly generic_murcko_scaffold: (a: number) => number;
1114
+ readonly get_atom_info: (a: number, b: number) => [number, number];
1115
+ readonly get_bond_between: (a: number, b: number, c: number) => [number, number];
1116
+ readonly get_bond_info: (a: number, b: number) => [number, number];
1117
+ readonly get_descriptors_json: (a: number) => [number, number];
1118
+ readonly identify_functional_groups: (a: number) => [number, number];
1119
+ readonly is_valid_smiles: (a: number, b: number) => number;
1120
+ readonly labute_asa_per_atom_json: (a: number) => [number, number];
1121
+ readonly largest_fragment: (a: number) => number;
1122
+ readonly logp_per_atom_json: (a: number) => [number, number];
1123
+ readonly maccs_bitvec: (a: number) => [number, number];
1124
+ readonly match_smarts_smiles: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1125
+ readonly maxmin_picks_ecfp4_json: (a: number, b: number, c: number) => [number, number, number, number];
1126
+ readonly mcs_smiles_json: (a: number, b: number) => [number, number, number, number];
1127
+ readonly mmp_pairs_json: (a: number, b: number) => [number, number, number, number];
1128
+ readonly mol_block_from_smiles: (a: number, b: number) => [number, number, number, number];
1129
+ readonly mol_from_cdxml: (a: number, b: number) => [number, number, number];
1130
+ readonly mol_from_cml: (a: number, b: number) => [number, number, number];
1131
+ readonly mol_from_pdb: (a: number, b: number) => number;
1132
+ readonly mol_from_sdf_block: (a: number, b: number) => [number, number, number];
1133
+ readonly mol_from_v3000_block: (a: number, b: number) => [number, number, number];
1134
+ readonly mol_from_xyz: (a: number, b: number) => [number, number, number];
1135
+ readonly mol_next_atom_idx: (a: number) => number;
1136
+ readonly mol_with_atom_added: (a: number, b: number, c: number) => [number, number, number];
1137
+ readonly mol_with_atom_removed: (a: number, b: number) => [number, number, number];
1138
+ readonly mol_with_bond_added: (a: number, b: number, c: number, d: number) => [number, number, number];
1139
+ readonly mol_with_bond_removed: (a: number, b: number) => [number, number, number];
1140
+ readonly molhandle_aromatic_ring_count: (a: number) => number;
1141
+ readonly molhandle_bertz_ct: (a: number) => number;
1142
+ readonly molhandle_bond_count: (a: number) => number;
1143
+ readonly molhandle_canonical_smiles: (a: number) => [number, number];
1144
+ readonly molhandle_chi0: (a: number) => number;
1145
+ readonly molhandle_chi0v: (a: number) => number;
1146
+ readonly molhandle_chi1: (a: number) => number;
1147
+ readonly molhandle_chi1v: (a: number) => number;
1148
+ readonly molhandle_chi2: (a: number) => number;
1149
+ readonly molhandle_chi2v: (a: number) => number;
1150
+ readonly molhandle_chi3: (a: number) => number;
1151
+ readonly molhandle_chi3v: (a: number) => number;
1152
+ readonly molhandle_chi4: (a: number) => number;
1153
+ readonly molhandle_chi4v: (a: number) => number;
1154
+ readonly molhandle_depict_svg: (a: number) => [number, number];
1155
+ readonly molhandle_depict_svg_opts: (a: number, b: number) => [number, number];
1156
+ readonly molhandle_egan_passes: (a: number) => number;
1157
+ readonly molhandle_exact_mass: (a: number) => number;
1158
+ readonly molhandle_formal_charge_sum: (a: number) => number;
1159
+ readonly molhandle_formula: (a: number) => [number, number];
1160
+ readonly molhandle_fsp3: (a: number) => number;
1161
+ readonly molhandle_ghose_passes: (a: number) => number;
1162
+ readonly molhandle_hba_count: (a: number) => number;
1163
+ readonly molhandle_hbd_count: (a: number) => number;
1164
+ readonly molhandle_heavy_atom_count: (a: number) => number;
1165
+ readonly molhandle_kappa1: (a: number) => number;
1166
+ readonly molhandle_kappa2: (a: number) => number;
1167
+ readonly molhandle_kappa3: (a: number) => number;
1168
+ readonly molhandle_labute_asa: (a: number) => number;
1169
+ readonly molhandle_lipinski_passes: (a: number) => number;
1170
+ readonly molhandle_logp_crippen: (a: number) => number;
1171
+ readonly molhandle_max_estate: (a: number) => number;
1172
+ readonly molhandle_min_estate: (a: number) => number;
1173
+ readonly molhandle_molar_refractivity: (a: number) => number;
1174
+ readonly molhandle_molecular_weight: (a: number) => number;
1175
+ readonly molhandle_morgan_fp_counts_json: (a: number, b: number) => [number, number];
1176
+ readonly molhandle_num_aliphatic_heterocycles: (a: number) => number;
1177
+ readonly molhandle_num_aliphatic_rings: (a: number) => number;
1178
+ readonly molhandle_num_aromatic_heterocycles: (a: number) => number;
1179
+ readonly molhandle_num_bridgehead_atoms: (a: number) => number;
1180
+ readonly molhandle_num_heteroatoms: (a: number) => number;
1181
+ readonly molhandle_num_saturated_heterocycles: (a: number) => number;
1182
+ readonly molhandle_num_saturated_rings: (a: number) => number;
1183
+ readonly molhandle_num_spiro_atoms: (a: number) => number;
1184
+ readonly molhandle_num_stereocenters: (a: number) => number;
1185
+ readonly molhandle_num_unspecified_stereocenters: (a: number) => number;
1186
+ readonly molhandle_pains_passes: (a: number) => number;
1187
+ readonly molhandle_qed: (a: number) => number;
1188
+ readonly molhandle_reos_passes: (a: number) => number;
1189
+ readonly molhandle_ring_count: (a: number) => number;
1190
+ readonly molhandle_rotatable_bond_count: (a: number) => number;
1191
+ readonly molhandle_sum_estate: (a: number) => number;
1192
+ readonly molhandle_tpsa: (a: number) => number;
1193
+ readonly molhandle_veber_passes: (a: number) => number;
1194
+ readonly molhandle_wiener_index: (a: number) => number;
1195
+ readonly mr_per_atom_json: (a: number) => [number, number];
1196
+ readonly murcko_scaffold: (a: number) => number;
1197
+ readonly neutralize_charges: (a: number) => number;
1198
+ readonly normalize_reaction_smiles: (a: number, b: number) => [number, number, number, number];
1199
+ readonly pains_matches_json: (a: number) => [number, number];
1200
+ readonly parse_smiles: (a: number, b: number) => [number, number, number];
1201
+ readonly peoe_vsa_json: (a: number) => [number, number];
1202
+ readonly remove_hydrogens: (a: number) => number;
1203
+ readonly rgroup_decompose_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1204
+ readonly run_reactants: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1205
+ readonly sa_score: (a: number) => number;
1206
+ readonly sdf_from_records_json: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
1207
+ readonly sdf_to_records_json: (a: number, b: number) => [number, number];
1208
+ readonly sdf_to_smiles_json: (a: number, b: number) => [number, number];
1209
+ readonly shape_descriptors_json: (a: number) => [number, number];
1210
+ readonly slogp_vsa_json: (a: number) => [number, number];
1211
+ readonly smarts_match_atoms: (a: number, b: number, c: number) => [number, number, number, number];
1212
+ readonly smiles_array_to_sdf: (a: number, b: number) => [number, number, number, number];
1213
+ readonly smiles_to_svg_highlighted: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
1214
+ readonly smr_vsa_json: (a: number) => [number, number];
1215
+ readonly sssr_rings_json: (a: number) => [number, number];
1216
+ readonly tanimoto_atom_pair: (a: number, b: number) => number;
1217
+ readonly tanimoto_ecfp4: (a: number, b: number) => number;
1218
+ readonly tanimoto_ecfp6: (a: number, b: number) => number;
1219
+ readonly tanimoto_fcfp4: (a: number, b: number) => number;
1220
+ readonly tanimoto_fcfp6: (a: number, b: number) => number;
1221
+ readonly tanimoto_maccs: (a: number, b: number) => number;
1222
+ readonly tanimoto_smiles: (a: number, b: number, c: number, d: number) => [number, number, number];
1223
+ readonly tanimoto_topo_path: (a: number, b: number) => number;
1224
+ readonly tanimoto_torsion: (a: number, b: number) => number;
1225
+ readonly to_cml: (a: number) => [number, number];
1226
+ readonly to_mol_block: (a: number) => [number, number];
1227
+ readonly to_mol_v3000_block: (a: number) => [number, number];
1228
+ readonly to_xyz: (a: number) => [number, number];
1229
+ readonly torsion_bitvec: (a: number) => [number, number];
1230
+ readonly write_smiles: (a: number) => [number, number];
1231
+ readonly start: () => void;
1232
+ readonly molhandle_atom_count: (a: number) => number;
1233
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
1234
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
1235
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
1236
+ readonly __wbindgen_externrefs: WebAssembly.Table;
1237
+ readonly __externref_table_dealloc: (a: number) => void;
1238
+ readonly __wbindgen_start: () => void;
1239
+ }
1240
+
1241
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
1242
+
1243
+ /**
1244
+ * Instantiates the given `module`, which can either be bytes or
1245
+ * a precompiled `WebAssembly.Module`.
1246
+ *
1247
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
1248
+ *
1249
+ * @returns {InitOutput}
1250
+ */
1251
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
1252
+
1253
+ /**
1254
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
1255
+ * for everything else, calls `WebAssembly.instantiate` directly.
1256
+ *
1257
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
1258
+ *
1259
+ * @returns {Promise<InitOutput>}
1260
+ */
1261
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;