@neilberkman/sidereon 0.9.1 → 0.10.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.
@@ -233,6 +233,19 @@ export class AtmosphereDensity {
233
233
  readonly temperatureK: number;
234
234
  }
235
235
 
236
+ export class BiasSet {
237
+ private constructor();
238
+ free(): void;
239
+ [Symbol.dispose](): void;
240
+ codeBiasModelM(sat: string, used_obs1: string, used_obs2: string, freq1_hz: number, freq2_hz: number, glonass_channel: number | null | undefined, clock_ref_obs1: string, clock_ref_obs2: string, epoch_j2000_s: number, time_scale?: string | null): number | undefined;
241
+ codeDsbSeconds(sat: string, obs1: string, obs2: string, epoch_j2000_s: number, time_scale?: string | null): number | undefined;
242
+ codeOsbSeconds(sat: string, obs: string, epoch_j2000_s: number, time_scale?: string | null): number | undefined;
243
+ phaseOsbCycles(sat: string, obs: string, epoch_j2000_s: number, time_scale?: string | null): number | undefined;
244
+ readonly recordCount: number;
245
+ readonly records: any;
246
+ readonly skippedRecords: number;
247
+ }
248
+
236
249
  /**
237
250
  * A parsed broadcast ephemeris store from a RINEX NAV file. `records` are the
238
251
  * usable GPS/Galileo/BeiDou records selected by the core default SPP policy.
@@ -1299,6 +1312,27 @@ export class DopplerShift {
1299
1312
  readonly rangeRateKmS: number;
1300
1313
  }
1301
1314
 
1315
+ export class DragForce {
1316
+ private constructor();
1317
+ free(): void;
1318
+ [Symbol.dispose](): void;
1319
+ acceleration(epoch_s: number, position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
1320
+ static fromAreaMass(cd: number, area_m2: number, mass_kg: number, space_weather: SpaceWeather, cutoff_altitude_km?: number | null): DragForce;
1321
+ static fromBallisticCoefficient(bc_kg_m2: number, space_weather: SpaceWeather, cutoff_altitude_km?: number | null): DragForce;
1322
+ static fromBcFactor(bc_factor_m2_kg: number, space_weather: SpaceWeather, cutoff_altitude_km?: number | null): DragForce;
1323
+ readonly bcFactorM2Kg: number;
1324
+ readonly cutoffAltitudeKm: number;
1325
+ readonly spaceWeather: SpaceWeather;
1326
+ }
1327
+
1328
+ export class DtedTerrain {
1329
+ free(): void;
1330
+ [Symbol.dispose](): void;
1331
+ heightM(longitude_deg: number, latitude_deg: number): number;
1332
+ heightMWithOptions(longitude_deg: number, latitude_deg: number, options: any): number;
1333
+ constructor(root: string);
1334
+ }
1335
+
1302
1336
  /**
1303
1337
  * Orthonormal encounter frame built from two relative states.
1304
1338
  */
@@ -3663,6 +3697,29 @@ export class PppFloatSolution {
3663
3697
  readonly ztdResidualM: number | undefined;
3664
3698
  }
3665
3699
 
3700
+ /**
3701
+ * A precise-ephemeris source built from samples rather than parsed SP3 text.
3702
+ *
3703
+ * Implements the same `ObservableEphemerisSource` contract as a parsed [`Sp3`]
3704
+ * product and shares its interpolation substrate, so [`predictRanges`] accepts
3705
+ * either handle. Build one with [`preciseEphemerisSamplesFromSamples`].
3706
+ */
3707
+ export class PreciseEphemerisSampleSource {
3708
+ private constructor();
3709
+ free(): void;
3710
+ [Symbol.dispose](): void;
3711
+ /**
3712
+ * Predict geometric ranges for many requests in one call. See the shared
3713
+ * [`predictRanges`](crate::precise_samples::predict_ranges_over) contract;
3714
+ * this is the sample-source entry point.
3715
+ */
3716
+ predictRanges(requests: any, options: any): any;
3717
+ /**
3718
+ * The satellites this source can interpolate (e.g. `"G01"`), ascending.
3719
+ */
3720
+ readonly satellites: string[];
3721
+ }
3722
+
3666
3723
  /**
3667
3724
  * The per-request results of a batch observable prediction, index-aligned to
3668
3725
  * the input requests. Each request independently either produced observables or
@@ -3955,6 +4012,11 @@ export class ReducedOrbitState {
3955
4012
  readonly velocityMS: Float64Array;
3956
4013
  }
3957
4014
 
4015
+ export enum RetrogradeFactor {
4016
+ Prograde = 0,
4017
+ Retrograde = 1,
4018
+ }
4019
+
3958
4020
  /**
3959
4021
  * A parsed RINEX clock product with satellite clock-bias interpolation.
3960
4022
  */
@@ -4145,6 +4207,15 @@ export class SatelliteVector {
4145
4207
  readonly values: Float64Array;
4146
4208
  }
4147
4209
 
4210
+ export class SbasCorrectionStore {
4211
+ free(): void;
4212
+ [Symbol.dispose](): void;
4213
+ ingest(bytes: Uint8Array, form: string | null | undefined, geo: string, week: number, tow_s: number, time_scale?: string | null): void;
4214
+ ionoSlantDelayM(geo: string, receiver_lat_rad: number, receiver_lon_rad: number, receiver_height_m: number, elevation_rad: number, azimuth_rad: number, frequency_hz: number): number | undefined;
4215
+ constructor();
4216
+ readyGeos(t_j2000_s: number): string[];
4217
+ }
4218
+
4148
4219
  /**
4149
4220
  * Per-constellation single-frequency pseudorange code-selection policy. Build
4150
4221
  * with `new SignalPolicy()` then chain `.withSystem(system, codes)`, or use
@@ -4324,6 +4395,16 @@ export class Sp3 {
4324
4395
  * coverage gap (the engine refuses to extrapolate).
4325
4396
  */
4326
4397
  interpolate(satellite: string, j2000_seconds: Float64Array): Sp3Interpolation;
4398
+ /**
4399
+ * Predict geometric ranges for many `(satellite, receiver, epoch)` requests
4400
+ * against this ephemeris in one call. `requests` is an array of
4401
+ * `{ sat, receiverEcefM, tRxJ2000S }`; returns an array of
4402
+ * `{ geometricRangeM, satClockS, transmitTimeJ2000S, satPosEcefM }`
4403
+ * index-aligned to `requests`. The same call shape works on a
4404
+ * `PreciseEphemerisSampleSource`. Delegates to the serial reference kernel
4405
+ * `sidereon_core::observables::predict_ranges`.
4406
+ */
4407
+ predictRanges(requests: any, options: any): any;
4327
4408
  /**
4328
4409
  * Run single-point positioning against this ephemeris.
4329
4410
  *
@@ -4341,6 +4422,13 @@ export class Sp3 {
4341
4422
  * or failed. Delegates to the serial reference batch kernel.
4342
4423
  */
4343
4424
  solveSppBatch(epochs: any, options: any): SppBatchSolution;
4425
+ /**
4426
+ * Run the core robust-reweighted SPP driver under the RAIM/FDE exclusion loop.
4427
+ *
4428
+ * `request` is the FDE request with a `robust` object. The implementation
4429
+ * delegates to `sidereon_core::quality::spp_robust_fde_driver`.
4430
+ */
4431
+ sppRobustFdeDriver(request: any): FdeSolution;
4344
4432
  /**
4345
4433
  * The exact parsed state of `satellite` at record `epochIndex` (no
4346
4434
  * interpolation). Throws a `RangeError` past the last epoch and a
@@ -4483,7 +4571,7 @@ export class Sp3MergeReport {
4483
4571
  [Symbol.dispose](): void;
4484
4572
  /**
4485
4573
  * Per-(epoch, satellite) agreement statistics for every accepted cell, in
4486
- * output (epoch, then satellite) order one entry per cell written to the
4574
+ * output (epoch, then satellite) order, one entry per cell written to the
4487
4575
  * merged product.
4488
4576
  */
4489
4577
  readonly agreement: Sp3AgreementMetric[];
@@ -4586,6 +4674,15 @@ export class Sp3State {
4586
4674
  readonly velocityMS: Float64Array | undefined;
4587
4675
  }
4588
4676
 
4677
+ export class SpaceWeather {
4678
+ free(): void;
4679
+ [Symbol.dispose](): void;
4680
+ constructor(f107?: number | null, f107a?: number | null, ap?: number | null);
4681
+ readonly ap: number;
4682
+ readonly f107: number;
4683
+ readonly f107a: number;
4684
+ }
4685
+
4589
4686
  /**
4590
4687
  * Canonical quiet-Sun space-weather indices for NRLMSISE-00, mirrored from the
4591
4688
  * core so a JS caller can pass moderate-activity defaults to [`atmosphereDensity`]
@@ -4814,6 +4911,16 @@ export class SppSolution {
4814
4911
  readonly zM: number;
4815
4912
  }
4816
4913
 
4914
+ export class SsrCorrectionStore {
4915
+ free(): void;
4916
+ [Symbol.dispose](): void;
4917
+ clock(sat: string): any;
4918
+ ingest(bytes: Uint8Array, framed: boolean | null | undefined, week: number, tow_s: number, time_scale?: string | null): void;
4919
+ constructor();
4920
+ orbit(sat: string): any;
4921
+ uraIndex(sat: string): number | undefined;
4922
+ }
4923
+
4817
4924
  /**
4818
4925
  * A batch of Sun and Moon positions, one per epoch: flat row-major `sun` and
4819
4926
  * `moon` `Float64Array`s of length `3 * epochCount`, in **metres**.
@@ -5210,6 +5317,16 @@ export class ZenithDelay {
5210
5317
  */
5211
5318
  export function acquire(samples: Float64Array, prn: bigint, options: any): AcquisitionResult;
5212
5319
 
5320
+ /**
5321
+ * On-sky angle in degrees between two direction vectors.
5322
+ */
5323
+ export function angularSeparation(a: Float64Array, b: Float64Array): number;
5324
+
5325
+ /**
5326
+ * On-sky angle in degrees between two `(lonDeg, latDeg)` direction pairs.
5327
+ */
5328
+ export function angularSeparationCoords(a_lon_deg: number, a_lat_deg: number, b_lon_deg: number, b_lat_deg: number): number;
5329
+
5213
5330
  /**
5214
5331
  * Evaluate NRLMSISE-00 neutral-atmosphere density and temperature.
5215
5332
  *
@@ -5229,6 +5346,16 @@ export function atmosphereDensity(lat_deg: number, lon_deg: number, alt_km: numb
5229
5346
  */
5230
5347
  export function atmosphereSpaceWeatherDefaults(): SpaceWeatherDefaults;
5231
5348
 
5349
+ /**
5350
+ * Solar beta angle in degrees from orbit normal and Sun vectors.
5351
+ */
5352
+ export function betaAngle(orbit_normal: Float64Array, sun: Float64Array): number;
5353
+
5354
+ /**
5355
+ * Solar beta angle in degrees from an inertial state and Sun vector.
5356
+ */
5357
+ export function betaAngleFromState(r: Float64Array, v: Float64Array, sun: Float64Array): number;
5358
+
5232
5359
  /**
5233
5360
  * Resolve integer ambiguities with a bounded lattice search.
5234
5361
  *
@@ -5279,6 +5406,10 @@ export function civilToJ2000Seconds(year: number, month: number, day: number, ho
5279
5406
  */
5280
5407
  export function cn0(eirp_dbw: number, fspl_db: number, receiver_gt_dbk: number, other_losses_db?: number | null): number;
5281
5408
 
5409
+ export function coe2eq(coe: any, factor?: RetrogradeFactor | null): any;
5410
+
5411
+ export function coe2mee(coe: any, factor?: RetrogradeFactor | null): any;
5412
+
5282
5413
  /**
5283
5414
  * Convert classical orbital elements to an inertial Cartesian state.
5284
5415
  *
@@ -5348,6 +5479,10 @@ export function covarianceIsSymmetric(covariance_km2: Float64Array): boolean;
5348
5479
  */
5349
5480
  export function coverageLookAngles(satellites: Tle[], stations: GroundStation[], epoch_unix_us: bigint): CoverageGrid;
5350
5481
 
5482
+ export function cwPropagate(rel: any, n_rad_s: number, dt_s: number): any;
5483
+
5484
+ export function cwStm(n_rad_s: number, dt_s: number): Float64Array;
5485
+
5351
5486
  /**
5352
5487
  * Decode Compact RINEX (Hatanaka) bytes into plain RINEX OBS text. Throws a
5353
5488
  * `TypeError` on non-UTF-8 input and an `Error` on a decode failure.
@@ -5391,6 +5526,10 @@ export function decodeRtcmFrame(bytes: Uint8Array): any;
5391
5526
  */
5392
5527
  export function decodeRtcmMessage(body: Uint8Array): any;
5393
5528
 
5529
+ export function decodeSbasMessage(bytes: Uint8Array, form?: string | null): any;
5530
+
5531
+ export function decodeSsr(bytes: Uint8Array, framed?: boolean | null): any;
5532
+
5394
5533
  /**
5395
5534
  * Standard dual-frequency ionosphere-free carrier pair for a constellation.
5396
5535
  */
@@ -5475,6 +5614,10 @@ export function dopplerToRangeRate(doppler_hz: number, carrier_hz: number): numb
5475
5614
  */
5476
5615
  export function earthAngularRadius(satellite_position_km: Float64Array): Float64Array;
5477
5616
 
5617
+ export function eccentricToMean(eccentric_anomaly_rad: number, eccentricity: number): number;
5618
+
5619
+ export function eccentricToTrue(eccentric_anomaly_rad: number, eccentricity: number): number;
5620
+
5478
5621
  /**
5479
5622
  * Convert a batch of ITRS (ECEF) positions to geodetic coordinates.
5480
5623
  *
@@ -5578,6 +5721,10 @@ export function encounterFrame(position1_km: Float64Array, velocity1_km_s: Float
5578
5721
  */
5579
5722
  export function encounterPlaneCovariance(frame: EncounterFrame, covariance_km2: Float64Array): Float64Array;
5580
5723
 
5724
+ export function eq2coe(eq: any): any;
5725
+
5726
+ export function eq2rv(eq: any, mu_km3_s2: number): any;
5727
+
5581
5728
  /**
5582
5729
  * Confidence ellipse from an arbitrary 2x2 covariance block.
5583
5730
  *
@@ -5589,6 +5736,8 @@ export function encounterPlaneCovariance(frame: EncounterFrame, covariance_km2:
5589
5736
  */
5590
5737
  export function errorEllipse2(covariance: Float64Array, confidence: number): ErrorEllipse2;
5591
5738
 
5739
+ export function estimateDecay(drag: DragForce, request: any): any;
5740
+
5592
5741
  /**
5593
5742
  * Find Moon elevation threshold crossings (moonrise / moonset) over a UTC
5594
5743
  * window.
@@ -5737,7 +5886,7 @@ export function fromCelestrakJson(json: string, system?: string | null): any;
5737
5886
  * skipping (rather than throwing on) entries that do not resolve.
5738
5887
  *
5739
5888
  * The lenient sibling of [`fromCelestrakJson`]: feed it a raw combined CelesTrak
5740
- * `gnss` feed and it returns `{ records, skipped }` `records` is the `Record[]`
5889
+ * `gnss` feed and it returns `{ records, skipped }`. `records` is the `Record[]`
5741
5890
  * for `system` (the same shape `fromCelestrakJson` returns, sorted by
5742
5891
  * `(system, prn)`), and `skipped` is a `SkippedOmm[]` of the entries whose
5743
5892
  * `OBJECT_NAME` did not resolve to a PRN for `system` (another constellation's
@@ -5861,7 +6010,7 @@ export function gnssPasses(sp3: Sp3, station_ecef_m: Float64Array, start_j2000_s
5861
6010
  export function gnssSp3Id(system: string, prn: number): string;
5862
6011
 
5863
6012
  /**
5864
- * Stable lower-case display label for a constellation, e.g. `"gps"`.
6013
+ * Canonical core display label for a constellation, e.g. `"GPS"`.
5865
6014
  */
5866
6015
  export function gnssSystemLabel(system: GnssSystem): string;
5867
6016
 
@@ -6016,7 +6165,7 @@ export function kurtosis(x: Float64Array, fisher?: boolean | null, bias?: boolea
6016
6165
  * `covariance` is its `n x n` covariance as a row-major `number[][]`, and
6017
6166
  * `ratioThreshold` is the ratio-test acceptance threshold (RTKLIB's default is
6018
6167
  * `3.0`). Finds the true integer-least-squares optimum and runner-up for any
6019
- * positive-definite covariance no search box, no combinatorial blow-up.
6168
+ * positive-definite covariance. No search box, no combinatorial blow-up.
6020
6169
  * Returns an `IlsResult`. Throws a `TypeError` on a malformed shape, a
6021
6170
  * `RangeError` on a non-finite or out-of-domain input, and an `Error` on a
6022
6171
  * singular covariance or a non-converging search.
@@ -6139,6 +6288,14 @@ export function lnavTow(bits: Uint8Array): bigint | undefined;
6139
6288
  */
6140
6289
  export function loadAntex(bytes: Uint8Array): Antex;
6141
6290
 
6291
+ export function loadBiasSinex(bytes: Uint8Array): BiasSet;
6292
+
6293
+ export function loadBiasSinexLossy(bytes: Uint8Array): BiasSet;
6294
+
6295
+ export function loadCodeDcb(bytes: Uint8Array, options: any): BiasSet;
6296
+
6297
+ export function loadCodeDcbLossy(bytes: Uint8Array, options: any): BiasSet;
6298
+
6142
6299
  /**
6143
6300
  * Alias of [`decodeCrinex`] for callers that read a file as bytes.
6144
6301
  */
@@ -6176,6 +6333,24 @@ export function loadRinexObs(bytes: Uint8Array): RinexObs;
6176
6333
  */
6177
6334
  export function loadSp3(bytes: Uint8Array): Sp3;
6178
6335
 
6336
+ export function lunarSolarEclipses(start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6337
+
6338
+ export function lunarSolarEclipsesSpk(spk: Spk, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6339
+
6340
+ export function lvlhRotation(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
6341
+
6342
+ export function meanMotionCircular(radius_km: number): number;
6343
+
6344
+ export function meanMotionFromState(position_km: Float64Array, velocity_km_s: Float64Array): number;
6345
+
6346
+ export function meanToEccentric(mean_anomaly_rad: number, eccentricity: number): number;
6347
+
6348
+ export function meanToTrue(mean_anomaly_rad: number, eccentricity: number): number;
6349
+
6350
+ export function mee2coe(mee: any): any;
6351
+
6352
+ export function mee2rv(mee: any, mu_km3_s2: number): any;
6353
+
6179
6354
  /**
6180
6355
  * Melbourne-Wubbena combination, metres.
6181
6356
  */
@@ -6202,6 +6377,10 @@ export function mergeNavcen(records: any, statuses: any): any;
6202
6377
  */
6203
6378
  export function mergeSp3(sources: Sp3[], options: any): Sp3MergeResult;
6204
6379
 
6380
+ export function meridianTransits(body: string, station: any, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6381
+
6382
+ export function meridianTransitsSpk(spk: Spk, body: string, station: any, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6383
+
6205
6384
  /**
6206
6385
  * Mean, variance, skewness, and excess kurtosis of a residual set in one pass.
6207
6386
  *
@@ -6243,6 +6422,10 @@ export function moonElevationDeg(latitude_deg: number, longitude_deg: number, al
6243
6422
  */
6244
6423
  export function moonIllumination(latitude_deg: number, longitude_deg: number, altitude_km: number, epoch_unix_us: bigint): any;
6245
6424
 
6425
+ export function moonPhases(start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6426
+
6427
+ export function moonPhasesSpk(spk: Spk, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6428
+
6246
6429
  /**
6247
6430
  * Narrow-lane code combination, metres.
6248
6431
  */
@@ -6318,6 +6501,21 @@ export function observablesSp3(sp3: Sp3, satellite: string, receiver_ecef_m: Flo
6318
6501
  */
6319
6502
  export function observationKindLabel(kind: ObservationKind): string;
6320
6503
 
6504
+ /**
6505
+ * Observe `"sun"` or `"moon"` from a geodetic station at a UTC unix microsecond epoch.
6506
+ */
6507
+ export function observe(station: any, epoch_unix_us: bigint, target: string, options: any): any;
6508
+
6509
+ /**
6510
+ * Observe a caller-supplied SSB-centered target state using an SPK for Earth and Sun.
6511
+ */
6512
+ export function observeBarycentricState(station: any, epoch_unix_us: bigint, spk: Spk, position_km: Float64Array, velocity_km_s: Float64Array, options: any): any;
6513
+
6514
+ /**
6515
+ * Observe an SPK target body by NAIF id using default full-chain options.
6516
+ */
6517
+ export function observeSpkBody(station: any, epoch_unix_us: bigint, spk: Spk, naif_id: number): any;
6518
+
6321
6519
  /**
6322
6520
  * Ocean tide loading displacement of an ITRF station, metres (ECEF).
6323
6521
  *
@@ -6468,6 +6666,13 @@ export function phaseAngle(satellite_position_km: Float64Array, sun_position_km:
6468
6666
  */
6469
6667
  export function phaseMeters(phi_cycles: number, f_hz: number): number;
6470
6668
 
6669
+ export function planetaryEvents(spk: Spk, planet: string, kind: string, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6670
+
6671
+ /**
6672
+ * Position angle in degrees from North through East.
6673
+ */
6674
+ export function positionAngle(from_lon_deg: number, from_lat_deg: number, to_lon_deg: number, to_lat_deg: number): number;
6675
+
6471
6676
  /**
6472
6677
  * Precompute static PPP correction tables for a precise-orbit arc.
6473
6678
  *
@@ -6483,6 +6688,21 @@ export function phaseMeters(phi_cycles: number, f_hz: number): number;
6483
6688
  */
6484
6689
  export function pppCorrections(sp3: Sp3, epochs: any, receiver_ecef_m: Float64Array, options: any): any;
6485
6690
 
6691
+ export function pppCorrectionsWithCodeBias(sp3: Sp3, epochs: any, receiver_ecef_m: Float64Array, options: any, bias_set: BiasSet, code_bias: any): any;
6692
+
6693
+ /**
6694
+ * Build a sample-backed precise-ephemeris source from an array of samples.
6695
+ *
6696
+ * `samples` is an array of `{ sat, epoch, positionEcefM, clockS?, clockEvent? }`
6697
+ * objects (see the sample field docs). Samples are grouped by satellite in their
6698
+ * supplied order; each satellite needs at least two strictly time-increasing
6699
+ * samples. Throws a `TypeError` for a malformed object or bad satellite token
6700
+ * and a `RangeError` for a non-finite epoch or a source validation failure
6701
+ * (empty input, a single-sample satellite, non-monotonic epochs, a non-finite
6702
+ * sample). Delegates to `sidereon_core::sp3::PreciseEphemerisSamples::from_samples`.
6703
+ */
6704
+ export function preciseEphemerisSamplesFromSamples(samples: any): PreciseEphemerisSampleSource;
6705
+
6486
6706
  /**
6487
6707
  * Predict observables for many `(satellite, receiver, epoch)` requests from a
6488
6708
  * broadcast ephemeris store, serially. See [`predictBatchSp3`] for the argument
@@ -6535,6 +6755,8 @@ export function prepareIonosphereFreeRtkArc(epochs: any, wide_lane_cycles: any,
6535
6755
  */
6536
6756
  export function propagateBatch(satellites: Tle[], epochs_unix_us: BigInt64Array): FleetPropagation;
6537
6757
 
6758
+ export function propagateKepler(coe: any, mu_km3_s2: number, dt_s: number): any;
6759
+
6538
6760
  /**
6539
6761
  * Numerically propagate an ECI Cartesian state and sample it at a grid of
6540
6762
  * epochs.
@@ -6575,11 +6797,15 @@ export function raimFdeDesign(rows: any, options: any): any;
6575
6797
  */
6576
6798
  export function rangeRateToDoppler(range_rate_m_s: number, carrier_hz: number): number;
6577
6799
 
6800
+ export function relativeState(chief: any, deputy: any): any;
6801
+
6578
6802
  /**
6579
6803
  * Build a sampled GPS C/A code replica, an `Int8Array`.
6580
6804
  */
6581
6805
  export function replica(prn: bigint, options: any): Int8Array;
6582
6806
 
6807
+ export function ricRotation(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
6808
+
6583
6809
  /**
6584
6810
  * RINEX observation band frequency in hertz for a system and band digit.
6585
6811
  */
@@ -6590,6 +6816,8 @@ export function rinexBandFrequencyHz(system: GnssSystem, band: string, glonass_c
6590
6816
  */
6591
6817
  export function rinexBandWavelengthM(system: GnssSystem, band: string, glonass_channel?: number | null): number | undefined;
6592
6818
 
6819
+ export function rswRotation(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
6820
+
6593
6821
  /**
6594
6822
  * Read the 12-bit RTCM message number from a message body.
6595
6823
  *
@@ -6598,6 +6826,8 @@ export function rinexBandWavelengthM(system: GnssSystem, band: string, glonass_c
6598
6826
  */
6599
6827
  export function rtcmMessageNumber(body: Uint8Array): number;
6600
6828
 
6829
+ export function rtnRotation(position_km: Float64Array, velocity_km_s: Float64Array): Float64Array;
6830
+
6601
6831
  /**
6602
6832
  * Transform a 3x3 RTN covariance (flat row-major length 9) to ECI for the given
6603
6833
  * orbit state. Returns a flat row-major length-9 `Float64Array`.
@@ -6616,6 +6846,14 @@ export function rtnToEciCovariance(covariance_rtn: Float64Array, position_km: Fl
6616
6846
  */
6617
6847
  export function rv2coe(r: Float64Array, v: Float64Array, mu: number): any;
6618
6848
 
6849
+ export function rv2eq(r: Float64Array, v: Float64Array, mu_km3_s2: number, factor?: RetrogradeFactor | null): any;
6850
+
6851
+ export function rv2mee(r: Float64Array, v: Float64Array, mu_km3_s2: number, factor?: RetrogradeFactor | null): any;
6852
+
6853
+ export function sampleBroadcastEphemeris(broadcast: BroadcastEphemeris, satellites: string[], start_j2000_s: number, stop_j2000_s: number, step_s: number): any;
6854
+
6855
+ export function sampleSp3Ephemeris(sp3: Sp3, satellites: string[], start_j2000_s: number, stop_j2000_s: number, step_s: number): any;
6856
+
6619
6857
  /**
6620
6858
  * Apparent visual magnitude of a sunlit body from a diffuse-sphere phase law.
6621
6859
  *
@@ -6627,6 +6865,8 @@ export function rv2coe(r: Float64Array, v: Float64Array, mu: number): any;
6627
6865
  */
6628
6866
  export function satelliteVisualMagnitude(range_km: number, phase_angle_deg: number, standard_magnitude: number, reference_range_km: number): number;
6629
6867
 
6868
+ export function sbasCorrectedState(broadcast: BroadcastEphemeris, store: SbasCorrectionStore, geo: string, sat: string, t_j2000_s: number, mode?: string | null): any;
6869
+
6630
6870
  /**
6631
6871
  * Screen a primary satellite against a secondary TLE catalog for threshold TCAs.
6632
6872
  *
@@ -6648,6 +6888,10 @@ export function screenTcaCandidates(primary_line1: string, primary_line2: string
6648
6888
  */
6649
6889
  export function screenTcaConjunctions(primary_line1: string, primary_line2: string, secondaries: any, window_start_unix_micros: bigint, window_end_unix_micros: bigint, miss_distance_threshold_km: number, pc_options: any, options: any): any;
6650
6890
 
6891
+ export function seasons(start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6892
+
6893
+ export function seasonsSpk(spk: Spk, start_unix_us: bigint, end_unix_us: bigint, step_s: number, tolerance_s: number): any;
6894
+
6651
6895
  /**
6652
6896
  * Select an IONEX product usable at `requestedEpochJ2000S`, degrading to a
6653
6897
  * diurnal-shifted prior product within `policy`.
@@ -6750,6 +6994,8 @@ export function solidEarthPoleTide(station_ecef_m: Float64Array, year: number, m
6750
6994
  */
6751
6995
  export function solidEarthTide(station_ecef_m: Float64Array, year: number, month: number, day: number, fractional_hour: number, sun_ecef_m: Float64Array, moon_ecef_m: Float64Array): Float64Array;
6752
6996
 
6997
+ export function solveKepler(mean_anomaly_rad: number, eccentricity: number): any;
6998
+
6753
6999
  /**
6754
7000
  * Solve a sequence of moving-baseline RTK epochs.
6755
7001
  *
@@ -6835,6 +7081,8 @@ export function solveRtkFixed(config: any): RtkFixedSolution;
6835
7081
  */
6836
7082
  export function solveRtkFloat(config: any): RtkFloatSolution;
6837
7083
 
7084
+ export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectionStore, geo: string, request: any, mode?: string | null): SppSolution;
7085
+
6838
7086
  /**
6839
7087
  * Solve a static RTK arc with one batch float solution and one validated fixed
6840
7088
  * solution over the whole arc.
@@ -6872,11 +7120,27 @@ export function solveVelocityBroadcast(broadcast: BroadcastEphemeris, observatio
6872
7120
  */
6873
7121
  export function solveWithFallback(precise: Sp3[], broadcast: BroadcastEphemeris, request: any, policy: any): SourcedSolution;
6874
7122
 
7123
+ /**
7124
+ * Extract a parsed SP3 product as the canonical precise-ephemeris samples, one
7125
+ * per real position record in ascending epoch order.
7126
+ *
7127
+ * Returns an array of `{ sat, epoch, positionEcefM, clockS, clockEvent }`
7128
+ * objects. Round-tripping the result back through
7129
+ * [`preciseEphemerisSamplesFromSamples`] rebuilds an interpolatable source that
7130
+ * reproduces the SP3-parsed source's interpolated states and predicted ranges
7131
+ * to the documented round-trip precision (byte-identical for samples whose
7132
+ * meters are the faithful image of the fit nodes; see the core module docs).
7133
+ * Delegates to `sidereon_core::sp3::Sp3::precise_ephemeris_samples`.
7134
+ */
7135
+ export function sp3PreciseEphemerisSamples(sp3: Sp3): any;
7136
+
6875
7137
  /**
6876
7138
  * Continuous seconds since J2000 for a split Julian date.
6877
7139
  */
6878
7140
  export function splitJdToJ2000Seconds(jd_whole: number, jd_fraction: number): number;
6879
7141
 
7142
+ export function ssrCorrectedState(broadcast: BroadcastEphemeris, store: SsrCorrectionStore, sat: string, t_j2000_s: number, fallback_to_broadcast?: boolean | null, allow_regional_provider?: number | null): any;
7143
+
6880
7144
  /**
6881
7145
  * Sub-observer point (planetary central meridian) on a rotating body.
6882
7146
  *
@@ -7026,6 +7290,10 @@ export function tropoSlantDelay(elevation_deg: number, lat_deg: number, lon_deg:
7026
7290
  */
7027
7291
  export function tropoZenithDelay(lat_deg: number, height_m: number, met: any): ZenithDelay;
7028
7292
 
7293
+ export function trueToEccentric(true_anomaly_rad: number, eccentricity: number): number;
7294
+
7295
+ export function trueToMean(true_anomaly_rad: number, eccentricity: number): number;
7296
+
7029
7297
  /**
7030
7298
  * Provenance and coverage of the embedded UT1-UTC / delta-T (EOP) table.
7031
7299
  */