Something went wrong. Try again.
TypeScript client for accessing TLE Community.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332import { ServerDate, IntBool } from '.';import type { ViewResponse as BuildingViewResponse } from './building';
export interface ViewResponse extends BuildingViewResponse { /** Twice the Space Port's level. */ max_ships: number; docks_available: number; /** Count of docked ships, keyed by ship type. */ docked_ships: Record<string, number>;}
export type Target = | { body_id: number } | { body_name: string } | { star_id: number } | { star_name: string } | { x: number; y: number };
export type Paging = { page_number?: number; items_per_page?: number; no_paging?: IntBool;};
export type Filter = { task?: string; type?: string; tag?: string;};
export type Ship = { id: number; name: string; type: string; type_human: string; task: string; speed: number; fleet_speed: number; stealth: number; hold_size: number; berth_level: number; date_started: ServerDate; date_available: ServerDate; date_arrives: ServerDate; can_recall: IntBool; can_scuttle: IntBool; combat?: number; max_occupants?: number; estimated_travel_time?: number; /** * Present on ships that carry cargo. The server nests the manifest here as * `details.payload` (a list of human-readable strings); older shapes put a * bare `payload` array at the top level. */ details?: { payload?: string[] }; from?: ShipPoint; to?: ShipPoint; orbiting?: ShipPoint;};
export interface ViewAllShipsParams { building_id: number; paging?: Paging; filter?: Filter; sort?: string;}
export interface ViewAllShipsResponse { ships: Ship[]; number_of_ships: number;}
export interface ViewTravellingShipsParams { building_id: number; page_number?: number;}
export interface ViewTravellingShipsResponse { ships_travelling: Ship[]; number_of_ships_travelling: number;}
export interface ViewOrbitingShipsParams { building_id: number; page_number?: number;}
export interface ViewOrbitingShipsResponse { ships: Ship[]; number_of_ships: number;}
export interface ViewForeignShipsParams { building_id: number; page_number?: number;}
export interface ViewForeignShipsResponse { ships: Ship[]; number_of_ships: number;}
export type ShipPoint = { id: number; type: 'body' | 'star'; name: string; x: number; y: number; empire?: { id: number; name: string };};
export interface GetFleetForParams { from_body_id: number; target: Target;}
export interface GetFleetForResponse { ships: Array<{ type: string; type_human: string; speed: number; stealth: number; combat: number; name: string; hold_size: number; quantity: number; estimated_travel_time: number; }>;}
export interface GetShipsForParams { from_body_id: number; target: Target;}
export interface GetShipsForResponse { incoming: Ship[]; available: Ship[]; unavailable: Array<{ reason: [number, string]; ship: Ship }>; orbiting: Ship[]; mining_platforms?: Array<{ empire_id: number; empire_name: string }>; fleet_send_limit: number;}
export interface SendShipTypesParams { from_body_id: number; target: Target; types: Array<{ type: string; speed?: number; stealth?: number; combat?: number; quantity: number; }>; arrival: { day: number; hour: number; minute: number; second: number } | { earliest: 1 };}
export interface SendShipTypesResponse { ships: Array<{ type: string; type_human: string; speed: number; stealth: number; combat: number; quantity: number; }>;}
export interface SendFleetParams { ship_ids: number[]; target: Target; set_speed?: number;}
export interface SendFleetResponse { // TODO - I don't think this is right but it's outside of what I'm testing right now fleet: Ship[];}
export interface RecallShipParams { building_id: number; ship_id: number;}
export interface RecallShipResponse { ship: Ship;}
export interface RecallAllParams { building_id: number;}
export interface RecallAllResponse { ships: Ship[];}
export interface NameShipParams { building_id: number; ship_id: number; name: string;}
export interface NameShipResponse {}
export interface ScuttleShipParams { building_id: number; ship_id: number;}
export interface ScuttleShipResponse {}
export interface MassScuttleShipParams { building_id: number; ship_ids: number[];}
export interface MassScuttleShipResponse {}
export type Spy = { id: number; level: number; name: string; assigned_to?: { body_id: number; name: string };};
export interface PrepareSendSpiesParams { on_body_id: number; to_body_id: number;}
export interface PrepareSendSpiesResponse { ships: Ship[]; spies: Spy[];}
export interface SendSpiesParams { on_body_id: number; to_body_id: number; ship_id: number; spy_ids: number[];}
export interface SendSpiesResponse { ship: Ship; spies_sent: number[]; spies_not_sent: number[];}
export interface PrepareFetchSpiesParams { on_body_id: number; to_body_id: number;}
export interface PrepareFetchSpiesResponse { ships: Ship[]; spies: Spy[];}
export interface FetchSpiesParams { on_body_id: number; to_body_id: number; ship_id: number; spy_ids: number[];}
export interface FetchSpiesResponse { ship: Ship;}
export interface ViewBattleLogsParams { building_id: number; page_number?: number;}
export interface ViewBattleLogsResponse { battle_log: Array<{ date: ServerDate; attacking_body: string; attacking_empire: string; attacking_unit: string; defending_body: string; defending_empire: string; defending_unit: string; victory_to: 'attacker' | 'defender'; }>; number_of_logs: number;}
export interface SendShipParams { ship_id: number; target: Target;}
export interface SendShipResponse { // "id" : "id-goes-here", // "quantity" : 1, // "task" : "Travelling", // "details" { // "name" : "P13", // "mark" : "A3123AB8ED", // "type_human" : "Probe", // "type" : "probe", // "speed" : "1200", // "stealth" : "0", // "combat" : "0", // "hold_size" : "0", // "berth_level" : "1", // "date_started" : "01 31 2010 13:09:05 +0600", // "date_available" : "02 01 2010 10:08:33 +0600", // "max_occupants" : "0", // "payload" : "{}", // "can_scuttle" : "0", // "can_recall" : "0", // }, // "date_arrives" : "02 01 2010 10:08:33 +0600", // "from" : { // "id" : "id-goes-here", // "type" : "body", // "name" : "Earth", // "owner" : "Allied", // "empire" : { // "id" : "id-goes-here", // "name" : "Earthlings" // } // }, // "to" : { // "id" : "id-goes-here", // "type" : "star", // "name" : "Sol", // }}