import type { SGP4ErrorOutput, SGP4Output } from './propagation';
/**
 * Classification of TLE
 * - U: unclassified
 * - C: classified
 * - S: secret
 */
export type Classification = 'U' | 'C' | 'S';
/**
 * Mode of operation AFSPC or Improved
 * - a: afspc
 * - i: improved
 */
export type OperationMode = 'a' | 'i';
/**
 * Method of orbit determination
 * - d: deep space
 * - n: near earth
 */
export type Method = 'd' | 'n';
/** TLE Data Interface */
export interface TLEData {
    name: string;
    number: number;
    class: Classification;
    id: string;
    date: string | Date;
    fdmm: number;
    sdmm: number;
    drag: number;
    ephemeris: number;
    esn: number;
    inclination: number;
    ascension: number;
    eccentricity: number;
    perigee: number;
    anomaly: number;
    motion: number;
    revolution: number;
    rms?: number;
}
/** Celestrak TLE Data Interface */
export interface TLEDataCelestrak {
    OBJECT_NAME: string;
    OBJECT_ID: string;
    EPOCH: string;
    MEAN_MOTION: number;
    ECCENTRICITY: number;
    INCLINATION: number;
    RA_OF_ASC_NODE: number;
    ARG_OF_PERICENTER: number;
    MEAN_ANOMALY: number;
    EPHEMERIS_TYPE: number;
    CLASSIFICATION_TYPE: string;
    NORAD_CAT_ID: number;
    ELEMENT_SET_NO: number;
    REV_AT_EPOCH: number;
    BSTAR: number;
    MEAN_MOTION_DOT: number;
    MEAN_MOTION_DDOT: number;
    RMS: string;
    DATA_SOURCE: string;
}
/**
 * # Satellite Orbit Class
 *
 * Input TLE example
 * STARLINK-1007
 * 1 44713C 19074A   23048.53451389 -.00009219  00000+0 -61811-3 0   482
 * 2 44713  53.0512 157.2379 0001140  81.3827  74.7980 15.06382459    15
 */
export declare class Satellite {
    #private;
    init: boolean;
    name: string;
    number: number;
    class: Classification;
    id: string;
    date: Date;
    epochyr: number;
    epochdays: number;
    jdsatepoch: number;
    fdmm: number;
    sdmm: number;
    drag: number;
    ephemeris: number;
    esn: number;
    inclination: number;
    ascension: number;
    eccentricity: number;
    perigee: number;
    anomaly: number;
    motion: number;
    revolution: number;
    opsmode: OperationMode;
    rms?: number;
    isimp: number;
    method: Method;
    aycof: number;
    con41: number;
    cc1: number;
    cc4: number;
    cc5: number;
    d2: number;
    d3: number;
    d4: number;
    delmo: number;
    eta: number;
    argpdot: number;
    omgcof: number;
    sinmao: number;
    t2cof: number;
    t3cof: number;
    t4cof: number;
    t5cof: number;
    x1mth2: number;
    x7thm1: number;
    mdot: number;
    nodedot: number;
    xlcof: number;
    xmcof: number;
    nodecf: number;
    irez: number;
    d2201: number;
    d2211: number;
    d3210: number;
    d3222: number;
    d4410: number;
    d4422: number;
    d5220: number;
    d5232: number;
    d5421: number;
    d5433: number;
    dedt: number;
    del1: number;
    del2: number;
    del3: number;
    didt: number;
    dmdt: number;
    dnodt: number;
    domdt: number;
    e3: number;
    ee2: number;
    peo: number;
    pgho: number;
    pho: number;
    pinco: number;
    plo: number;
    se2: number;
    se3: number;
    sgh2: number;
    sgh3: number;
    sgh4: number;
    sh2: number;
    sh3: number;
    si2: number;
    si3: number;
    sl2: number;
    sl3: number;
    sl4: number;
    gsto: number;
    xfact: number;
    xgh2: number;
    xgh3: number;
    xgh4: number;
    xh2: number;
    xh3: number;
    xi2: number;
    xi3: number;
    xl2: number;
    xl3: number;
    xl4: number;
    xlamo: number;
    zmol: number;
    zmos: number;
    atime: number;
    xli: number;
    xni: number;
    /**
     * Constructor
     * @param data - TLE data or TLE string
     * @param initialize - initialize the object on creation
     */
    constructor(data: TLEData | string, initialize?: boolean);
    /** API */
    /**
     * propagate the satellite's position and velocity given a Date input
     * @param time - Date object
     * @returns - SGP4ErrorOutput or SGP4Output
     */
    propagate(time: Date): SGP4ErrorOutput | SGP4Output;
    /**
     * time in minutes since epoch
     * @param time - time in minutes
     * @returns - satellite state at that time
     */
    sgp4(time: number): SGP4ErrorOutput | SGP4Output;
    /**
     * Converts satellite state to an array that is readable by the GPU
     * @returns - satellite state in an array
     */
    gpu(): number[];
}
/**
 * Covnert Celestrak TLE data to a standard TLE data object
 * [JSON example](https://celestrak.org/NORAD/elements/supplemental/index.php?FORMAT=json)
 * @param data - Celestrak TLE data
 * @returns - TLE data
 */
export declare function convertCelestrak(data: TLEDataCelestrak): TLEData;
//# sourceMappingURL=sat.d.ts.map