import type { components } from './schema'; import type { ViewResponse as BuildingViewResponse } from './building'; /** * The forge's task panel. Idle: `can: 1` plus `make_plan` / `split_plan` * option lists. Working: `can: 0` plus `seconds_remaining` / `working`. * `subsidy_cost` is always present. */ export interface ForgeTasks { can?: 1 | 0; subsidy_cost?: number; current_task?: string; seconds_remaining?: number; working?: string; make_plan?: Array<{ name?: string; max_level?: number; class?: string; reset_sec_per_level?: number; }>; split_plan?: Array<{ name?: string; class?: string; level?: number; extra_build_level?: number; quantity?: number; fail_chance?: number; reset_seconds?: number; }>; } export interface ViewResponse extends BuildingViewResponse { tasks: ForgeTasks; } export interface MakePlanParams { building_id: number; plan_class: string; level: number; } export interface MakePlanResponse { building: components['schemas']['building']; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface SplitPlanParams { building_id: number; plan_class: string; level: number; extra_build_level?: number; quantity: number; } export interface SplitPlanResponse { building: components['schemas']['building']; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; } export interface SubsidizeParams { building_id: number; } export interface SubsidizeResponse { building: components['schemas']['building']; status: { server: components['schemas']['server_status']; empire?: components['schemas']['empire_status']; body?: components['schemas']['body_status']; }; }