import type { JournalEvent } from "../../JournalEvent.ts";
/** Valid legal states. */
export type LegalState = "Clean" | "IllegalCargo" | "Speeding" | "Wanted" | "Hostile" | "PassengerWanted" | "Warrant";
/** Valid "Flags" bits. */
export declare const Flag: {
    /** Docked oon a landing pad) */
    DOCKED: number;
    /** Landed on planet surface. */
    LANDED: number;
    LANDING_GEAR_DOWN: number;
    SHIELDS_UP: number;
    SUPERCRUISE: number;
    FLIGHT_ASSIST_OFF: number;
    HARDPOINTS_DEPLOYED: number;
    IN_WING: number;
    LIGHTS_ON: number;
    CARGO_SCOOP_DEPLOYED: number;
    SILENT_RUNNING: number;
    SCOOPING_FUEL: number;
    SRV_HANDBRAKE: number;
    SRV_TURRET_VIEW: number;
    SRV_TURRET_RETRACTED: number;
    SRV_DRIVE_ASSIST: number;
    FSD_MASS_LOCKED: number;
    FSD_CHARGING: number;
    FSD_COOLDOWN: number;
    /** Fuel lower than 25%. */
    LOW_FUEL: number;
    /** Heat over 100% */
    OVERHEATING: number;
    HAS_LAT_LONG: number;
    IS_IN_DANGER: number;
    BEING_INTERDICTED: number;
    IN_MAIN_SHIP: number;
    IN_FIGHTER: number;
    IN_SRV: number;
    ANALYSIS_MODE: number;
    NIGHT_VISION: number;
    /**
     * If set, the altitude value is based on the planet’s average radius (used at higher altitudes).
     * If not set, the Altitude value is based on a raycast to the actual surface below the ship/srv.
     */
    ALTITUDE_FROM_AVERAGE_RADIUS: number;
    FSD_JUMP: number;
    SRV_HIGH_BEAM: number;
};
export type Flag = typeof Flag[keyof typeof Flag];
/** Valid "Flags2" bits. */
export declare const Flag2: {
    ON_FOOT: number;
    /** Or dropship/shuttle. */
    IN_TAXI: number;
    /** In someone else's ship. */
    IN_MULTICREW: number;
    ON_FOOT_IN_STATION: number;
    ON_FOOT_ON_PLANET: number;
    AIM_DOWN_SIGHT: number;
    LOW_OXYGEN: number;
    LOW_HEALTH: number;
    COLD: number;
    HOT: number;
    VERY_COLD: number;
    VERY_HOT: number;
    GLIDE_MODE: number;
    ON_FOOT_IN_HANGAR: number;
    ON_FOOT_SOCIAL_SPACE: number;
    ON_FOOT_EXTERIOR: number;
    BREATHABLE_ATMOSPHERE: number;
    TELEPRESENCE_MULTICREW: number;
    PHYSICAL_MULTICREW: number;
    FSD_HYPERDRIVE_CHARGING: number;
};
export type Flag2 = typeof Flag2[keyof typeof Flag2];
/** Valid GUI focus values. */
export declare const GuiFocus: {
    NO_FOCUS: number;
    /** Right hand side. */
    INTERNAL_PANEL: number;
    /** Left hand side. */
    EXTERNAL_PANEL: number;
    COMMS_PANEL: number;
    ROLE_PANEL: number;
    STATION_SERVICES: number;
    GALAXY_MAP: number;
    SYSTEM_MAP: number;
    ORRERY: number;
    FSS_MODE: number;
    SAA_MODE: number;
    CODEX: number;
};
export type GuiFocus = typeof GuiFocus[keyof typeof GuiFocus];
/**
 * Some information about the current state of the game written every few seconds to the file 'Status.json' in the
 * journal directory.
 *
 * The latitude or longitude need to change by 0.02 degrees to trigger an update when flying, or by 0.0005 degrees
 * when in the SRV.
 */
export interface Status extends JournalEvent<"Status"> {
    /** Multiple flags encoded as bits in an integer. */
    Flags: number;
    /** More flags, mainly for when on foot. */
    Flags2?: number;
    /** An array of 3 integers (0-8) representing energy distribution (in half-pips) */
    Pips?: [number, number, number];
    /** The currently selected firegroup number. */
    FireGroup?: number;
    /** The selected GUI screen. */
    GuiFocus?: GuiFocus;
    /** Fuel mass in tons. */
    Fuel?: {
        FuelMain: number;
        FuelReservoir: number;
    };
    /** Cargo mass in tons. */
    Cargo?: number;
    /** The current legal state. */
    LegalState?: LegalState;
    /** The latitude. Set when on or near a planet. */
    Latitude?: number;
    /** The altitude. Set when on or near a planet. */
    Altitude?: number;
    /** The longitude. Set when on or near a planet. */
    Longitude?: number;
    /** The current heading. Set when on or near a planet. */
    Heading?: number;
    /** The planet radius. Set when on or near a planet. */
    PlanetRadius?: number;
    BodyName?: string;
    /** The current credit balance. */
    Balance?: number;
    /** The selected destination if any. */
    Destination?: {
        System: number;
        Body: number;
        Name: string;
    };
    /** The oxygen level (0.0 .. 1.0). Only set when on foot. */
    Oxygen?: number;
    /** The health level (0.0 .. 1.0). Only set when on foot. */
    Health?: number;
    /** Temperature in Kelvin. Only set when on foot. */
    Temperature?: number;
    /** The name of the selected weapon. Only set when on foot. */
    SelectedWeapon?: string;
    SelectedWeapon_Localised?: string;
    /** The gravity relative to 1G. Only set when on foot. */
    Gravity?: number;
}
