import type { ElementSet, Satellites } from "./types.ts"; /** * From this eccentricity up, a satellite is not turned about its orbit's axis at the mean motion above the interpolation limit, because it does not go round at a steady rate or stay at one height * (a Molniya orbit is 10 times quicker at its lowest point than its mean): its place and its streak are SGP4 itself, two calls a frame, for the few that are this eccentric. */ export declare const ECCENTRIC_FROM = 0.02; /** * What `createSatellites` can be told. * * @example * ```ts * import type { SatellitesOptions } from "@johnmorrisdotca/chikyu-earth/satellites"; * * const options: SatellitesOptions = { dimAfterDays: 7, maxAgeDays: 21 }; * console.log(options.maxAgeDays); * ``` */ export interface SatellitesOptions { /** The oldest an element set may be at the moment shown, in days, before the satellite is left out (30 by default). */ maxAgeDays?: number; /** The age, in days, past which a satellite is drawn dimmer because its place is less exact (14 by default). */ dimAfterDays?: number; /** * Keep placing a satellite beyond `maxAgeDays` from its element set, as an estimate (off by default): the same elements carried forward or back by the same SGP4 code, where the satellite would be had its orbit not changed. * Never before its launch date or after its decay date when the elements carry them (`LAUNCH_DATE`, `DECAY_DATE`; else the launch year in `OBJECT_ID` marks the earliest), and a satellite that SGP4 cannot carry that far, or brings down below about 120 km, is left out. */ estimateFar?: boolean; } /** * Make a group of satellites from their element sets. Each starts SGP4 once here; one that does not (bad numbers, decayed at its own epoch) is listed in `refused` and left out. * It needs satellite.js (MIT, an optional peer dependency) and imports in a browser or on a server. * * @param sets - Element sets in CelesTrak's JSON format (`ElementSet`), fetched by your page. * @param options - `maxAgeDays`: the oldest an element set may be at the moment shown; `dimAfterDays`: the age past which it is drawn dimmer. * @returns The group: `at(ms, out)` for positions, `exact`, `orbit`, `info`, and counters. * * @example * ```ts * import { createSatellites } from "@johnmorrisdotca/chikyu-earth/satellites"; * * const group = createSatellites([ * { * OBJECT_NAME: "ISS (ZARYA)", * OBJECT_ID: "1998-067A", * EPOCH: "2026-11-02T10:25:21.580320", * MEAN_MOTION: 15.49150046, * ECCENTRICITY: 0.0007139, * INCLINATION: 51.6332, * RA_OF_ASC_NODE: 335.9757, * ARG_OF_PERICENTER: 339.3739, * MEAN_ANOMALY: 20.6961, * NORAD_CAT_ID: 25544, * BSTAR: 0.00012, * MEAN_MOTION_DOT: 0.0001, * MEAN_MOTION_DDOT: 0, * }, * ]); * const noon = Date.UTC(2026, 10, 2, 12); * console.log(group.count, group.info(0, noon)?.altitudeKm.toFixed(0)); * ``` */ export declare function createSatellites(sets: readonly ElementSet[], options?: SatellitesOptions): Satellites;