export type AccuracyMode = "fast" | "visual" | "observational" | "precision"; export interface EquatorialCoordinate { readonly rightAscensionDegrees: number; readonly declinationDegrees: number; } export interface EclipticCoordinate { readonly longitudeDegrees: number; readonly latitudeDegrees: number; } export interface GalacticCoordinate { readonly longitudeDegrees: number; readonly latitudeDegrees: number; } export interface CatalogStar extends EquatorialCoordinate { readonly id: string; readonly name?: string; readonly aliases?: readonly string[]; readonly constellation?: string; readonly bayerDesignation?: string; readonly flamsteedNumber?: number; readonly magnitude: number; readonly colorIndexBv?: number; readonly epochJulianYear?: number; readonly properMotionRaMasPerYear?: number; readonly properMotionDecMasPerYear?: number; readonly parallaxMas?: number; readonly radialVelocityKmPerSecond?: number; readonly spectralType?: string; } export interface Observer { readonly latitudeDegrees: number; readonly longitudeDegrees: number; readonly elevationMeters?: number; } export interface Atmosphere { readonly pressureHpa?: number; readonly temperatureCelsius?: number; readonly relativeHumidity?: number; readonly wavelengthMicrometers?: number; } export interface EarthOrientationParameters { readonly dut1Seconds?: number; readonly xPolarMotionArcseconds?: number; readonly yPolarMotionArcseconds?: number; readonly dXMas?: number; readonly dYMas?: number; readonly lodMilliseconds?: number; } export interface TimeScales { readonly dateUtc: Date; readonly julianDateUtc: number; readonly julianDateTai: number; readonly julianDateTt: number; readonly julianDateUt1: number; readonly taiMinusUtcSeconds: number; readonly ttMinusUtcSeconds: number; readonly dut1Seconds: number; readonly julianCenturyTt: number; } export interface ObservationOptions { readonly date: Date; readonly accuracy?: AccuracyMode; readonly dut1Seconds?: number; readonly ttMinusUtcSeconds?: number; readonly earthOrientation?: EarthOrientationParameters; readonly applyProperMotion?: boolean; readonly applyPrecession?: boolean; readonly applyNutation?: boolean; readonly applyAnnualAberration?: boolean; readonly applySolarDeflection?: boolean; readonly applyTopocentricParallax?: boolean; readonly applyPolarMotion?: boolean; readonly applyRefraction?: boolean; readonly atmosphere?: Atmosphere; } export interface ObservationStages { readonly icrs: EquatorialCoordinate; readonly propagated: EquatorialCoordinate; readonly meanOfDate: EquatorialCoordinate; readonly apparent: EquatorialCoordinate; readonly topocentric: EquatorialCoordinate; } export interface ObservedStar { readonly source: CatalogStar; readonly accuracy: AccuracyMode; readonly time: TimeScales; readonly stages: ObservationStages; readonly propagatedCoordinate: EquatorialCoordinate; readonly equatorialOfDate: EquatorialCoordinate; readonly localSiderealTimeDegrees: number; readonly hourAngleDegrees: number; readonly geometricAltitudeDegrees: number; readonly altitudeDegrees: number; readonly azimuthDegrees: number; readonly aboveHorizon: boolean; readonly distanceParsecs?: number; readonly color: string; readonly correctionsApplied: readonly string[]; } export interface SkyOptions extends Omit { readonly catalog: readonly CatalogStar[]; readonly observer: Observer; readonly date?: Date; readonly magnitudeLimit?: number; readonly horizonLimitDegrees?: number; } export interface SkyFrame { readonly date: Date; readonly observer: Observer; readonly localSiderealTimeDegrees: number; readonly time: TimeScales; readonly stars: readonly ObservedStar[]; } export interface SkyEngine { readonly destroyed: boolean; setDate(date: Date): SkyFrame; setObserver(observer: Observer): SkyFrame; setCatalog(catalog: readonly CatalogStar[]): SkyFrame; getFrame(): SkyFrame; destroy(): void; } export interface HorizontalCoordinate { readonly altitudeDegrees: number; readonly azimuthDegrees: number; } export interface CatalogQuery { readonly text?: string; readonly magnitudeLimit?: number; readonly center?: EquatorialCoordinate; readonly radiusDegrees?: number; readonly limit?: number; } export interface StarCatalog { readonly size: number; get(identifier: string): CatalogStar | undefined; query(query?: CatalogQuery): readonly CatalogStar[]; all(): readonly CatalogStar[]; } export interface AsyncStarCatalog { get(identifier: string): Promise; query(query?: CatalogQuery): Promise; } export interface CatalogValidationIssue { readonly index: number; readonly id?: string; readonly field: string; readonly message: string; } export interface RiseSetTransitResult { readonly date: Date; readonly rise?: Date; readonly transit?: Date; readonly set?: Date; readonly maximumAltitudeDegrees: number; readonly circumpolar: boolean; readonly neverRises: boolean; } export interface VisibilityWindow { readonly start: Date; readonly end: Date; readonly maximumAltitudeDegrees: number; } //# sourceMappingURL=types.d.ts.map