import type { GeoPoint } from "../types.ts"; /** * Julian day number of a moment in milliseconds since the Unix epoch. * * @param ms - Milliseconds since 1970-01-01T00:00Z. * @returns The Julian day number, with its fraction. * * @example * ```ts * import { julianDay } from "@johnmorrisdotca/chikyu-earth/realistic"; * * console.log(julianDay(Date.UTC(2000, 0, 1, 12))); * ``` */ export declare const julianDay: (ms: number) => number; /** * How far the Earth has turned against the stars at `ms`: Greenwich mean sidereal time, in degrees from 0 to 360. The longitude that faces a direction fixed in space goes west at this rate (about 361 degrees a day). * * @param ms - A moment, in milliseconds since the Unix epoch. * @returns The angle in degrees. * * @example * ```ts * import { greenwichSidereal } from "@johnmorrisdotca/chikyu-earth/realistic"; * * console.log(greenwichSidereal(Date.UTC(2000, 0, 1, 12)).toFixed(2)); * ``` */ export declare function greenwichSidereal(ms: number): number; /** * The point where the Sun is at the zenith at `ms`: latitude is the Sun's declination, longitude runs west at 15 degrees an hour. * * @param ms - A moment, in milliseconds since the Unix epoch. * @returns The longitude and latitude on the Earth that has the Sun straight overhead. * * @example * ```ts * import { subsolarPoint } from "@johnmorrisdotca/chikyu-earth/realistic"; * * const sun = subsolarPoint(Date.UTC(2026, 5, 21, 12)); * console.log(sun.lat.toFixed(1), sun.lon.toFixed(1)); * ``` */ export declare function subsolarPoint(ms: number): GeoPoint; /** * A point on the globe as a unit vector: +z is longitude 0 on the equator, +x east, +y north. * * @param point - A longitude and latitude in degrees. * @returns The `[x, y, z]` of the point on a sphere of radius 1. * * @example * ```ts * import { unitVector } from "@johnmorrisdotca/chikyu-earth/realistic"; * * console.log(unitVector({ lon: 90, lat: 0 }).map((n) => Math.round(n))); * ``` */ export declare function unitVector(point: GeoPoint): [number, number, number];