import { Angle, SphericalPosition, SphericalPosition3D } from '@tubular/math';
export interface Nutation {
    Δψ: Angle;
    Δε: Angle;
    ε: Angle;
}
export declare enum NMode {
    NUTATED = 0,// Return nutation in longitude, and nutation-adjusted true obliquity.
    MEAN_OBLIQUITY = 1,// Return no nutation, only non-nutated mean obliquity.
    J2000 = 2,// Return no nutation, simply fixed obliquity of the J2000.0 ecliptic.
    ANTI_NUTATED = 3
}
export declare class Ecliptic {
    private cachedTime;
    private cachedMode;
    private cachedNutation;
    static precessEquatorial(pos: SphericalPosition, initialOrFinalEpoch: number, finalEpoch?: number): SphericalPosition;
    static precessEquatorial3D(pos: SphericalPosition3D, initialOrFinalEpoch: number, finalEpoch?: number): SphericalPosition3D;
    static precessEcliptical(pos: SphericalPosition, initialOrFinalEpoch: number, finalEpoch?: number): SphericalPosition;
    static precessEcliptical3D(pos: SphericalPosition3D, initialOrFinalEpoch: number, finalEpoch?: number): SphericalPosition3D;
    getNutation(time_JDE: number, mode?: NMode): Nutation;
    nutateEclipticPosition(pos: SphericalPosition, time_JDE: number, mode?: NMode): SphericalPosition;
    nutateEclipticPosition3D(pos: SphericalPosition3D, time_JDE: number, mode?: NMode): SphericalPosition3D;
    nutateEquatorialPosition(pos: SphericalPosition, time_JDE: number, mode?: NMode): SphericalPosition;
    nutateEquatorialPosition3D(pos: SphericalPosition3D, time_JDE: number, mode?: NMode): SphericalPosition3D;
    eclipticToEquatorial(pos: SphericalPosition, time_JDE?: number, mode?: NMode): SphericalPosition;
    eclipticToEquatorial3D(pos: SphericalPosition3D, time_JDE?: number, mode?: NMode): SphericalPosition3D;
    equatorialToEcliptic(pos: SphericalPosition, time_JDE?: number, mode?: NMode): SphericalPosition;
    equatorialToEcliptic3D(pos: SphericalPosition3D, time_JDE?: number, mode?: NMode): SphericalPosition3D;
}
//# sourceMappingURL=ecliptic.d.ts.map