nmr-processing 18.0.2 → 19.0.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.
@@ -1,84 +1,124 @@
1
1
  import type { AnalizeMultipletOptions } from 'multiplet-analysis';
2
- import { AtomMapping } from './ctMolfileParser';
2
+ import type { Apodization1DFilterOptions } from '@zakodium/nmr-types';
3
+ import type { Apodization1DOptions } from '@zakodium/nmr-types';
4
+ import type { Apodization2D1Options } from '@zakodium/nmr-types';
5
+ import type { Apodization2D2Options } from '@zakodium/nmr-types';
6
+ import type { ApodizationDimension1Options } from '@zakodium/nmr-types';
7
+ import type { ApodizationDimension2Options } from '@zakodium/nmr-types';
8
+ import type { AutoPhaseCorrection2D } from '@zakodium/nmr-types';
9
+ import type { BackwardLinearPredictionFilterOptions } from '@zakodium/nmr-types';
10
+ import type { BackwardLPDimension1Options } from '@zakodium/nmr-types';
11
+ import type { BackwardLPDimension2Options } from '@zakodium/nmr-types';
12
+ import type { BackwardLPOptions } from '@zakodium/nmr-types';
13
+ import type { BaselineCorrection2DFilterOptions } from '@zakodium/nmr-types';
14
+ import type { BaselineCorrectionFilterOptions } from '@zakodium/nmr-types';
15
+ import type { BaselineCorrectionOptions } from '@zakodium/nmr-types';
16
+ import type { BaselineCorrectionZone } from '@zakodium/nmr-types';
3
17
  import { BaseRegression } from 'ml-regression-base';
4
- import { CTSignal } from './ctCreateSignals';
5
18
  import type { DataReIm } from 'ml-spectra-processing';
6
19
  import type { DataXReIm } from 'ml-spectra-processing';
7
20
  import { DataXY } from 'cheminfo-types';
21
+ import type { DigitalFilter2DOptions } from '@zakodium/nmr-types';
22
+ import type { DigitalFilterOption } from '@zakodium/nmr-types';
23
+ import type { DirectDimensionOptions } from '@zakodium/nmr-types';
24
+ import type { DirectOptions } from 'ml-direct';
8
25
  import type { DoubleArray } from 'cheminfo-types';
26
+ import type { EquallySpacedOptions } from '@zakodium/nmr-types';
27
+ import type { ExclusionZonesOptions } from '@zakodium/nmr-types';
28
+ import type { ExponentialOptions } from '@zakodium/nmr-types';
9
29
  import { ExponentialRegression } from 'ml-regression-exponential';
10
- import type { FilterXYType } from 'ml-signal-processing';
30
+ import type { FFT1DOptions } from '@zakodium/nmr-types';
31
+ import type { FFTDimension1Options } from '@zakodium/nmr-types';
32
+ import type { FFTDimension2Options } from '@zakodium/nmr-types';
33
+ import type { Filter1DEntry } from '@zakodium/nmr-types';
34
+ import type { Filter1DOptions } from '@zakodium/nmr-types';
35
+ import type { Filter2DEntry } from '@zakodium/nmr-types';
36
+ import type { Filter2DOptions } from '@zakodium/nmr-types';
37
+ import * as Filters from 'ml-signal-processing';
38
+ import type { FordwardLPDimension1Options } from '@zakodium/nmr-types';
39
+ import type { FordwardLPDimension2Options } from '@zakodium/nmr-types';
40
+ import type { ForwardLP1DOptions } from '@zakodium/nmr-types';
41
+ import type { ForwardLPOptions } from '@zakodium/nmr-types';
11
42
  import { FromTo } from 'cheminfo-types';
43
+ import type { GaussianOptions } from '@zakodium/nmr-types';
44
+ import { GeneralAssignment as GeneralAssignment_2 } from './utils/generalAssignment/buildAssignments.js';
12
45
  import type { GenerateSpectrumOptions } from 'spectrum-generator';
13
46
  import type { GroupedDiaID } from 'openchemlib-utils';
14
47
  import type { GSDOptions } from 'ml-gsd';
15
48
  import { GSDPeakOptimized } from 'ml-gsd';
16
49
  import { GSDPeakOptimizedID } from 'ml-gsd';
17
- import { Jcoupling as Jcoupling_2 } from './Jcoupling';
50
+ import type { IndirectDimensionOptions } from '@zakodium/nmr-types';
51
+ import type { Info1D } from '@zakodium/nmr-types';
52
+ import type { Info2D } from '@zakodium/nmr-types';
53
+ import type { Integral } from '@zakodium/nmr-types';
54
+ import type { Integrals } from '@zakodium/nmr-types';
55
+ import { Jcoupling } from '@zakodium/nmr-types';
18
56
  import type { JoinBroadPeaksOptions } from 'ml-gsd';
19
- import { LightLogger } from 'cheminfo-types';
57
+ import type { LevenbergMarquardtOptions } from 'ml-levenberg-marquardt';
58
+ import type { LightLogger } from 'cheminfo-types';
20
59
  import type { Logger } from 'cheminfo-types';
21
- import { MatchingMultiplicity as MatchingMultiplicity_2 } from '..';
60
+ import { MatchingMultiplicity as MatchingMultiplicity_2 } from '../index.js';
22
61
  import { Matrix } from 'ml-matrix';
62
+ import type { MatrixOptions } from '@zakodium/nmr-types';
23
63
  import type { Molecule } from 'openchemlib';
24
64
  import type { NmrData1D } from 'cheminfo-types';
25
65
  import type { NmrData2D } from 'cheminfo-types';
26
66
  import type { NmrData2DContent } from 'cheminfo-types';
27
67
  import type { NmrData2DFt } from 'cheminfo-types';
28
- import { NMRRange as NMRRange_2 } from './NMRRange';
68
+ import type { NMRPeak1D } from '@zakodium/nmr-types';
69
+ import { NMRRange } from '@zakodium/nmr-types';
70
+ import type { NMRSignal1D } from '@zakodium/nmr-types';
71
+ import { NMRZoneWithID as NMRZoneWithID_2 } from './xyzAutoZonesPicking.js';
29
72
  import type { NumberArray } from 'cheminfo-types';
73
+ import type { NUSDimension2Options } from '@zakodium/nmr-types';
30
74
  import type { OCLMolecule } from 'cheminfo-types';
31
- import { OneLetterMultiplet as OneLetterMultiplet_2 } from './MultiplicityPatterns';
75
+ import { OneDimensionalAssignment as OneDimensionalAssignment_2 } from './utils/oneDimensionalAssignment/buildAssignments.js';
76
+ import { OneDimensionalAssignment as OneDimensionalAssignment_3 } from '../index.js';
77
+ import { OneLetterMultiplet as OneLetterMultiplet_2 } from './MultiplicityPatterns.js';
32
78
  import type { OptimizePeaksOptions } from 'ml-gsd';
33
79
  import type { OptionsSG1D } from 'spectrum-generator';
34
- import { ParsedCoupling } from './ctJSONParser';
35
- import { ParsedShift } from './ctJSONParser';
36
- import type { Peak2D as Peak2D_2 } from 'ml-matrix-peaks-finder';
80
+ import type { Peak1D } from '@zakodium/nmr-types';
81
+ import { Peak2D } from 'ml-matrix-peaks-finder';
82
+ import type { Peaks } from '@zakodium/nmr-types';
37
83
  import type { PeakXYWidth } from 'cheminfo-types';
84
+ import type { PhaseCorrection1DFilterOptions } from '@zakodium/nmr-types';
85
+ import type { PhaseCorrection1DOptions } from '@zakodium/nmr-types';
86
+ import type { PhaseCorrection2DOptions } from '@zakodium/nmr-types';
87
+ import type { PhaseCorrectionTwoDFilter } from '@zakodium/nmr-types';
88
+ import type { PhaseCorrectionTwoDOptions } from '@zakodium/nmr-types';
38
89
  import { PointXY } from 'cheminfo-types';
90
+ import type { Range as Range_2 } from '@zakodium/nmr-types';
91
+ import type { Ranges } from '@zakodium/nmr-types';
39
92
  import type { Shape1D } from 'ml-peak-shape-generator';
40
- import { SpectraDataWithIds as SpectraDataWithIds_2 } from './nmrAssigment';
93
+ import type { Shapes } from '@zakodium/nmr-types';
94
+ import type { Shift2DXFilterOptions } from '@zakodium/nmr-types';
95
+ import type { Shift2DYFilterOptions } from '@zakodium/nmr-types';
96
+ import type { ShiftXFilterOptions } from '@zakodium/nmr-types';
97
+ import type { ShiftXOptions } from '@zakodium/nmr-types';
98
+ import type { SignalProcessingFilter } from '@zakodium/nmr-types';
99
+ import type { SineBellOptions } from '@zakodium/nmr-types';
100
+ import type { SymmetrizeCosyLikeOptions } from '@zakodium/nmr-types';
41
101
  import type { TopicMolecule } from 'openchemlib-utils';
102
+ import type { TrafOptions } from '@zakodium/nmr-types';
42
103
  import type { XDistributionStats } from 'ml-spectra-processing';
43
104
  import type { XRobustDistributionStats } from 'ml-spectra-processing';
44
- import type { XYEquallySpacedOptions } from 'ml-spectra-processing';
45
105
  import type { XYNumber } from 'spectrum-generator';
106
+ import type { ZeroFillingDimension1Options } from '@zakodium/nmr-types';
107
+ import type { ZeroFillingDimension2Options } from '@zakodium/nmr-types';
108
+ import type { ZeroFillingFilterOptions } from '@zakodium/nmr-types';
109
+ import type { ZeroFillingOptions } from '@zakodium/nmr-types';
110
+ import type { Zone } from '@zakodium/nmr-types';
111
+ import type { Zones } from '@zakodium/nmr-types';
46
112
 
47
113
  declare function addDefaultSignal(range: Range_2): void;
48
114
 
49
- export declare interface AirplsOptions {
50
- zones: BaselineCorrectionZone[];
51
- algorithm: 'airpls';
52
- maxIterations: number;
53
- tolerance: number;
54
- }
115
+ declare type Apodization1D = FilterFactory<Entry1D, Apodization1DOptions> & Pick<Apodization1DFilterOptions, 'name'>;
55
116
 
56
- declare type Apodization1D = FilterFactory<Entry1D, Apodization2DOptions> & Pick<Apodization1DFilterOptions, 'name'>;
117
+ declare type ApodizationDimension1 = FilterFactory<Entry2D, Apodization2D1Options> & Pick<ApodizationDimension1Options, 'name'>;
57
118
 
58
- declare interface Apodization1DFilterOptions extends BaseFilter {
59
- name: 'apodization';
60
- value: Apodization2DOptions;
61
- }
119
+ declare type ApodizationDimension2 = FilterFactory<Entry2D, Apodization2D2Options> & Pick<ApodizationDimension2Options, 'name'>;
62
120
 
63
- declare type Apodization2DOptions = Shapes;
64
- export { Apodization2DOptions as Apodization1DOptions }
65
- export { Apodization2DOptions }
66
-
67
- declare type ApodizationDimension1 = FilterFactory<Entry2D, Apodization2DOptions> & Pick<ApodizationDimension1Options, 'name'>;
68
-
69
- declare interface ApodizationDimension1Options extends BaseFilter {
70
- name: 'apodizationDimension1';
71
- value: Apodization2DOptions;
72
- }
73
-
74
- declare type ApodizationDimension2 = FilterFactory<Entry2D, Apodization2DOptions> & Pick<ApodizationDimension2Options, 'name'>;
75
-
76
- declare interface ApodizationDimension2Options extends BaseFilter {
77
- name: 'apodizationDimension2';
78
- value: Apodization2DOptions;
79
- }
80
-
81
- export declare function apodizationXReIm(data: Required<NmrData1D>, options: Apodization2DOptions): {
121
+ export declare function apodizationXReIm(data: Required<NmrData1D>, options: Apodization1DOptions): {
82
122
  x: Float64Array<ArrayBufferLike>;
83
123
  re: Float64Array<ArrayBufferLike>;
84
124
  im: Float64Array<ArrayBufferLike>;
@@ -137,6 +177,8 @@ export declare interface ApplyWindowOptions {
137
177
  output?: DoubleArray;
138
178
  }
139
179
 
180
+ declare type Atom = ReturnType<typeof getAtoms>[0];
181
+
140
182
  declare interface AtomInput {
141
183
  id: ID;
142
184
  pid: ID;
@@ -157,12 +199,30 @@ declare interface AtomInput {
157
199
  s: ID | null;
158
200
  }
159
201
 
160
- declare type AtomTypes = 'H' | 'C';
161
-
162
- export declare interface AutoPhaseCorrection2D {
163
- threshold?: number;
202
+ declare interface AtomOutput {
203
+ id: ID;
204
+ parentID: ID;
205
+ name: string;
206
+ remarks: string;
207
+ nucleusType: NucleusType;
208
+ cipRank: {
209
+ canonical: number;
210
+ rd: number;
211
+ nmr: number;
212
+ };
213
+ ordinal: number;
214
+ stereochemistryFlags: number[];
215
+ spinSystemFlags: number[];
216
+ formalcharge: number;
217
+ partialCharge: number;
218
+ coordinates2D: [number, number, number];
219
+ coordinates3D: [number, number, number];
220
+ parent2D: string | null;
221
+ shift: ID | null;
164
222
  }
165
223
 
224
+ declare type AtomTypes = 'H' | 'C';
225
+
166
226
  export declare interface AutoPhaseCorrectionOptions {
167
227
  minRegSize?: number;
168
228
  maxDistanceToJoin?: number;
@@ -173,84 +233,14 @@ export declare interface AutoPhaseCorrectionOptions {
173
233
 
174
234
  declare type BackwardLinearPrediction1D = FilterFactory<Entry1D, Partial<BackwardLPOptions>> & Pick<BackwardLinearPredictionFilterOptions, 'name'>;
175
235
 
176
- declare interface BackwardLinearPredictionFilterOptions extends BaseFilter {
177
- name: 'backwardLinearPrediction';
178
- value: Partial<BackwardLPOptions>;
179
- }
180
-
181
236
  declare type BackwardLPDimension1 = FilterFactory<Entry2D, Partial<BackwardLPOptions>> & Pick<BackwardLPDimension1Options, 'name'>;
182
237
 
183
- declare interface BackwardLPDimension1Options extends BaseFilter {
184
- name: 'blpDimension1';
185
- value: Partial<BackwardLPOptions>;
186
- }
187
-
188
238
  declare type BackwardLPDimension2 = FilterFactory<Entry2D, Partial<BackwardLPOptions>> & Pick<BackwardLPDimension2Options, 'name'>;
189
239
 
190
- declare interface BackwardLPDimension2Options extends BaseFilter {
191
- name: 'blpDimension2';
192
- value: Partial<BackwardLPOptions>;
193
- }
194
-
195
- export declare interface BackwardLPOptions {
196
- /**
197
- * Number of coefficients to be calculated in the SVD.
198
- */
199
- nbCoefficients: number;
200
- /**
201
- * Number of points used in the prediction.
202
- */
203
- nbInputs: number;
204
- /**
205
- * Number of points to predict
206
- */
207
- nbPoints: number;
208
- /**
209
- * Output array that could be used for in-place modification.
210
- */
211
- output?: Float64Array;
212
- }
213
-
214
- declare interface BaseField {
215
- key: string;
216
- level: number;
217
- name: string;
218
- description: string;
219
- }
220
-
221
- declare interface BaseFilter {
222
- enabled?: boolean;
223
- }
224
-
225
- declare interface BaseFilterEntry extends Required<BaseFilter> {
226
- id?: string;
227
- error?: string;
228
- }
229
-
230
- export declare type BaselineAlgorithms = 'airpls' | 'polynomial';
231
-
232
240
  declare type BaselineCorrection1D = FilterFactory<Entry1D, BaselineCorrectionOptions> & Pick<BaselineCorrectionFilterOptions, 'name'>;
233
241
 
234
242
  declare type BaselineCorrection2D = FilterFactory<Entry2D, Record<string, never>> & Pick<BaselineCorrection2DFilterOptions, 'name'>;
235
243
 
236
- declare interface BaselineCorrection2DFilterOptions extends BaseFilter {
237
- name: 'baselineCorrectionTwoDimensions';
238
- value: Record<string, never>;
239
- }
240
-
241
- declare interface BaselineCorrectionFilterOptions extends BaseFilter {
242
- name: 'baselineCorrection';
243
- value: BaselineCorrectionOptions;
244
- }
245
-
246
- export declare type BaselineCorrectionOptions = PolynomialOptions | AirplsOptions;
247
-
248
- export declare interface BaselineCorrectionZone {
249
- from: number;
250
- to: number;
251
- id: string;
252
- }
253
-
254
244
  export declare interface BaselineZoneOptions {
255
245
  /**
256
246
  * The width factor to use to enlarge the peaks width
@@ -286,10 +276,6 @@ declare interface BaselineZoneOptionsDietrich extends BaselineZoneOptions {
286
276
  maxDistanceToJoin?: number;
287
277
  }
288
278
 
289
- declare interface BasePeak {
290
- id: string;
291
- }
292
-
293
279
  declare interface BondInput {
294
280
  id: ID;
295
281
  b: number;
@@ -298,8 +284,12 @@ declare interface BondInput {
298
284
  a: [ID, ID];
299
285
  }
300
286
 
301
- declare interface BooleanField extends Field<boolean> {
302
- type: 'boolean';
287
+ declare interface BondOutput {
288
+ id: ID;
289
+ bondType: string;
290
+ stereochemistryFlags: number[];
291
+ spinSystemFlags: number[];
292
+ atoms: [ID, ID];
303
293
  }
304
294
 
305
295
  declare type CacheResult = EmptyValue | PredictionBase1D | Promise<EmptyValue | PredictionBase1D>;
@@ -320,7 +310,12 @@ export declare interface CalculateDiffussionCoefficientOptions {
320
310
  }
321
311
 
322
312
  declare interface CalculateT1Options {
323
- optimization?: any;
313
+ optimization?: CalculateT1OptionsOptimization;
314
+ }
315
+
316
+ declare interface CalculateT1OptionsOptimization {
317
+ shapeFunc?: (parameters: number[]) => (x: number) => number;
318
+ options?: Partial<LevenbergMarquardtOptionsDefault> & LevenbergMarquardtOptionsOverride;
324
319
  }
325
320
 
326
321
  export declare const carbonImpurities: DatabaseNMREntry[];
@@ -338,8 +333,6 @@ declare function checkRangeKind(range: Range_2): boolean;
338
333
 
339
334
  declare function checkSignalKinds(range: Range_2, kinds: string[]): boolean;
340
335
 
341
- declare type CommonField = SelectField | StringField | NumberField | BooleanField | LabelField;
342
-
343
336
  declare interface CompilePatternOptions {
344
337
  observedFrequencies?: number[] | Float64Array;
345
338
  tolerances?: number[] | Float64Array;
@@ -402,6 +395,29 @@ export declare interface CreateSignals2DOptions {
402
395
  maxX: number;
403
396
  }
404
397
 
398
+ declare interface CTJSONConverterOutput {
399
+ molarFraction: {
400
+ value: number;
401
+ low: number;
402
+ high: number;
403
+ };
404
+ fieldStrength: number;
405
+ baseItensity: number;
406
+ intensityLimit: number;
407
+ spinSystemFlags: number[];
408
+ spinSystemType: string;
409
+ analysisType: number;
410
+ inchiKey: string;
411
+ populations: ReturnType<typeof getPopulations>;
412
+ lineShapes: ReturnType<typeof getLineShapes>;
413
+ shiftGroups: ReturnType<typeof getShiftGroups>;
414
+ shifts: ReturnType<typeof getShifts>;
415
+ couplingGroups: ReturnType<typeof getCouplingGroups>;
416
+ couplings: ReturnType<typeof getCouplings>;
417
+ atoms: ReturnType<typeof getAtoms>;
418
+ bonds: ReturnType<typeof getBonds>;
419
+ }
420
+
405
421
  declare interface CTJSONInput {
406
422
  v: number;
407
423
  vl: number;
@@ -423,6 +439,19 @@ declare interface CTJSONInput {
423
439
  b: BondInput[];
424
440
  }
425
441
 
442
+ declare interface CTParserResult extends Omit<CTJSONConverterOutput, 'shifts' | 'couplings'> {
443
+ shifts: ParsedShift[];
444
+ couplings: ParsedCoupling[];
445
+ }
446
+
447
+ declare interface CTSignal {
448
+ delta: number;
449
+ diaIDs: string[];
450
+ js: Jcoupling[];
451
+ nbAtoms: number;
452
+ atoms: number[];
453
+ }
454
+
426
455
  export declare type DataBaseLevelEntry = number | [number] | [number, number, number, number | null, number] | undefined | XDistributionStats;
427
456
 
428
457
  export declare type DataBaseLevelStructure = Record<string, DataBaseLevelEntry>;
@@ -464,6 +493,22 @@ export declare const DatumKind: {
464
493
 
465
494
  export declare const default1DApodization: Shapes;
466
495
 
496
+ declare const defaultDirectOptimizationOptions: {
497
+ iterations: number;
498
+ };
499
+
500
+ declare const defaultLMOptimizationOptions: {
501
+ damping: number;
502
+ maxIterations: number;
503
+ errorTolerance: number;
504
+ };
505
+
506
+ declare const defaultLMOptimizationOptions_2: {
507
+ damping: number;
508
+ maxIterations: number;
509
+ errorTolerance: number;
510
+ };
511
+
467
512
  declare function deleteFilter(datum: Entry1D, id?: string, logger?: Logger): void;
468
513
 
469
514
  declare function deleteFilter_2(datum: Entry2D, id?: string, logger?: Logger): void;
@@ -482,30 +527,17 @@ declare type DigitalFilter = FilterFactory<Entry1D, DigitalFilterOptions> & Pick
482
527
 
483
528
  declare type DigitalFilter2D = FilterFactory<Entry2D, DigitalFilterOptions_2> & Pick<DigitalFilter2DOptions, 'name'>;
484
529
 
485
- declare interface DigitalFilter2DOptions extends BaseFilter {
486
- name: 'digitalFilter2D';
487
- value: DigitalFilterOptions_2;
488
- }
489
-
490
- declare interface DigitalFilterOption extends BaseFilter {
491
- name: 'digitalFilter';
492
- value: DigitalFilterOptions;
493
- }
530
+ declare type DigitalFilterOptions = DigitalFilterOption['value'];
494
531
 
495
- declare interface DigitalFilterOptions {
496
- digitalFilterValue: number;
497
- }
532
+ declare type DigitalFilterOptions_2 = DigitalFilter2DOptions['value'];
498
533
 
499
- declare interface DigitalFilterOptions_2 {
500
- digitalFilterValue?: number;
534
+ declare interface DirectOptimizationOptions extends DirectOptions {
535
+ directOptions?: DirectOptions;
536
+ minValues: ArrayLike<number>;
537
+ maxValues: ArrayLike<number>;
501
538
  }
502
539
 
503
- export declare interface DirectDimensionOptions {
504
- acquisitionScheme?: string;
505
- reverse?: boolean;
506
- digitalFilterValue?: number;
507
- phaseCorrection?: PhaseCorrection;
508
- }
540
+ declare type DirectOptimizationOptionsDefaultsKeys = Extract<'minValues' | 'maxValues' | 'initialValues' | 'gradientDifference' | keyof typeof defaultDirectOptimizationOptions, keyof DirectOptimizationOptions>;
509
541
 
510
542
  declare type EmptyValue = void | undefined | null;
511
543
 
@@ -548,63 +580,23 @@ declare interface Entry2D<T extends NmrData2D = NmrData2D> {
548
580
 
549
581
  declare type EquallySpaced = FilterFactory<Entry1D, EquallySpacedFilterOptions> & Pick<EquallySpacedOptions, 'name'>;
550
582
 
551
- declare type EquallySpacedFilterOptions = Pick<XYEquallySpacedOptions, 'from' | 'to' | 'numberOfPoints' | 'exclusions'>;
552
-
553
- declare interface EquallySpacedOptions extends BaseFilter {
554
- name: 'equallySpaced';
555
- value: EquallySpacedFilterOptions;
556
- }
557
-
558
- declare interface ExclusionZone {
559
- id: string;
560
- from: number;
561
- to: number;
562
- }
583
+ declare type EquallySpacedFilterOptions = EquallySpacedOptions['value'];
563
584
 
564
585
  declare type ExclusionZones = FilterFactory<Entry1D, ExclusionZonesFilterOptions[]> & Pick<ExclusionZonesOptions, 'name'>;
565
586
 
566
- declare interface ExclusionZonesFilterOptions extends FromTo {
567
- id: string;
568
- }
569
-
570
- declare interface ExclusionZonesOptions extends BaseFilter {
571
- name: 'exclusionZones';
572
- value: ExclusionZonesFilterOptions[];
573
- }
587
+ declare type ExclusionZonesFilterOptions = ExclusionZonesOptions['value'][number];
574
588
 
575
589
  declare interface Exponential<ShapeOption = ExponentialOptions> {
576
590
  kind: 'exponential';
577
591
  options: ShapeOption;
578
592
  }
579
593
 
580
- declare interface ExponentialOptions {
581
- /**
582
- * line broadening value in Hz, a negative value will invert the shape
583
- */
584
- lineBroadening: number;
585
- }
586
-
587
594
  declare type FFT1D = FilterFactory<Entry1D, Record<string, never>> & Pick<FFT1DOptions, 'name'>;
588
595
 
589
- declare interface FFT1DOptions extends BaseFilter {
590
- name: 'fft';
591
- value: Record<string, never>;
592
- }
593
-
594
596
  declare type FFTDimension1 = FilterFactory<Entry2D, DirectDimensionOptions> & Pick<FFTDimension1Options, 'name'>;
595
597
 
596
- declare interface FFTDimension1Options extends BaseFilter {
597
- name: 'fftDimension1';
598
- value: DirectDimensionOptions;
599
- }
600
-
601
598
  declare type FFTDimension2 = FilterFactory<Entry2D, IndirectDimensionOptions> & Pick<FFTDimension2Options, 'name'>;
602
599
 
603
- declare interface FFTDimension2Options extends BaseFilter {
604
- name: 'fftDimension2';
605
- value: IndirectDimensionOptions;
606
- }
607
-
608
600
  export declare function fftDirectDimension(data: {
609
601
  re: DoubleArray[];
610
602
  im: DoubleArray[];
@@ -618,22 +610,10 @@ export declare function fftIndirectDimension(data: {
618
610
  im: DoubleArray[] | Matrix;
619
611
  }, options: IndirectDimensionOptions): Record<string, Matrix>;
620
612
 
621
- declare interface Field<T> extends BaseField {
622
- default: T;
623
- }
624
-
625
613
  export declare type Filter1D = FFT1D | BaselineCorrection1D | BackwardLinearPrediction1D | Apodization1D | DigitalFilter | EquallySpaced | ExclusionZones | ForwardLP1D | PhaseCorrection1D | ShiftX | SignalProcessing | ZeroFilling;
626
614
 
627
- export declare type Filter1DEntry = Filter1DOptions & BaseFilterEntry;
628
-
629
- export declare type Filter1DOptions = BaselineCorrectionFilterOptions | FFT1DOptions | ZeroFillingFilterOptions | SignalProcessingFilter | ShiftXFilterOptions | PhaseCorrection1DFilterOptions | ForwardLP1DOptions | ExclusionZonesOptions | EquallySpacedOptions | DigitalFilterOption | Apodization1DFilterOptions | BackwardLinearPredictionFilterOptions;
630
-
631
615
  export declare type Filter2D = ApodizationDimension1 | ApodizationDimension2 | BaselineCorrection2D | BackwardLPDimension1 | BackwardLPDimension2 | NUSDimension2 | FFTDimension1 | FFTDimension2 | FordwardLPDimension1 | FordwardLPDimension2 | DigitalFilter2D | PhaseCorrection2D | ZeroFillingDimension1 | ZeroFillingDimension2 | SymmetrizeCosyLike | Shift2DX | Shift2DY;
632
616
 
633
- export declare type Filter2DEntry = Filter2DOptions & BaseFilterEntry;
634
-
635
- export declare type Filter2DOptions = ApodizationDimension1Options | ApodizationDimension2Options | BaselineCorrection2DFilterOptions | BackwardLPDimension1Options | BackwardLPDimension2Options | DigitalFilter2DOptions | FFTDimension1Options | NUSDimension2Options | FFTDimension2Options | FordwardLPDimension1Options | FordwardLPDimension2Options | PhaseCorrection2DOptions | Shift2DXFilterOptions | Shift2DYFilterOptions | SymmetrizeCosyLikeOptions | ZeroFillingDimension1Options | ZeroFillingDimension2Options;
636
-
637
617
  export declare interface FilterDomainUpdateRules {
638
618
  updateYDomain: boolean;
639
619
  updateXDomain: boolean;
@@ -664,6 +644,10 @@ declare interface FilterFactory<EntryType, OptionsType> {
664
644
  domainUpdateRules: Readonly<FilterDomainUpdateRules>;
665
645
  }
666
646
 
647
+ declare type FilterFunction = Extract<FilterSymbols, Function>;
648
+
649
+ declare type FilterOptions = Extract<Parameters<FilterFunction>[1], object>;
650
+
667
651
  export declare const Filters1D: {
668
652
  [K in Filter1D['name']]: Extract<Filter1D, {
669
653
  name: K;
@@ -696,6 +680,8 @@ export declare namespace Filters2DManager {
696
680
  }
697
681
  }
698
682
 
683
+ declare type FilterSymbols = (typeof Filters)[keyof typeof Filters];
684
+
699
685
  /**
700
686
  * Look for a multiplet based on the pattern name or abbreviation.
701
687
  * @param name - pattern name or abbreviation.
@@ -715,64 +701,21 @@ export declare function findPivot(peaks: PointXY[], options: XYObjectSidePointOp
715
701
 
716
702
  declare type FordwardLPDimension1 = FilterFactory<Entry2D, Partial<BackwardLPOptions>> & Pick<FordwardLPDimension1Options, 'name'>;
717
703
 
718
- declare interface FordwardLPDimension1Options extends BaseFilter {
719
- name: 'flpDimension1';
720
- value: Partial<BackwardLPOptions>;
721
- }
722
-
723
704
  declare type FordwardLPDimension2 = FilterFactory<Entry2D, Partial<BackwardLPOptions>> & Pick<FordwardLPDimension2Options, 'name'>;
724
705
 
725
- declare interface FordwardLPDimension2Options extends BaseFilter {
726
- name: 'flpDimension2';
727
- value: Partial<BackwardLPOptions>;
728
- }
729
-
730
706
  declare type ForwardLP1D = FilterFactory<Entry1D, Partial<ForwardLPOptions>> & Pick<ForwardLP1DOptions, 'name'>;
731
707
 
732
- declare interface ForwardLP1DOptions extends BaseFilter {
733
- name: 'forwardLinearPrediction';
734
- value: Partial<ForwardLPOptions>;
735
- }
736
-
737
- export declare interface ForwardLPOptions {
738
- /**
739
- * Number of coefficients to be calculated in the SVD.
740
- */
741
- nbCoefficients: number;
742
- /**
743
- * Number of points used in the prediction.
744
- */
745
- nbInputs: number;
746
- /**
747
- * Number of points to predict
748
- */
749
- nbPoints: number;
750
- /**
751
- * Output array that could be used for in-place modification.
752
- */
753
- output?: Float64Array;
754
- }
755
-
756
708
  declare interface Gaussian<ShapeOption = GaussianOptions> {
757
709
  kind: 'gaussian';
758
710
  options: ShapeOption;
759
711
  }
760
712
 
761
- declare interface GaussianOptions {
762
- /**
763
- * Inverse Exponential Width, Hz
764
- */
765
- lineBroadening: number;
766
- /**
767
- * Location of Gauss Maximum, this value should be between 0 to 1
768
- */
769
- lineBroadeningCenter: number;
713
+ export declare interface GeneralAssignment {
714
+ score: number;
715
+ assignment: SpectraDataWithIds[];
770
716
  }
771
717
 
772
- export declare function get13CAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get13CAssignmentsOptions): Promise<{
773
- score: any;
774
- assignment: NMRRangeWithIntegration[];
775
- }[]>;
718
+ export declare function get13CAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get13CAssignmentsOptions): Promise<OneDimensionalAssignment_3[]>;
776
719
 
777
720
  export declare interface Get13CAssignmentsOptions {
778
721
  restrictionByCS?: Partial<RestrictionByCS1D>;
@@ -804,10 +747,7 @@ export declare interface Get13CAssignmentsOptions {
804
747
 
805
748
  export declare function get1DErrorFactor(spectrum: Entry1D): number;
806
749
 
807
- export declare function get1HAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get1HAssignmentsOptions): Promise<{
808
- score: any;
809
- assignment: NMRRangeWithIntegration[];
810
- }[]>;
750
+ export declare function get1HAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get1HAssignmentsOptions): Promise<OneDimensionalAssignment_2[]>;
811
751
 
812
752
  export declare interface Get1HAssignmentsOptions {
813
753
  restrictionByCS?: Partial<RestrictionByCS1D>;
@@ -839,10 +779,7 @@ export declare interface Get1HAssignmentsOptions {
839
779
 
840
780
  export declare function get2DErrorFactor(spectrum: Entry2D): Zone2DError;
841
781
 
842
- export declare function getAssignments(input: GetAutoAssignmentInput, options?: GetAssignmentsOptions): Promise<{
843
- score: any;
844
- assignment: SpectraDataWithIds_2[];
845
- }[]>;
782
+ export declare function getAssignments(input: GetAutoAssignmentInput, options?: GetAssignmentsOptions): Promise<GeneralAssignment_2[]>;
846
783
 
847
784
  export declare interface GetAssignmentsOptions {
848
785
  justAssign?: AtomTypes[][];
@@ -889,6 +826,8 @@ export declare interface GetAssignmentsOptions {
889
826
  };
890
827
  }
891
828
 
829
+ declare function getAtoms(a: AtomInput[]): AtomOutput[];
830
+
892
831
  export declare interface GetAutoAssignmentInput {
893
832
  spectra: SpectraData[];
894
833
  /**
@@ -914,6 +853,34 @@ export declare function getBaselineZones(data: NmrData1D, options?: BaselineZone
914
853
  */
915
854
  export declare function getBaselineZonesByDietrich(data: NmrData1D, options?: BaselineZoneOptionsDietrich): BaselineCorrectionZone[];
916
855
 
856
+ declare function getBonds(b: BondInput[]): BondOutput[];
857
+
858
+ declare function getCouplingGroups(cg: CouplingGroupInput[]): {
859
+ id: string;
860
+ parentID: string;
861
+ name: string;
862
+ remarks: string;
863
+ coupling: {
864
+ value: number;
865
+ low: number;
866
+ high: number;
867
+ };
868
+ spinSystemFlags: number[];
869
+ couplingType: string;
870
+ }[];
871
+
872
+ declare function getCouplings(c: CouplingInput[]): {
873
+ id: string;
874
+ parentID: string;
875
+ name: string;
876
+ remarks: string;
877
+ couplingGroup: string;
878
+ shifts: {
879
+ from: string;
880
+ to: string;
881
+ };
882
+ }[];
883
+
917
884
  export declare function getDatabase(url?: string, options?: {
918
885
  /**
919
886
  * @default 'tsv'
@@ -940,6 +907,8 @@ declare interface GetKernelOptions {
940
907
  yLength?: number;
941
908
  }
942
909
 
910
+ declare function getLineShapes(l: LineShapeData[]): LineShapeResult[];
911
+
943
912
  declare function getNbAtoms(range: Range_2, signalIndex?: number): number;
944
913
 
945
914
  export declare function getPeakDelta(peak: Peak1D | NMRPeak1D, shiftTarget: ShiftTarget, shift: number): {
@@ -964,6 +933,36 @@ export declare interface GetPeakListOptions extends GSDOptions, OptimizePeaksOpt
964
933
  maxAbsDdY?: number;
965
934
  }
966
935
 
936
+ declare function getPopulations(p: PopulationInput[]): PopulationOutput[];
937
+
938
+ declare function getShiftGroups(sg: ShiftGroupEntry[]): {
939
+ id: string;
940
+ parentID: string;
941
+ name: string;
942
+ remarks: string;
943
+ shift: {
944
+ value: number;
945
+ low: number;
946
+ high: number;
947
+ };
948
+ spin2: number;
949
+ spinCount: number;
950
+ exchangeable: boolean;
951
+ spinSystemFlags: number[];
952
+ gamma: number;
953
+ iterationWeight: number;
954
+ response: {
955
+ value: number;
956
+ low: number;
957
+ high: number;
958
+ sf: number[];
959
+ };
960
+ population: string;
961
+ lineShape: string;
962
+ }[];
963
+
964
+ declare function getShifts(s: ShiftInput[]): ShiftOutput[];
965
+
967
966
  export declare function getShiftX(spectrum: Entry1D): number;
968
967
 
969
968
  declare interface HOSEPrediction {
@@ -991,82 +990,6 @@ export declare interface ImpuritySignal {
991
990
  shift: number;
992
991
  }
993
992
 
994
- export declare interface IndirectDimensionOptions {
995
- acquisitionScheme?: string;
996
- reverse?: boolean;
997
- phaseCorrection?: PhaseCorrection_2;
998
- }
999
-
1000
- declare interface Info {
1001
- owner?: string;
1002
- isFid: boolean;
1003
- date?: string;
1004
- localeDate?: string;
1005
- epoch?: number;
1006
- phc1?: number;
1007
- phc0?: number;
1008
- aqMod?: number;
1009
- isComplex: boolean;
1010
- dimension: number;
1011
- isFt: boolean;
1012
- experiment?: any;
1013
- digitalFilter?: number;
1014
- experimentNumber?: number;
1015
- solvent?: string;
1016
- pulseSequence?: string;
1017
- name: string;
1018
- }
1019
-
1020
- export declare interface Info1D extends Info {
1021
- nucleus: string;
1022
- spectralWidth: number;
1023
- originFrequency: number;
1024
- baseFrequency?: number;
1025
- digitalFilter?: number;
1026
- frequencyOffset?: number;
1027
- owner?: string;
1028
- reverse?: boolean;
1029
- decim?: number;
1030
- dspfvs?: number;
1031
- lpNumberOfCoefficients?: number;
1032
- tdOff?: number;
1033
- spectrumSize?: number;
1034
- numberOfPoints?: number;
1035
- linearPredictionBin?: number;
1036
- }
1037
-
1038
- export declare interface Info2D extends Info {
1039
- nucleus: string[];
1040
- isFtDimensionOne: boolean;
1041
- digitalFilter?: number;
1042
- originFrequency: number[];
1043
- baseFrequency: number[];
1044
- frequencyOffset: number[];
1045
- spectralWidth: number[];
1046
- reverse?: boolean[];
1047
- lpNumberOfCoefficients?: number[];
1048
- tdOff?: number[];
1049
- spectrumSize: number[];
1050
- numberOfPoints: number[];
1051
- linearPredictionBin?: number[];
1052
- }
1053
-
1054
- export declare interface Integral {
1055
- id: string;
1056
- originalFrom: number;
1057
- originalTo: number;
1058
- from: number;
1059
- to: number;
1060
- absolute: number;
1061
- integral: number;
1062
- kind: string;
1063
- }
1064
-
1065
- export declare interface Integrals {
1066
- values: Integral[];
1067
- options: SumOptions;
1068
- }
1069
-
1070
993
  export declare function isEmptyMolecule(molecule: Molecule): boolean;
1071
994
 
1072
995
  export declare function isMolfileNotEmpty(molFile?: string): molFile is string;
@@ -1081,20 +1004,15 @@ declare interface JAxisKeys {
1081
1004
  intensity: string;
1082
1005
  }
1083
1006
 
1084
- export declare interface Jcoupling {
1085
- coupling: number;
1086
- atoms?: number[];
1087
- assignment?: string | string[];
1088
- diaIDs?: string[];
1089
- multiplicity?: string;
1090
- pathLength?: number;
1091
- }
1092
-
1093
1007
  declare type JcouplingFromPrediction = MakeMandatory<Jcoupling, 'multiplicity' | 'diaIDs' | 'pathLength'>;
1094
1008
 
1095
- declare interface LabelField extends BaseField {
1096
- type: 'label';
1097
- }
1009
+ declare type LevenbergMarquardtOptimizationOptionsDefaultsKeys = Extract<'minValues' | 'maxValues' | 'initialValues' | 'gradientDifference' | keyof typeof defaultLMOptimizationOptions, keyof LevenbergMarquardtOptions>;
1010
+
1011
+ declare type LevenbergMarquardtOptionsDefault = Pick<LevenbergMarquardtOptions, LevenbergMarquardtOptionsWithDefaultKeys>;
1012
+
1013
+ declare type LevenbergMarquardtOptionsOverride = Omit<LevenbergMarquardtOptions, LevenbergMarquardtOptionsWithDefaultKeys>;
1014
+
1015
+ declare type LevenbergMarquardtOptionsWithDefaultKeys = 'initialValues' | 'minValues' | 'maxValues' | keyof typeof defaultLMOptimizationOptions_2;
1098
1016
 
1099
1017
  declare interface LineShapeData {
1100
1018
  id: string;
@@ -1114,9 +1032,22 @@ declare interface LineShapeData {
1114
1032
  };
1115
1033
  }
1116
1034
 
1117
- declare interface ListField extends Field<string[]> {
1118
- type: 'list';
1119
- properties: Record<string, CommonField>;
1035
+ declare interface LineShapeResult {
1036
+ id: string;
1037
+ parentID: string;
1038
+ name: string;
1039
+ remarks: string;
1040
+ spinSystemFlags: number[];
1041
+ lineWidth: {
1042
+ value: number;
1043
+ low: number;
1044
+ high: number;
1045
+ };
1046
+ gaussian: {
1047
+ value: number;
1048
+ low: number;
1049
+ high: number;
1050
+ };
1120
1051
  }
1121
1052
 
1122
1053
  declare type MakeMandatory<T, K extends keyof T> = T & {
@@ -1213,40 +1144,6 @@ export declare type MatchingMultiplicity = MultipletDefinition & {
1213
1144
  isBroad: boolean;
1214
1145
  };
1215
1146
 
1216
- declare interface MatrixFilter {
1217
- name: FilterXYType['name'];
1218
- properties: MatrixProperties;
1219
- options: any;
1220
- }
1221
-
1222
- export declare interface MatrixOptions {
1223
- /**
1224
- * Matrix generation filters
1225
- * @default []
1226
- */
1227
- filters: Array<MatrixFilter & {
1228
- options: object;
1229
- }>;
1230
- /**
1231
- * Exclusion zones
1232
- * @default []
1233
- */
1234
- exclusionsZones: ExclusionZone[];
1235
- /**
1236
- * range
1237
- */
1238
- range: {
1239
- from: number;
1240
- to: number;
1241
- };
1242
- /**
1243
- * number of points
1244
- */
1245
- numberOfPoints: number;
1246
- }
1247
-
1248
- declare type MatrixProperties = Record<string, Properties>;
1249
-
1250
1147
  export declare function matrixToBoxPlot(input: NumberArray[], options?: {
1251
1148
  colors?: string[];
1252
1149
  }): {
@@ -1292,13 +1189,6 @@ export declare interface MultipletDefinition {
1292
1189
 
1293
1190
  export declare const MultiplicityPatterns: MultipletDefinition[];
1294
1191
 
1295
- export declare interface NMRPeak1D extends PeakXYWidth {
1296
- id?: string;
1297
- kind?: string;
1298
- shape?: Shape1D;
1299
- originalX?: number;
1300
- }
1301
-
1302
1192
  export declare interface NMRPeak1DFull extends NMRPeak1D {
1303
1193
  id: string;
1304
1194
  shape: Shape1DWithFWHM;
@@ -1307,19 +1197,6 @@ export declare interface NMRPeak1DFull extends NMRPeak1D {
1307
1197
 
1308
1198
  export declare type NMRPeak1DWithShapeID = MakeMandatory<NMRPeak1D, 'id' | 'shape'>;
1309
1199
 
1310
- export declare interface NMRRange {
1311
- from: number;
1312
- to: number;
1313
- id?: string;
1314
- assignment?: string;
1315
- diaIDs?: string[];
1316
- kind?: string;
1317
- pubIntegral?: number;
1318
- integration?: number;
1319
- multiplicity?: string;
1320
- signals?: NMRSignal1D[];
1321
- }
1322
-
1323
1200
  declare interface NMRRangeWithIds extends Omit<NMRRange, 'id' | 'signals'> {
1324
1201
  id: string;
1325
1202
  signals: NMRSignal1DWithId[];
@@ -1327,20 +1204,6 @@ declare interface NMRRangeWithIds extends Omit<NMRRange, 'id' | 'signals'> {
1327
1204
 
1328
1205
  export declare type NMRRangeWithIntegration = MakeMandatory<NMRRange, 'integration'>;
1329
1206
 
1330
- export declare interface NMRSignal1D {
1331
- delta: number;
1332
- id?: string;
1333
- js?: Jcoupling[];
1334
- atoms?: number[];
1335
- assignment?: string;
1336
- kind?: string;
1337
- multiplicity?: string;
1338
- diaIDs?: string[];
1339
- nbAtoms?: number;
1340
- integration?: number;
1341
- peaks?: NMRPeak1D[];
1342
- }
1343
-
1344
1207
  export declare type NMRSignal1DFromPrediction = MakeMandatory<NMRSignal1D, 'nbAtoms' | 'atoms' | 'diaIDs'> & {
1345
1208
  statistics?: XRobustDistributionStats;
1346
1209
  metadata?: HOSEPrediction;
@@ -1350,7 +1213,7 @@ export declare type NMRSignal1DWithAtomsAndDiaIDs = MakeMandatory<NMRSignal1D, '
1350
1213
 
1351
1214
  export declare type NMRSignal1DWithId = MakeMandatory<NMRSignal1D, 'id'>;
1352
1215
 
1353
- export declare interface NMRSignal2D<T extends Peak2D_2 = Peak2D_2> {
1216
+ export declare interface NMRSignal2D<T extends Peak2D = Peak2D> {
1354
1217
  x: Signal2DProjection;
1355
1218
  y: Signal2DProjection;
1356
1219
  j?: {
@@ -1361,7 +1224,7 @@ export declare interface NMRSignal2D<T extends Peak2D_2 = Peak2D_2> {
1361
1224
  kind?: string;
1362
1225
  }
1363
1226
 
1364
- export declare type NMRSignal2DWithID<T extends Peak2D_2 = Peak2D_2> = MakeMandatory<NMRSignal2D<T>, 'id'>;
1227
+ export declare type NMRSignal2DWithID<T extends Peak2D = Peak2D> = MakeMandatory<NMRSignal2D<T>, 'id'>;
1365
1228
 
1366
1229
  export declare type NMRSignal2DWithId = MakeMandatory<NMRSignal2D, 'id'>;
1367
1230
 
@@ -1385,21 +1248,15 @@ declare interface NMRZoneWithIds extends Omit<NMRZone, 'signals' | 'id'> {
1385
1248
  */
1386
1249
  export declare function normalizeNucleus(nucleus: string): string;
1387
1250
 
1388
- declare interface NumberField extends Field<number> {
1389
- type: 'number';
1251
+ declare interface NucleusType {
1252
+ atomicNumber: number;
1253
+ isotope: number;
1390
1254
  }
1391
1255
 
1392
1256
  declare type NumToNumFn = (x: number) => number;
1393
1257
 
1394
1258
  declare type NUSDimension2 = FilterFactory<Entry2D, IndirectDimensionOptions> & Pick<NUSDimension2Options, 'name'>;
1395
1259
 
1396
- declare interface NUSDimension2Options extends BaseFilter {
1397
- name: 'nusDimension2';
1398
- value: IndirectDimensionOptions;
1399
- }
1400
-
1401
- declare type ObjectKeys = 'id' | 'multiplicity' | 'js';
1402
-
1403
1260
  export declare interface ObservedNucleusData {
1404
1261
  /**
1405
1262
  * nucleus to use as reference in the calculation of frequency
@@ -1411,6 +1268,11 @@ export declare interface ObservedNucleusData {
1411
1268
  frequency: number;
1412
1269
  }
1413
1270
 
1271
+ export declare interface OneDimensionalAssignment {
1272
+ score: number;
1273
+ assignment: NMRRangeWithIntegration[];
1274
+ }
1275
+
1414
1276
  declare interface OneDOptions {
1415
1277
  proton: FromTo;
1416
1278
  carbon: FromTo;
@@ -1422,7 +1284,7 @@ export declare type OneLetterMultiplet = 's' | 'd' | 't' | 'q' | 'i' | 'h' | 'p'
1422
1284
 
1423
1285
  export declare function optimizeSignals(data: DataXY, signals: Signal[], options: OptimizeSignalsOptions): {
1424
1286
  delta: number;
1425
- js: Jcoupling_2[];
1287
+ js: Jcoupling[];
1426
1288
  shape: {
1427
1289
  kind: "gaussian" | "lorentzian" | "pseudoVoigt" | "generalizedLorentzian";
1428
1290
  fwhm: number;
@@ -1443,10 +1305,22 @@ export declare interface OptimizeSignalsOptions {
1443
1305
  baseline?: number;
1444
1306
  shape?: Shape1D;
1445
1307
  parameters?: ParametersFromOptions;
1446
- optimization?: any;
1308
+ optimization?: OptimizeSignalsOptionsOptimization;
1447
1309
  simulation: SignalsToPointXYOptions;
1448
1310
  }
1449
1311
 
1312
+ declare interface OptimizeSignalsOptionsDirectOptimization {
1313
+ kind: 'direct';
1314
+ options: Partial<Pick<DirectOptimizationOptions, DirectOptimizationOptionsDefaultsKeys>> & Omit<DirectOptimizationOptions, DirectOptimizationOptionsDefaultsKeys>;
1315
+ }
1316
+
1317
+ declare interface OptimizeSignalsOptionsLevenbergMarquardtOptimization {
1318
+ kind: 'lm';
1319
+ options: Partial<Pick<LevenbergMarquardtOptions, LevenbergMarquardtOptimizationOptionsDefaultsKeys>> & Omit<LevenbergMarquardtOptions, LevenbergMarquardtOptimizationOptionsDefaultsKeys>;
1320
+ }
1321
+
1322
+ export declare type OptimizeSignalsOptionsOptimization = OptimizeSignalsOptionsDirectOptimization | OptimizeSignalsOptionsLevenbergMarquardtOptimization;
1323
+
1450
1324
  export declare interface OptionsPeaksFilterImpurities {
1451
1325
  /**
1452
1326
  * Solvent name.
@@ -1605,31 +1479,27 @@ declare type ParametersFromSignal = Record<string, Record<string, number>>;
1605
1479
  export declare function parseCT(json: CTJSONInput, molfile: string, options: {
1606
1480
  logger?: LightLogger;
1607
1481
  atomicNumber?: number;
1608
- }): {
1482
+ }): ParseCTOutput;
1483
+
1484
+ export declare interface ParseCTOutput extends CTParserResult {
1609
1485
  signals: CTSignal[];
1610
- atomsMapping: Array<AtomMapping>;
1611
- atomsMappingLookup: Record<string, number>;
1612
- molfile: string;
1613
- id: string;
1614
- shifts: ParsedShift[];
1615
- couplings: ParsedCoupling[];
1616
- };
1486
+ }
1617
1487
 
1618
- export declare interface Peak1D extends Omit<NMRPeak1D, 'id'>, BasePeak {
1619
- originalX?: number;
1488
+ /**
1489
+ * Interface for coupling data between atoms
1490
+ */
1491
+ declare interface ParsedCoupling {
1492
+ from: Atom[];
1493
+ to: Atom[];
1494
+ value: number;
1620
1495
  }
1621
1496
 
1622
- export declare interface Peak2D extends BasePeak {
1623
- x: number;
1624
- y: number;
1625
- z: number;
1626
- originalX?: number;
1627
- originalY?: number;
1628
- originalZ?: number;
1629
- width?: number | {
1630
- x: number;
1631
- y: number;
1632
- };
1497
+ /**
1498
+ * Interface for chemical shift data
1499
+ */
1500
+ declare interface ParsedShift {
1501
+ atoms: Atom[];
1502
+ value: number;
1633
1503
  }
1634
1504
 
1635
1505
  export declare interface Peak2DSeries {
@@ -1638,11 +1508,6 @@ export declare interface Peak2DSeries {
1638
1508
  z: number[];
1639
1509
  }
1640
1510
 
1641
- export declare interface Peaks {
1642
- values: Peak1D[];
1643
- options: any;
1644
- }
1645
-
1646
1511
  /**
1647
1512
  * Filters impurities from a list of NMR peaks based on the specified options.
1648
1513
  * @template T - The type of NMR peaks.
@@ -1702,62 +1567,10 @@ export declare interface PeaksToXYOptions extends OptionsSG1D {
1702
1567
 
1703
1568
  export declare function peakToXY(peak: NMRPeak1D, options: PeaksToXYOptions): DataXY<Float64Array<ArrayBufferLike>>;
1704
1569
 
1705
- declare interface PhaseCorrection {
1706
- mode?: string;
1707
- ph0?: number;
1708
- ph1?: number;
1709
- }
1710
-
1711
1570
  declare type PhaseCorrection1D = FilterFactory<Entry1D, PhaseCorrection1DOptions> & Pick<PhaseCorrection1DFilterOptions, 'name'>;
1712
1571
 
1713
- declare interface PhaseCorrection1DFilterOptions extends BaseFilter {
1714
- name: 'phaseCorrection';
1715
- value: PhaseCorrection1DOptions;
1716
- }
1717
-
1718
- export declare interface PhaseCorrection1DOptions {
1719
- absolute?: boolean;
1720
- ph0?: number;
1721
- ph1?: number;
1722
- }
1723
-
1724
1572
  declare type PhaseCorrection2D = FilterFactory<Entry2D, PhaseCorrectionTwoDFilter> & Pick<PhaseCorrection2DOptions, 'name'>;
1725
1573
 
1726
- declare interface PhaseCorrection2DOptions extends BaseFilter {
1727
- name: 'phaseCorrectionTwoDimensions';
1728
- value: PhaseCorrectionTwoDFilter;
1729
- }
1730
-
1731
- declare interface PhaseCorrection_2 {
1732
- mode?: string;
1733
- ph0?: number;
1734
- ph1?: number;
1735
- }
1736
-
1737
- declare interface PhaseCorrectionHorizontalOptions {
1738
- ph0: number;
1739
- ph1: number;
1740
- }
1741
-
1742
- declare interface PhaseCorrectionTwoDFilter extends PhaseCorrectionTwoDOptions {
1743
- automatic?: AutoPhaseCorrection2D;
1744
- }
1745
-
1746
- export declare interface PhaseCorrectionTwoDOptions {
1747
- horizontal?: PhaseCorrectionHorizontalOptions;
1748
- vertical?: PhaseCorrectionVerticalOptions;
1749
- }
1750
-
1751
- declare type PhaseCorrectionVerticalOptions = PhaseCorrectionHorizontalOptions & {
1752
- quad?: 'imag' | 'real';
1753
- };
1754
-
1755
- export declare interface PolynomialOptions {
1756
- zones: BaselineCorrectionZone[];
1757
- algorithm: 'polynomial';
1758
- degree: number;
1759
- }
1760
-
1761
1574
  declare interface PopulationInput {
1762
1575
  id: ID;
1763
1576
  pid: ID;
@@ -1769,6 +1582,19 @@ declare interface PopulationInput {
1769
1582
  sf: number[];
1770
1583
  }
1771
1584
 
1585
+ declare interface PopulationOutput {
1586
+ id: ID;
1587
+ parentID: ID;
1588
+ name: string;
1589
+ remarks: string;
1590
+ population: {
1591
+ value: number;
1592
+ low: number;
1593
+ high: number;
1594
+ };
1595
+ spinSystemFlags: number[];
1596
+ }
1597
+
1772
1598
  /**
1773
1599
  * Generate the 2D correlation nmr peaks based on the number of bonds between a pair of atoms
1774
1600
  * @param molecule
@@ -2052,21 +1878,8 @@ declare interface PredictSpectraResult {
2052
1878
  }>;
2053
1879
  }
2054
1880
 
2055
- declare type Properties = ListField | SelectField | StringField | NumberField | BooleanField | LabelField;
2056
-
2057
1881
  export declare const protonImpurities: DatabaseNMREntry[];
2058
1882
 
2059
- declare interface Range_2 extends Omit<NMRRange, 'signals' | 'id'> {
2060
- id: string;
2061
- originalFrom?: number;
2062
- originalTo?: number;
2063
- absolute: number;
2064
- signals: Signal1D[];
2065
- integration: number;
2066
- nbAtoms?: number;
2067
- }
2068
- export { Range_2 as Range }
2069
-
2070
1883
  export declare function rangeFromSignal(signal: NMRSignal1D, options?: RangeFromSignalOptions): {
2071
1884
  from: number;
2072
1885
  to: number;
@@ -2091,11 +1904,6 @@ export declare interface RangeFromSignalOptions {
2091
1904
 
2092
1905
  declare type RangeFullfiled = MakeMandatory<NMRRange, 'integration' | 'signals' | 'id'>;
2093
1906
 
2094
- export declare interface Ranges {
2095
- values: Range_2[];
2096
- options: SumOptions;
2097
- }
2098
-
2099
1907
  export declare function rangesToACS(ranges: NMRRange[], options?: RangesToACSOptions): string;
2100
1908
 
2101
1909
  export declare interface RangesToACSOptions {
@@ -2232,51 +2040,19 @@ export declare interface ResurrectOptions {
2232
2040
  logger?: Logger;
2233
2041
  }
2234
2042
 
2235
- declare interface SelectField extends Field<any> {
2236
- type: 'select';
2237
- choices: any[];
2238
- }
2239
-
2240
2043
  declare function setNbAtoms(range: Range_2, signalIndex?: number): void;
2241
2044
 
2242
2045
  declare type Shape1DWithFWHM = Omit<Shape1D, 'fwhm'> & {
2243
2046
  fwhm: number;
2244
2047
  };
2245
2048
 
2246
- export declare interface Shapes {
2247
- exponential?: ShapesFactory<ExponentialOptions>;
2248
- sineBell?: ShapesFactory<SineBellOptions>;
2249
- sineSquare?: ShapesFactory<SineSquareOptions>;
2250
- traf?: ShapesFactory<TrafOptions>;
2251
- gaussian?: ShapesFactory<GaussianOptions>;
2252
- }
2253
-
2254
- declare interface ShapesFactory<Options> {
2255
- apply: boolean;
2256
- options: Options;
2257
- }
2258
-
2259
2049
  declare type Shift2DX = FilterFactory<Entry2D, Shift2DXOptions> & Pick<Shift2DXFilterOptions, 'name'>;
2260
2050
 
2261
- declare interface Shift2DXFilterOptions extends BaseFilter {
2262
- name: 'shift2DX';
2263
- value: Shift2DXOptions;
2264
- }
2265
-
2266
- declare interface Shift2DXOptions {
2267
- shift: number;
2268
- }
2051
+ declare type Shift2DXOptions = Shift2DXFilterOptions['value'];
2269
2052
 
2270
2053
  declare type Shift2DY = FilterFactory<Entry2D, Shift2DYOptions> & Pick<Shift2DYFilterOptions, 'name'>;
2271
2054
 
2272
- declare interface Shift2DYFilterOptions extends BaseFilter {
2273
- name: 'shift2DY';
2274
- value: Shift2DYOptions;
2275
- }
2276
-
2277
- declare interface Shift2DYOptions {
2278
- shift: number;
2279
- }
2055
+ declare type Shift2DYOptions = Shift2DYFilterOptions['value'];
2280
2056
 
2281
2057
  declare interface ShiftGroupEntry {
2282
2058
  id: string;
@@ -2310,45 +2086,30 @@ declare interface ShiftInput {
2310
2086
  sg: ID;
2311
2087
  }
2312
2088
 
2089
+ declare interface ShiftOutput {
2090
+ id: ID;
2091
+ parentID: ID;
2092
+ name: string;
2093
+ remarks: string;
2094
+ shiftGroup: ID;
2095
+ }
2096
+
2313
2097
  declare type ShiftTarget = 'origin' | 'current';
2314
2098
 
2315
2099
  declare type ShiftX = FilterFactory<Entry1D, ShiftXOptions> & Pick<ShiftXFilterOptions, 'name'>;
2316
2100
 
2317
- declare interface ShiftXFilterOptions extends BaseFilter {
2318
- name: 'shiftX';
2319
- value: ShiftXOptions;
2320
- }
2321
-
2322
- declare interface ShiftXOptions {
2323
- shift: number;
2324
- }
2325
-
2326
2101
  export declare interface Signal extends NMRSignal1D {
2327
2102
  intensity?: number;
2328
2103
  shape?: Shape1D;
2329
2104
  parameters?: ParametersFromSignal;
2330
2105
  }
2331
2106
 
2332
- export declare interface Signal1D extends Required<Pick<NMRSignal1D, ObjectKeys>>, Omit<NMRSignal1D, ObjectKeys> {
2333
- originalDelta?: number;
2334
- }
2335
-
2336
2107
  declare type Signal1DWidthDiaID = MakeMandatory<NMRSignal1D, 'diaIDs'>;
2337
2108
 
2338
2109
  declare type Signal1DWidthJsAndDiaID = Omit<Signal1DWidthDiaID, 'js'> & {
2339
2110
  js: JcouplingFromPrediction[];
2340
2111
  };
2341
2112
 
2342
- export declare interface Signal2D extends Signal_2 {
2343
- sign?: number;
2344
- x: SignalAxis;
2345
- y: SignalAxis;
2346
- peaks?: Peak2D[];
2347
- j?: {
2348
- pathLength?: number | FromTo;
2349
- };
2350
- }
2351
-
2352
2113
  export declare interface Signal2DProjection {
2353
2114
  nucleus?: string;
2354
2115
  delta: number;
@@ -2357,18 +2118,6 @@ export declare interface Signal2DProjection {
2357
2118
  diaIDs?: string[];
2358
2119
  }
2359
2120
 
2360
- declare interface Signal_2 {
2361
- id: string;
2362
- kind?: string;
2363
- }
2364
-
2365
- declare interface SignalAxis {
2366
- delta: number;
2367
- nbAtoms?: number;
2368
- diaIDs?: string[];
2369
- originalDelta: number;
2370
- }
2371
-
2372
2121
  /**
2373
2122
  * Join couplings smaller than a defined tolerance.
2374
2123
  * The resulting coupling should be an average of the existing one.
@@ -2413,12 +2162,7 @@ export declare function signalMultiplicityPattern(signal: NMRSignal1D, options?:
2413
2162
  acsFormat?: boolean;
2414
2163
  }): string;
2415
2164
 
2416
- declare type SignalProcessing = FilterFactory<Entry1D, MatrixOptions> & Pick<SignalProcessingFilter, 'name'>;
2417
-
2418
- declare interface SignalProcessingFilter extends BaseFilter {
2419
- name: 'signalProcessing';
2420
- value: MatrixOptions;
2421
- }
2165
+ declare type SignalProcessing = FilterFactory<Entry1D, MatrixOptions<FilterOptions>> & Pick<SignalProcessingFilter, 'name'>;
2422
2166
 
2423
2167
  export declare function signals2DToZ(signals: NMRSignal2D[], options?: Signals2DToZOptions): {
2424
2168
  minX: number;
@@ -2616,23 +2360,11 @@ declare interface SineBell<ShapeOption = SineBellOptions> {
2616
2360
  options: ShapeOption;
2617
2361
  }
2618
2362
 
2619
- declare interface SineBellOptions {
2620
- /**
2621
- * Specifies the starting point of the sine-bell in units of pi radians.
2622
- * Common values are 0.0 (for a sine window which starts height at 0.0) and
2623
- * 0.5 (for a cosine window, which starts at height 1.0).
2624
- * @default 0
2625
- */
2626
- offset: number;
2627
- }
2628
-
2629
2363
  declare interface SineSquare<ShapeOption = SineBellOptions> {
2630
2364
  kind: 'sineSquare';
2631
2365
  options: ShapeOption;
2632
2366
  }
2633
2367
 
2634
- declare type SineSquareOptions = Omit<SineBellOptions, 'exponent'>;
2635
-
2636
2368
  export declare type SolventImpurities = Record<string, Impurity>;
2637
2369
 
2638
2370
  export declare function solventSuppression<T extends NMRPeak1D>(peakList: T[], solvent: NMRSignal1D[], options?: {
@@ -2728,42 +2460,8 @@ export declare interface SplitSpinSystemOptions {
2728
2460
  maxClusterSize?: number;
2729
2461
  }
2730
2462
 
2731
- declare interface StringField extends Field<string> {
2732
- type: 'string';
2733
- }
2734
-
2735
- export declare interface SumOptions {
2736
- /**
2737
- * @default true
2738
- */
2739
- isSumConstant: boolean;
2740
- /**
2741
- * If you force the "sum" the mf should not be exists any more otherwise if mf is exists the "sum" must be null or undefined
2742
- * @default undefined
2743
- */
2744
- sum: number | undefined;
2745
- /**
2746
- * @default true
2747
- */
2748
- sumAuto: boolean;
2749
- /**
2750
- * mf will be set automatically for the first time based on the first molecules unless the user change it
2751
- * example 'C10H20O3'
2752
- */
2753
- mf?: string;
2754
- /**
2755
- * key of the selected molecule
2756
- */
2757
- moleculeId?: string;
2758
- }
2759
-
2760
2463
  declare type SymmetrizeCosyLike = FilterFactory<Entry2D, Record<string, never>> & Pick<SymmetrizeCosyLikeOptions, 'name'>;
2761
2464
 
2762
- declare interface SymmetrizeCosyLikeOptions extends BaseFilter {
2763
- name: 'symmetrizeCosyLike';
2764
- value: Record<string, never>;
2765
- }
2766
-
2767
2465
  declare class T1Regression extends BaseRegression {
2768
2466
  fullMagnetization: number;
2769
2467
  relaxationT1: number;
@@ -2778,13 +2476,6 @@ declare interface Traf<ShapeOption = TrafOptions> {
2778
2476
  options: ShapeOption;
2779
2477
  }
2780
2478
 
2781
- declare interface TrafOptions {
2782
- /**
2783
- * line broadening value in Hz, a negative value will invert the shape
2784
- */
2785
- lineBroadening: number;
2786
- }
2787
-
2788
2479
  /**
2789
2480
  * convert from pattern name to only one letter abbreviation or any supported abbreviation to pattern name.
2790
2481
  * @param name - pattern name or abbreviation.
@@ -2876,7 +2567,7 @@ declare function unlink(range: Range_2, options?: UnlinkOptions): Range_2;
2876
2567
  * @param data
2877
2568
  * @param options
2878
2569
  */
2879
- export declare function xyAutoRangesPicking(data: DataXY<Float64Array>, options: OptionsXYAutoRangesPicking): NMRRange_2[];
2570
+ export declare function xyAutoRangesPicking(data: DataXY<Float64Array>, options: OptionsXYAutoRangesPicking): NMRRange[];
2880
2571
 
2881
2572
  /**
2882
2573
  * Estimate the diffusion coefficient of an independent component by fitting of imput data with the Stejskal–Tanner equation.
@@ -2894,11 +2585,13 @@ declare function unlink(range: Range_2, options?: UnlinkOptions): Range_2;
2894
2585
  signalAbsenseDiffussion: number;
2895
2586
  };
2896
2587
 
2897
- export declare function xyCalculateT1(data: DataXY, options?: CalculateT1Options): {
2588
+ export declare function xyCalculateT1(data: DataXY, options?: CalculateT1Options): XYCalculateT1Return;
2589
+
2590
+ declare interface XYCalculateT1Return {
2898
2591
  relaxationT1: number;
2899
2592
  fullMagnetization: number;
2900
2593
  regression: T1Regression;
2901
- };
2594
+ }
2902
2595
 
2903
2596
  export declare function xyGetPivot(data: DataXY<Float64Array>, options?: {
2904
2597
  thresholdFactor?: number;
@@ -2937,7 +2630,7 @@ declare function unlink(range: Range_2, options?: UnlinkOptions): Range_2;
2937
2630
  */
2938
2631
  export declare function xyzAutoPhaseCorrection(data: NmrData2DFt, options?: AutoPhaseCorrection2D): Required<PhaseCorrectionTwoDOptions>;
2939
2632
 
2940
- export declare function xyzAutoSignalsPicking(spectraData: NmrData2DContent, options: XYZAutoSignalsPickingOptions): NMRSignal2DWithID<Peak2D_2 & {
2633
+ export declare function xyzAutoSignalsPicking(spectraData: NmrData2DContent, options: XYZAutoSignalsPickingOptions): NMRSignal2DWithID<Peak2D & {
2941
2634
  id: string;
2942
2635
  }>[];
2943
2636
 
@@ -3055,7 +2748,9 @@ declare function unlink(range: Range_2, options?: UnlinkOptions): Range_2;
3055
2748
  kernel?: GetKernelOptions;
3056
2749
  }
3057
2750
 
3058
- export declare function xyzJResAnalyzer(signals: NMRSignal2D[], options?: XYZJResAnalyzerOptions): any[];
2751
+ export declare function xyzJResAnalyzer(signals: NMRSignal2D[], options?: XYZJResAnalyzerOptions): NMRZoneWithID_2[] | (NMRSignal2D<Peak2D> & {
2752
+ id: string;
2753
+ })[];
3059
2754
 
3060
2755
  declare interface XYZJResAnalyzerOptions extends CompilePatternOptions {
3061
2756
  /**
@@ -3081,53 +2776,13 @@ declare function unlink(range: Range_2, options?: UnlinkOptions): Range_2;
3081
2776
 
3082
2777
  declare type ZeroFillingDimension1 = FilterFactory<Entry2D, ZeroFillingOptions> & Pick<ZeroFillingDimension1Options, 'name'>;
3083
2778
 
3084
- declare interface ZeroFillingDimension1Options extends BaseFilter {
3085
- name: 'zeroFillingDimension1';
3086
- value: ZeroFillingOptions;
3087
- }
3088
-
3089
2779
  declare type ZeroFillingDimension2 = FilterFactory<Entry2D, ZeroFillingOptions> & Pick<ZeroFillingDimension2Options, 'name'>;
3090
2780
 
3091
- declare interface ZeroFillingDimension2Options extends BaseFilter {
3092
- name: 'zeroFillingDimension2';
3093
- value: ZeroFillingOptions;
3094
- }
3095
-
3096
- declare interface ZeroFillingFilterOptions extends BaseFilter {
3097
- name: 'zeroFilling';
3098
- value: ZeroFillingOptions;
3099
- }
3100
-
3101
- export declare interface ZeroFillingOptions {
3102
- nbPoints: number;
3103
- }
3104
-
3105
- export declare interface Zone {
3106
- id: string;
3107
- x: ZoneAxis;
3108
- y: ZoneAxis;
3109
- signals: Signal2D[];
3110
- kind?: string;
3111
- assignment?: string;
3112
- }
3113
-
3114
2781
  export declare interface Zone2DError {
3115
2782
  x: number;
3116
2783
  y: number;
3117
2784
  }
3118
2785
 
3119
- declare interface ZoneAxis extends FromTo {
3120
- nbAtoms?: number;
3121
- diaIDs?: string[];
3122
- originalFrom?: number;
3123
- originalTo?: number;
3124
- }
3125
-
3126
- export declare interface Zones {
3127
- values: Zone[];
3128
- options?: any;
3129
- }
3130
-
3131
2786
 
3132
2787
  export * from "gyromagnetic-ratio";
3133
2788