import { PlatformInfo } from "../utils/os"; import { RequestStatus } from "../types/ipcEvents"; import { SavedGameResult, SavedGameMeta } from "../types/save"; import { CrashReport } from "../types/managers"; import { SavedGame } from "narraleaf-react"; export interface ClientAppConfiguration { recoveryCreationInterval: number; appErrorHandling: "terminate" | "raw" | "restart"; } export type AppInfo = { platform: PlatformInfo; isPackaged: boolean; crashReport: CrashReport | null; config: ClientAppConfiguration; }; declare global { interface Window { NarraLeaf: { getPlatform(): Promise; app: { reload(): void; terminate(err: string | Error | null): void; requestMain(event: string, ...args: Response extends void ? [payload?: Request] : [payload: Request]): Promise>; }; game: { save: { save(gameData: SavedGame, id: string, preview?: string): Promise>; quickSave(gameData: SavedGame): Promise>; createRecovery(gameData: SavedGame): Promise>; read(id: string): Promise>; list(): Promise>; }; }; }; } } export {};