import { type JournalEvent } from "../../JournalEvent.js";
import type { ConflictFaction } from "../types/ConflictFaction.js";
import type { PowerState } from "../types/PowerState.js";
import { type StationService } from "../types/StationService.js";
/**
 * Written at startup or when being resurrected at a station.
 */
export interface Location extends JournalEvent<"Location"> {
    StarSystem: string;
    SystemAddress?: number;
    /** Star position as array (x, y, z) in light years. */
    StarPos: [number, number, number];
    Body: string;
    Body_Localised?: string;
    BodyID?: number;
    BodyType: string;
    DistFromStarLS?: number;
    Docked: boolean;
    Latitude?: number;
    Longitude?: number;
    StationName?: string;
    StationType?: string;
    MarketID?: number;
    /** Star system's controlling faction. */
    SystemFaction?: {
        Name: string;
        FactionState?: string;
    };
    SystemAllegiance: string;
    SystemEconomy: string;
    SystemEconomy_Localised?: string;
    SystemSecondEconomy?: string;
    SystemSecondEconomy_Localised?: string;
    SystemGovernment: string;
    SystemGovernment_Localised?: string;
    SystemSecurity: string;
    SystemSecurity_Localised?: string;
    Population?: number;
    Wanted?: boolean;
    /** Info on local minor factions. */
    Factions?: Array<{
        Allegiance: string;
        FactionState: string;
        Government: string;
        Influence: number;
        Name: string;
        PendingStates?: Array<{
            State: string;
            Trend: number;
        }>;
        RecoveringStates?: Array<{
            State: string;
            Trend: number;
        }>;
        ActiveStates?: Array<{
            State: string;
        }>;
        Happiness?: string;
        Happiness_Localised?: string;
        MyReputation?: number;
        SquadronFaction?: boolean;
    }>;
    /** Info on local conflicts. */
    Conflicts?: Array<{
        WarType: string;
        Status: string;
        Faction1: ConflictFaction;
        Faction2: ConflictFaction;
    }>;
    /** Names of any powers contesting the system, or the name of the controlling power. */
    Powers?: string[];
    /** The system's powerplay state. */
    PowerplayState?: PowerState;
    StationFaction?: {
        Name: string;
        FactionState?: string;
    };
    StationGovernment?: string;
    StationGovernment_Localised?: string;
    StationAllegiance?: string;
    StationServices?: StationService[];
    StationEconomies?: Array<{
        Name: string;
        Name_Localised: string;
        Proportion: number;
    }>;
    Taxi?: boolean;
    Multicrew?: boolean;
    InSRV?: boolean;
    OnFoot?: boolean;
    StationEconomy?: string;
    StationEconomy_Localised?: string;
}
