import type { components } from './schema'; export interface AddToMarketParams { building_id: number; offer: Array<{ type?: 'glyph' | 'plan' | 'prisoner' | 'ship'; name?: string; quantity?: number; plan_type?: string; level?: number; extra_build_level?: number; prisoner_id?: number; ship_id?: number; }>; ask: number; options?: { ship_id?: number }; } export interface AddToMarketResponse { trade_id: number; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface ViewMarketParams { building_id: number; page_number?: number; filter?: 'food' | 'ore' | 'water' | 'waste' | 'energy' | 'glyph' | 'prisoner' | 'ship' | 'plan'; } /** * A trade listing as returned by `view_market` / `view_my_market`. `offer` is a * list of human-readable strings ("10,000 apple", "level 5 Halls of Vrbansk"), * *not* the typed `tradeableItem` objects `add_to_market` takes. */ export interface MarketTrade { id: number; date_offered: string; ask: number; offer: string[]; empire?: { id?: number; name?: string }; body?: { id?: number; name?: string }; transmitter_delivery_time?: number; } export interface ViewMarketResponse { trades: MarketTrade[]; /** Total listings across all pages. */ trade_count: number; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface ViewMyMarketParams { building_id: number; page_number?: number; } export interface ViewMyMarketResponse { trades: MarketTrade[]; /** Total listings across all pages. */ trade_count: number; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface AcceptFromMarketParams { building_id: number; trade_id: number; } export interface AcceptFromMarketResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface WithdrawFromMarketParams { building_id: number; trade_id: number; } export interface WithdrawFromMarketResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface PushItemsParams { building_id: number; target_id: number; items: Array<{ type?: 'glyph' | 'plan' | 'prisoner' | 'ship'; name?: string; quantity?: number; plan_type?: string; level?: number; extra_build_level?: number; prisoner_id?: number; ship_id?: number; }>; options?: { ship_id?: number; stay?: 1 | 0 }; } export interface PushItemsResponse { ship: { name?: string; type?: string; date_arrives?: string }; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetStoredResourcesParams { building_id: number; } export interface GetStoredResourcesResponse { resources: Record; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetTradeShipsParams { building_id: number; target_body_id?: number; } export interface GetTradeShipsResponse { ships: Array<{ id?: number; name?: string; type?: string; hold_size?: number; speed?: number; estimated_travel_time?: number; }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetShipsParams { building_id: number; } export interface GetShipsResponse { ships: Array<{ id?: number; name?: string; type?: string; hold_size?: number; speed?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetWasteShipsParams { building_id: number; } export interface GetWasteShipsResponse { ships: Array<{ id?: number; name?: string; task?: string; speed?: number; hold_size?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetSupplyShipsParams { building_id: number; } export interface GetSupplyShipsResponse { ships: Array<{ id?: number; name?: string; task?: string; speed?: number; hold_size?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface ViewSupplyChainsParams { building_id: number; } export interface ViewSupplyChainsResponse { supply_chains: Array<{ id?: number; resource_type?: string; resource_hour?: number; percent_transferred?: number; stalled?: 1 | 0; }>; max_supply_chains: number; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface CreateSupplyChainParams { building_id: number; target_id: number; resource_type: string; resource_hour: number; } export interface CreateSupplyChainResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface UpdateSupplyChainParams { building_id: number; supply_chain_id: number; resource_type: string; resource_hour: number; } export interface UpdateSupplyChainResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface DeleteSupplyChainParams { building_id: number; supply_chain_id: number; } export interface DeleteSupplyChainResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface AddSupplyShipToFleetParams { building_id: number; ship_id: number; } export interface AddSupplyShipToFleetResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface RemoveSupplyShipFromFleetParams { building_id: number; ship_id: number; } export interface RemoveSupplyShipFromFleetResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface ViewWasteChainsParams { building_id: number; } export interface ViewWasteChainsResponse { waste_chain: Array<{ id?: number; waste_hour?: number; percent_transferred?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface UpdateWasteChainParams { building_id: number; waste_chain_id: number; waste_hour: number; } export interface UpdateWasteChainResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface AddWasteShipToFleetParams { building_id: number; ship_id: number; } export interface AddWasteShipToFleetResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface RemoveWasteShipFromFleetParams { building_id: number; ship_id: number; } export interface RemoveWasteShipFromFleetResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetPrisonersParams { building_id: number; } export interface GetPrisonersResponse { prisoners: Array<{ id?: number; name?: string; level?: number; sentence_expires?: string }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetPlanSummaryParams { building_id: number; } export interface GetPlanSummaryResponse { plans: Array<{ name?: string; level?: number; extra_build_level?: number; quantity?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface GetGlyphSummaryParams { building_id: number; } export interface GetGlyphSummaryResponse { glyphs: Array<{ type?: string; quantity?: number }>; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface ReportAbuseParams { building_id: number; trade_id: number; } export interface ReportAbuseResponse { status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; }