import { type GameSaveFile } from './save.js'; import type { RandomGeneratorState } from '@quake2ts/shared'; export type JsonObject = Record; export interface RereleaseGameSave { readonly saveVersion: number; readonly game: JsonObject & { readonly maxclients?: number; }; readonly clients: readonly JsonObject[]; } export interface RereleaseLevelSave { readonly saveVersion: number; readonly level: JsonObject; readonly entities: ReadonlyMap; } export type RereleaseSave = RereleaseGameSave | RereleaseLevelSave; export interface RereleaseSaveSummary { readonly version: number; readonly kind: 'game' | 'level'; readonly maxClients?: number; readonly clientCount?: number; readonly entityCount?: number; readonly highestEntityIndex?: number; } export interface RereleaseLevelSaveJson { readonly save_version: number; readonly level: JsonObject; readonly entities: Record; } export interface RereleaseGameSaveJson { readonly save_version: number; readonly game: JsonObject; readonly clients: readonly JsonObject[]; } export type RereleaseSaveJson = RereleaseLevelSaveJson | RereleaseGameSaveJson; export declare function parseRereleaseSave(raw: unknown): RereleaseSave; export declare function summarizeRereleaseSave(raw: unknown): RereleaseSaveSummary; export interface RereleaseImportOptions { readonly timestamp?: number; readonly defaultDifficulty?: number; readonly defaultPlaytimeSeconds?: number; readonly rngState?: RandomGeneratorState; readonly configstrings?: readonly string[]; readonly gameState?: Record; } export declare function convertRereleaseLevelToGameSave(save: RereleaseLevelSave, options?: RereleaseImportOptions): GameSaveFile; export declare function convertRereleaseSaveToGameSave(save: RereleaseSave, options?: RereleaseImportOptions): GameSaveFile; export declare function convertGameSaveToRereleaseLevel(save: GameSaveFile): RereleaseLevelSave; export declare function serializeRereleaseSave(save: RereleaseSave): RereleaseSaveJson; //# sourceMappingURL=rerelease.d.ts.map