import type { PlayerProfileRecord } from "./hostPersistence.js"; import type { RuntimePlayerRow } from "./snapshot.js"; export type PersistenceScope = "run" | "meta"; export interface ScopeSchema { run: readonly string[]; } export interface ScopedState> { meta: Partial; run: Partial; } export declare function partitionScopes>(state: T, schema: ScopeSchema): ScopedState; export declare function resetRun>(scoped: ScopedState): ScopedState; export declare function mergeScopes>(scoped: ScopedState): Partial; export declare function clearRunFields(player: RuntimePlayerRow, runFields: readonly string[]): RuntimePlayerRow; export declare function applyRunReset(profile: PlayerProfileRecord, runFields: readonly string[], now: number): PlayerProfileRecord; export interface ScenarioReset { gameId: string; serverId?: string; wipeChunks?: boolean; wipeServerSession?: boolean; resetPlayers?: PersistenceScope | "none"; runFields?: readonly string[]; } export interface NormalizedScenarioReset { gameId: string; serverId: string | null; wipeChunks: boolean; wipeServerSession: boolean; resetPlayers: "run" | "none"; runFields: readonly string[]; } export declare function planScenarioReset(reset: ScenarioReset): NormalizedScenarioReset;