import { Themes } from "@/data/themes"; import { DecimalSource } from "@/lib/break_eternity"; import Decimal from "@/util/bignum"; import { BoardData } from "./features/board"; import { MilestoneDisplay } from "./features/milestone"; import { State } from "./state"; export interface ModSaveData { active?: string; saves?: string[]; } export interface PlayerData { id: string; devSpeed?: DecimalSource; points: Decimal; oomps: Decimal; oompsMag: number; name: string; tabs: Array<string>; time: number; autosave: boolean; offlineProd: boolean; offlineTime: Decimal | null; timePlayed: Decimal; keepGoing: boolean; lastTenTicks: Array<number>; showTPS: boolean; msDisplay: MilestoneDisplay; hideChallenges: boolean; theme: Themes; subtabs: { [index: string]: { mainTabs?: string; [index: string]: string; }; }; minimized: Record<string, boolean>; modID: string; modVersion: string; justLoaded: boolean; hasNaN: boolean; NaNPath?: Array<string>; NaNReceiver?: Record<string, unknown> | null; importing: ImportingStatus; saveToImport: string; saveToExport: string; layers: Record<string, LayerSaveData>; [index: string]: unknown; } export interface LayerSaveData { points: Decimal; unlocked: boolean; unlockOrder?: number; forceTooltip?: boolean; resetTime: Decimal; upgrades: Array<string | number>; achievements: Array<string | number>; milestones: Array<string | number>; infoboxes: Record<string, boolean>; buyables: Record<string, Decimal>; clickables: Record<string, State>; challenges: Record<string, Decimal>; grids: Record<string, Record<string, State>>; boards: Record<string, BoardData>; confirmRespecBuyables: boolean; [index: string]: unknown; }