@neilberkman/sidereon 0.16.1 → 0.17.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.
@@ -1687,6 +1687,76 @@ export class EllipsoidalHeightM {
1687
1687
  readonly valueM: number;
1688
1688
  }
1689
1689
 
1690
+ /**
1691
+ * Contiguous state and media-correction arrays from one emission batch.
1692
+ */
1693
+ export class EmissionMediaBatch {
1694
+ private constructor();
1695
+ free(): void;
1696
+ [Symbol.dispose](): void;
1697
+ /**
1698
+ * Error message for row `index`, or `undefined` when the row has no error.
1699
+ */
1700
+ error(index: number): string | undefined;
1701
+ /**
1702
+ * Satellite clock offsets in seconds, with `NaN` for unavailable rows.
1703
+ */
1704
+ readonly clockS: Float64Array;
1705
+ /**
1706
+ * Number of satellite rows in the batch.
1707
+ */
1708
+ readonly count: number;
1709
+ /**
1710
+ * Per-row success and error messages as `{ ok, error }[]`.
1711
+ */
1712
+ readonly elementResults: any;
1713
+ /**
1714
+ * Ionospheric slant group delays in metres, with `NaN` for unavailable rows.
1715
+ */
1716
+ readonly ionosphereSlantDelayM: Float64Array;
1717
+ /**
1718
+ * Satellite ECEF positions as flat `[x0, y0, z0, ...]`, metres.
1719
+ *
1720
+ * Rows without a usable position are filled with `NaN`; check `statuses`
1721
+ * before consuming the corresponding row.
1722
+ */
1723
+ readonly positionEcefM: Float64Array;
1724
+ /**
1725
+ * Per-row status labels, index-aligned with the numeric arrays.
1726
+ */
1727
+ readonly statusLabels: string[];
1728
+ /**
1729
+ * Per-row typed status values, index-aligned with the numeric arrays.
1730
+ */
1731
+ readonly statuses: any[];
1732
+ /**
1733
+ * Tropospheric slant delays in metres, with `NaN` for unavailable rows.
1734
+ */
1735
+ readonly troposphereDelayM: Float64Array;
1736
+ }
1737
+
1738
+ /**
1739
+ * Per-satellite status for an emission media batch row.
1740
+ */
1741
+ export enum EmissionMediaStatus {
1742
+ /**
1743
+ * State, clock, and requested media corrections were produced.
1744
+ */
1745
+ Valid = 0,
1746
+ /**
1747
+ * The ephemeris product has no usable state for this satellite and epoch.
1748
+ */
1749
+ Gap = 1,
1750
+ /**
1751
+ * A state was available, but elevation was below the requested cutoff.
1752
+ */
1753
+ BelowElevationCutoff = 2,
1754
+ /**
1755
+ * A non-gap scalar evaluation error occurred.
1756
+ */
1757
+ Error = 3,
1758
+ }
1759
+
1690
1760
  /**
1691
1761
  * Orthonormal encounter frame built from two relative states.
1692
1762
  */
@@ -1969,6 +2039,111 @@ export enum GeodesicError {
1969
2039
  InvalidInput = 0,
1970
2040
  }
1971
2041
 
2042
+ /**
2043
+ * A geodesic polygon fence on WGS84.
2044
+ */
2045
+ export class Geofence {
2046
+ free(): void;
2047
+ [Symbol.dispose](): void;
2048
+ /**
2049
+ * Containment probability for one position and uncertainty object.
2050
+ *
2051
+ * `uncertainty.kind` is one of `"enuCovarianceM2"`, `"ecefCovarianceM2"`,
2052
+ * `"cepRadiusM"`, or `"horizontalRadius"`. `options.method` is
2053
+ * `"boundaryNormal"` or `"planarQuadrature"`.
2054
+ */
2055
+ containmentProbability(lat_rad: number, lon_rad: number, height_m: number, uncertainty_value: any, options: any): number;
2056
+ /**
2057
+ * Boolean containment for one WGS84 geodetic position.
2058
+ */
2059
+ contains(lat_rad: number, lon_rad: number, height_m: number): boolean;
2060
+ /**
2061
+ * Probabilistic crossing detection over geodetic position estimates.
2062
+ *
2063
+ * `samples` is an array of `{ latRad, lonRad, heightM?, uncertainty }`.
2064
+ * `options.enterConfidence` and `options.leaveConfidence` configure
2065
+ * hysteresis; absent values use the core defaults.
2066
+ */
2067
+ crossingProbability(samples: any, options: any): any;
2068
+ /**
2069
+ * Signed distance to the fence boundary in metres.
2070
+ */
2071
+ distanceToBoundary(lat_rad: number, lon_rad: number, height_m: number): number;
2072
+ /**
2073
+ * Construct a geodesic WGS84 polygon from flat 2D radian vertices.
2074
+ *
2075
+ * `vertices` is `[latRad, lonRad, ...]`. Use `geofenceFromVertices3d`
2076
+ * for `[latRad, lonRad, heightM, ...]` rows.
2077
+ */
2078
+ constructor(vertices: Float64Array);
2079
+ /**
2080
+ * Whether the core small-region planar path can evaluate this position.
2081
+ */
2082
+ planarFastPathApplies(lat_rad: number, lon_rad: number, height_m: number): boolean;
2083
+ /**
2084
+ * Number of polygon edges.
2085
+ */
2086
+ readonly edgeCount: number;
2087
+ /**
2088
+ * Fence vertices in open-polygon form as flat `[latRad, lonRad, heightM]` rows.
2089
+ */
2090
+ readonly vertices: Float64Array;
2091
+ }
2092
+
2093
+ /**
2094
+ * Geofence crossing event direction.
2095
+ */
2096
+ export enum GeofenceCrossingKind {
2097
+ /**
2098
+ * The sample sequence entered the fence.
2099
+ */
2100
+ Entered = 0,
2101
+ /**
2102
+ * The sample sequence left the fence.
2103
+ */
2104
+ Left = 1,
2105
+ }
2106
+
2107
+ /**
2108
+ * Geofence construction and evaluation error variants.
2109
+ */
2110
+ export enum GeofenceError {
2111
+ /**
2112
+ * Fewer than three distinct vertices were supplied.
2113
+ */
2114
+ TooFewVertices = 0,
2115
+ /**
2116
+ * A geofence input value was outside its domain.
2117
+ */
2118
+ InvalidInput = 1,
2119
+ /**
2120
+ * The geodesic direct or inverse calculation failed.
2121
+ */
2122
+ Geodesic = 2,
2123
+ /**
2124
+ * ECEF covariance rotation failed.
2125
+ */
2126
+ Dop = 3,
2127
+ /**
2128
+ * Covariance or radius validation failed.
2129
+ */
2130
+ ErrorMetrics = 4,
2131
+ }
2132
+
2133
+ /**
2134
+ * Probability integration method for geofence uncertainty.
2135
+ */
2136
+ export enum GeofenceProbabilityMethod {
2137
+ /**
2138
+ * Gaussian half-space approximation from boundary distance and normal variance.
2139
+ */
2140
+ BoundaryNormal = 0,
2141
+ /**
2142
+ * Fixed quadrature over the local planarized fence.
2143
+ */
2144
+ PlanarQuadrature = 1,
2145
+ }
2146
+
1972
2147
  /**
1973
2148
  * A regular latitude/longitude grid of geoid undulation samples with bilinear
1974
2149
  * interpolation, wrapping a real (loaded) geoid model.
@@ -4760,6 +4935,73 @@ export class PreciseEphemerisSampleSource {
4760
4935
  readonly satellites: string[];
4761
4936
  }
4762
4937
 
4938
+ /**
4939
+ * Evaluable precise-interpolant artifact opened from canonical store bytes.
4940
+ */
4941
+ export class PreciseInterpolantArtifact {
4942
+ private constructor();
4943
+ free(): void;
4944
+ [Symbol.dispose](): void;
4945
+ /**
4946
+ * Evaluate one satellite state at a J2000-second epoch.
4947
+ */
4948
+ evaluate(satellite: string, j2000_seconds: number): Sp3State;
4949
+ /**
4950
+ * Number of bytes retained by this artifact handle.
4951
+ */
4952
+ readonly byteLength: number;
4953
+ /**
4954
+ * File-level artifact checksum.
4955
+ */
4956
+ readonly checksum64: bigint;
4957
+ /**
4958
+ * Satellite tokens present in the artifact, ascending.
4959
+ */
4960
+ readonly satellites: string[];
4961
+ /**
4962
+ * Artifact time scale label from the stored epoch axis.
4963
+ */
4964
+ readonly timeScale: string;
4965
+ }
4966
+
4967
+ /**
4968
+ * Error category for precise-interpolant artifact open or serialization.
4969
+ */
4970
+ export enum PreciseInterpolantArtifactError {
4971
+ /**
4972
+ * File I/O failed in the core artifact API.
4973
+ */
4974
+ Io = 0,
4975
+ /**
4976
+ * Artifact bytes could not be parsed.
4977
+ */
4978
+ Parse = 1,
4979
+ /**
4980
+ * The artifact version tag is unsupported.
4981
+ */
4982
+ UnsupportedVersion = 2,
4983
+ /**
4984
+ * The artifact time-scale tag is unsupported.
4985
+ */
4986
+ UnsupportedTimeScale = 3,
4987
+ /**
4988
+ * A satellite-system tag is unsupported.
4989
+ */
4990
+ UnsupportedSatelliteSystem = 4,
4991
+ /**
4992
+ * A satellite appears more than once in the artifact index.
4993
+ */
4994
+ DuplicateSatellite = 5,
4995
+ /**
4996
+ * The artifact file-level checksum did not match.
4997
+ */
4998
+ Checksum = 6,
4999
+ /**
5000
+ * A satellite payload checksum did not match its index record.
5001
+ */
5002
+ SatelliteChecksum = 7,
5003
+ }
5004
+
4763
5005
  /**
4764
5006
  * The per-request results of a batch observable prediction, index-aligned to
4765
5007
  * the input requests. Each request independently either produced observables or
@@ -5721,6 +5963,21 @@ export class Sp3 {
5721
5963
  * TypeScript type. Returns the corrected solution and the base baseline.
5722
5964
  */
5723
5965
  dgnssSolve(request: any): DgnssSolution;
5966
+ /**
5967
+ * Evaluate emission-time state and media corrections for index-aligned satellites.
5968
+ *
5969
+ * `satellites` and `emissionEpochsJ2000S` share a row count. `receiverEcefM`
5970
+ * is `[x, y, z]` metres. Without an IONEX product this can still request
5971
+ * troposphere corrections by passing `{ troposphere: true }`.
5972
+ */
5973
+ emissionMediaBatch(satellites: string[], emission_epochs_j2000_s: Float64Array, receiver_ecef_m: Float64Array, options: any): EmissionMediaBatch;
5974
+ /**
5975
+ * Evaluate emission-time state plus IONEX/troposphere media corrections.
5976
+ *
5977
+ * `options.ionosphere` defaults to `true` on this IONEX-bearing path.
5978
+ * `options.troposphere` defaults to `false`.
5979
+ */
5980
+ emissionMediaBatchIonex(ionex: Ionex, satellites: string[], emission_epochs_j2000_s: Float64Array, receiver_ecef_m: Float64Array, options: any): EmissionMediaBatch;
5724
5981
  /**
5725
5982
  * The product's parsed epochs as seconds since J2000 (the product's own
5726
5983
  * time scale), ascending. This is the exact axis [`Sp3.interpolate`]
@@ -5766,6 +6023,10 @@ export class Sp3 {
5766
6023
  * [`observableStatesAtJ2000S`](Self::observable_states_at_j2000_s).
5767
6024
  */
5768
6025
  observableStatesAtSharedJ2000S(satellites: any, epoch_j2000_s: number): any;
6026
+ /**
6027
+ * Build deterministic precise-interpolant artifact bytes from this SP3 product.
6028
+ */
6029
+ preciseInterpolantArtifactBytes(): Uint8Array;
5769
6030
  /**
5770
6031
  * Predict geometric ranges for many `(satellite, receiver, epoch)` requests
5771
6032
  * against this ephemeris in one call. `requests` is an array of
@@ -5793,6 +6054,22 @@ export class Sp3 {
5793
6054
  * or failed. Delegates to the serial reference batch kernel.
5794
6055
  */
5795
6056
  solveSppBatch(epochs: any, options: any): SppBatchSolution;
6057
+ /**
6058
+ * Run SPP and attach a Doppler velocity/clock-drift solve when Doppler rows solve.
6059
+ *
6060
+ * `request` is the normal SPP request object. `dopplerObservations` is an
6061
+ * array of `{ satelliteId, dopplerHz, carrierHz, satClockDriftSS? }`. The
6062
+ * returned receiver solution carries `rxClockDriftSS` when velocity solved.
6063
+ */
6064
+ solveSppWithDopplerVelocity(request: any, doppler_observations: any): SppDopplerSolution;
6065
+ /**
6066
+ * Solve one static receiver position from multiple SPP-shaped epochs.
6067
+ *
6068
+ * `epochs` is an array of SPP request objects. `options` accepts
6069
+ * `{ initialPositionM?, withGeodetic?, robust? }` and returns shared
6070
+ * position, per-epoch clocks, covariance, residual, and influence surfaces.
6071
+ */
6072
+ solveStatic(epochs: any, options: any): StaticSolution;
5796
6073
  /**
5797
6074
  * Run the core robust-reweighted SPP driver under the RAIM/FDE exclusion loop.
5798
6075
  *
@@ -6248,6 +6525,27 @@ export class SppBatchSolution {
6248
6525
  readonly count: number;
6249
6526
  }
6250
6527
 
6528
+ /**
6529
+ * Position solution with an optional Doppler velocity solve.
6530
+ */
6531
+ export class SppDopplerSolution {
6532
+ private constructor();
6533
+ free(): void;
6534
+ [Symbol.dispose](): void;
6535
+ /**
6536
+ * Receiver position, clock, and covariance solution.
6537
+ */
6538
+ readonly receiver: SppSolution;
6539
+ /**
6540
+ * Doppler-derived receiver velocity and clock drift, if the velocity rows solved.
6541
+ */
6542
+ readonly velocity: VelocitySolution | undefined;
6543
+ /**
6544
+ * Velocity-solve failure text when Doppler rows were present but unusable.
6545
+ */
6546
+ readonly velocityError: string | undefined;
6547
+ }
6548
+
6251
6549
  /**
6252
6550
  * The result of an SPP solve.
6253
6551
  */
@@ -6273,6 +6571,14 @@ export class SppSolution {
6273
6571
  * are returned as a singular-geometry `Error` rather than a solution.
6274
6572
  */
6275
6573
  readonly geometryQuality: GeometryQuality;
6574
+ /**
6575
+ * ECEF position covariance, flat row-major 3-by-3 in square metres.
6576
+ */
6577
+ readonly positionCovarianceEcefM2: Float64Array;
6578
+ /**
6579
+ * ENU position covariance, flat row-major 3-by-3 in square metres.
6580
+ */
6581
+ readonly positionCovarianceEnuM2: Float64Array;
6276
6582
  /**
6277
6583
  * ECEF position as a `Float64Array` `[x, y, z]`, metres.
6278
6584
  */
@@ -6289,6 +6595,10 @@ export class SppSolution {
6289
6595
  * Post-fit residuals, metres, index-aligned to `usedSats`.
6290
6596
  */
6291
6597
  readonly residualsM: Float64Array;
6598
+ /**
6599
+ * Receiver clock drift in seconds per second when a Doppler solve was fused.
6600
+ */
6601
+ readonly rxClockDriftSS: number | undefined;
6292
6602
  /**
6293
6603
  * Receiver clock bias, seconds.
6294
6604
  */
@@ -6342,6 +6652,121 @@ export enum SsrSource {
6342
6652
  GalileoHas = 1,
6343
6653
  }
6344
6654
 
6655
+ /**
6656
+ * Status for a leave-one-out static positioning diagnostic.
6657
+ */
6658
+ export enum StaticInfluenceStatus {
6659
+ /**
6660
+ * The diagnostic solve completed.
6661
+ */
6662
+ Solved = 0,
6663
+ /**
6664
+ * The omitted subset left too few measurements.
6665
+ */
6666
+ TooFewMeasurements = 1,
6667
+ /**
6668
+ * The diagnostic geometry was singular.
6669
+ */
6670
+ SingularGeometry = 2,
6671
+ /**
6672
+ * Input validation failed for the diagnostic subset.
6673
+ */
6674
+ InvalidInput = 3,
6675
+ /**
6676
+ * Ephemeris was unavailable for the diagnostic subset.
6677
+ */
6678
+ EphemerisUnavailable = 4,
6679
+ /**
6680
+ * The diagnostic subset failed for another reason.
6681
+ */
6682
+ SolveFailed = 5,
6683
+ }
6684
+
6685
+ /**
6686
+ * Multi-epoch static receiver solution.
6687
+ */
6688
+ export class StaticSolution {
6689
+ private constructor();
6690
+ free(): void;
6691
+ [Symbol.dispose](): void;
6692
+ /**
6693
+ * `[latRad, lonRad, heightM]` when geodetic output was requested.
6694
+ */
6695
+ readonly geodetic: Float64Array | undefined;
6696
+ /**
6697
+ * Geometry observability and covariance-validation diagnostics.
6698
+ */
6699
+ readonly geometryQuality: GeometryQuality;
6700
+ /**
6701
+ * Solver iteration, convergence, and redundancy metadata.
6702
+ */
6703
+ readonly metadata: any;
6704
+ /**
6705
+ * Epoch-local receiver clocks as `{ epochIndex, system, clockS }[]`.
6706
+ */
6707
+ readonly perEpochClocks: any;
6708
+ /**
6709
+ * Leave-one-epoch-out diagnostics.
6710
+ */
6711
+ readonly perEpochInfluence: any;
6712
+ /**
6713
+ * Leave-one-satellite-out diagnostics across every epoch.
6714
+ */
6715
+ readonly perSatelliteBatchInfluence: any;
6716
+ /**
6717
+ * Leave-one-satellite-out diagnostics per epoch.
6718
+ */
6719
+ readonly perSatelliteInfluence: any;
6720
+ /**
6721
+ * ECEF position covariance, flat row-major 3-by-3 in square metres.
6722
+ */
6723
+ readonly positionCovarianceEcefM2: Float64Array;
6724
+ /**
6725
+ * ENU position covariance, flat row-major 3-by-3 in square metres.
6726
+ */
6727
+ readonly positionCovarianceEnuM2: Float64Array;
6728
+ /**
6729
+ * ECEF position as `[x, y, z]`, metres.
6730
+ */
6731
+ readonly positionM: Float64Array;
6732
+ /**
6733
+ * Rejected satellites grouped by input epoch.
6734
+ */
6735
+ readonly rejectedSats: any;
6736
+ /**
6737
+ * Root-mean-square of the unweighted post-fit residuals, metres.
6738
+ */
6739
+ readonly residualRmsM: number;
6740
+ /**
6741
+ * Post-fit residuals as `{ epochIndex, satelliteId, residualM, ... }[]`.
6742
+ */
6743
+ readonly residuals: any;
6744
+ /**
6745
+ * Full state covariance, flat row-major square matrix in square metres.
6746
+ */
6747
+ readonly stateCovarianceM2: Float64Array;
6748
+ /**
6749
+ * State covariance matrix dimension.
6750
+ */
6751
+ readonly stateParameterCount: number;
6752
+ /**
6753
+ * Used satellite tokens grouped by input epoch.
6754
+ */
6755
+ readonly usedSats: any;
6756
+ /**
6757
+ * ECEF X, metres.
6758
+ */
6759
+ readonly xM: number;
6760
+ /**
6761
+ * ECEF Y, metres.
6762
+ */
6763
+ readonly yM: number;
6764
+ /**
6765
+ * ECEF Z, metres.
6766
+ */
6767
+ readonly zM: number;
6768
+ }
6769
+
6345
6770
  /**
6346
6771
  * A batch of Sun and Moon positions, one per epoch: flat row-major `sun` and
6347
6772
  * `moon` `Float64Array`s of length `3 * epochCount`, in **metres**.
@@ -7033,6 +7458,10 @@ export class VelocitySolution {
7033
7458
  * Receiver speed, metres per second.
7034
7459
  */
7035
7460
  readonly speedMS: number;
7461
+ /**
7462
+ * Unit-variance covariance of `[vx, vy, vz, clockDrift]`, flat row-major.
7463
+ */
7464
+ readonly stateCovariance: Float64Array;
7036
7465
  /**
7037
7466
  * Satellite tokens contributing rows, in residual order.
7038
7467
  */
@@ -7713,6 +8142,11 @@ export function eirp(tx_power_dbm: number, tx_antenna_gain_dbi: number): number;
7713
8142
  */
7714
8143
  export function ellipsoidalHeightM(orthometric_height_m: number, lat_rad: number, lon_rad: number): number;
7715
8144
 
8145
+ /**
8146
+ * Stable string label for an [`EmissionMediaStatus`] enum value.
8147
+ */
8148
+ export function emissionMediaStatusLabel(status: EmissionMediaStatus): string;
8149
+
7716
8150
  /**
7717
8151
  * Encode plain RINEX observation text into a Compact RINEX (Hatanaka) stream,
7718
8152
  * the inverse of [`decodeCrinex`]. RINEX 2 is emitted as CRINEX 1.0 and RINEX 3
@@ -8124,6 +8558,49 @@ export function geodesicInverse(lat1_deg: number, lon1_deg: number, lat2_deg: nu
8124
8558
  */
8125
8559
  export function geodeticToEcef(geodetic: Float64Array): Float64Array;
8126
8560
 
8561
+ /**
8562
+ * Containment probability using default probability options.
8563
+ */
8564
+ export function geofenceContainmentProbability(vertices: Float64Array, lat_rad: number, lon_rad: number, height_m: number, uncertainty_value: any): number;
8565
+
8566
+ /**
8567
+ * Boolean containment for one position and flat vertex array.
8568
+ */
8569
+ export function geofenceContains(vertices: Float64Array, lat_rad: number, lon_rad: number, height_m: number): boolean;
8570
+
8571
+ /**
8572
+ * Stable string label for a [`GeofenceCrossingKind`] enum value.
8573
+ */
8574
+ export function geofenceCrossingKindLabel(kind: GeofenceCrossingKind): string;
8575
+
8576
+ /**
8577
+ * Probabilistic crossing detection with default hysteresis.
8578
+ */
8579
+ export function geofenceCrossingProbability(vertices: Float64Array, samples: any, options: any): any;
8580
+
8581
+ /**
8582
+ * Stable string label for a [`GeofenceError`] enum value.
8583
+ */
8584
+ export function geofenceErrorLabel(error: GeofenceError): string;
8585
+
8586
+ /**
8587
+ * Construct a geodesic WGS84 polygon from flat 2D radian vertices.
8588
+ */
8589
+ export function geofenceFromVertices(vertices: Float64Array): Geofence;
8590
+
8591
+ /**
8592
+ * Construct a geodesic WGS84 polygon from flat 3D radian vertices.
8593
+ *
8594
+ * `vertices` is `[latRad, lonRad, heightM, ...]`. Heights are accepted but
8595
+ * ignored by the core geofence model.
8596
+ */
8597
+ export function geofenceFromVertices3d(vertices: Float64Array): Geofence;
8598
+
8599
+ /**
8600
+ * Stable string label for a [`GeofenceProbabilityMethod`] enum value.
8601
+ */
8602
+ export function geofenceProbabilityMethodLabel(method: GeofenceProbabilityMethod): string;
8603
+
8127
8604
  /**
8128
8605
  * Geoid undulation `N` (metres above the WGS84 ellipsoid) at a geodetic
8129
8606
  * position in radians, from the COARSE built-in global grid. Latitude is
@@ -8909,6 +9386,14 @@ export function observeSpkBody(station: any, epoch_unix_us: bigint, spk: Spk, na
8909
9386
  */
8910
9387
  export function oceanTideLoading(station_ecef_m: Float64Array, year: number, month: number, day: number, fractional_hour: number, amplitude_m: Float64Array, phase_deg: Float64Array): Float64Array;
8911
9388
 
9389
+ /**
9390
+ * Open precise-interpolant artifact bytes as an evaluable in-memory product.
9391
+ *
9392
+ * The returned handle owns its byte buffer because JS byte slices cannot be
9393
+ * borrowed across calls by this class boundary.
9394
+ */
9395
+ export function openPreciseInterpolantArtifact(bytes: Uint8Array): PreciseInterpolantArtifact;
9396
+
8912
9397
  /**
8913
9398
  * Broadcast-derived per-satellite orbit-repeat lag, in seconds.
8914
9399
  *
@@ -9139,6 +9624,16 @@ export function pppCorrectionsWithCodeBias(sp3: Sp3, epochs: any, receiver_ecef_
9139
9624
  */
9140
9625
  export function preciseEphemerisSamplesFromSamples(samples: any): PreciseEphemerisSampleSource;
9141
9626
 
9627
+ /**
9628
+ * Compute the precise-interpolant artifact file-level checksum for byte content.
9629
+ */
9630
+ export function preciseInterpolantArtifactChecksum64(bytes: Uint8Array): bigint;
9631
+
9632
+ /**
9633
+ * Stable string label for a [`PreciseInterpolantArtifactError`] enum value.
9634
+ */
9635
+ export function preciseInterpolantArtifactErrorLabel(error: PreciseInterpolantArtifactError): string;
9636
+
9142
9637
  /**
9143
9638
  * Predict observables for many `(satellite, receiver, epoch)` requests from a
9144
9639
  * broadcast ephemeris store, serially. See [`predictBatchSp3`] for the argument
@@ -9649,6 +10144,11 @@ export function solveRtkFloat(config: any): RtkFloatSolution;
9649
10144
  */
9650
10145
  export function solveSppSbas(broadcast: BroadcastEphemeris, store: SbasCorrectionStore, geo: string, request: any, mode?: string | null): SppSolution;
9651
10146
 
10147
+ /**
10148
+ * Solve one static receiver position from multiple SPP-shaped epochs over SP3.
10149
+ */
10150
+ export function solveStatic(sp3: Sp3, epochs: any, options: any): StaticSolution;
10151
+
9652
10152
  /**
9653
10153
  * Solve a static RTK arc with one batch float solution and one validated fixed
9654
10154
  * solution over the whole arc.
@@ -9739,6 +10239,11 @@ export function ssrCorrectedState(broadcast: BroadcastEphemeris, store: SsrCorre
9739
10239
  */
9740
10240
  export function ssrSourceLabel(source: SsrSource): string;
9741
10241
 
10242
+ /**
10243
+ * Stable string label for a [`StaticInfluenceStatus`] enum value.
10244
+ */
10245
+ export function staticInfluenceStatusLabel(status: StaticInfluenceStatus): string;
10246
+
9742
10247
  /**
9743
10248
  * Sub-observer point (planetary central meridian) on a rotating body.
9744
10249
  *