/** One write request the dev save endpoint accepts: a scene document or tunable deltas. */ export type SaveEndpointRequest = { kind: "editor-document"; gameId: string; json: string; } | { kind: "tunables"; gameId: string; deltas: readonly { table: string; key: string; value: unknown; }[]; }; /** Result envelope the dev save endpoint returns for every write request. */ export interface SaveEndpointResponse { ok: boolean; path?: string; applied?: number; skipped?: readonly { table: string; key: string; reason: string; }[]; error?: string; } /** Where dev-time saves land: the endpoint URL plus the Games/ directory it targets. */ export interface SaveEndpointInfo { url: string; gameId: string; } /** True once a bundler or Node marks the build as production — the signal * `installSaveEndpoint` refuses to run under, even if a caller forgot its own * `import.meta.env.DEV` guard. * @internal */ export declare function isProductionEnvironment(): boolean; /** Publishes the dev-server save endpoint so editor and devtools UIs show Save buttons. * No-ops in a production build even if the caller forgot its own DEV guard. * @internal */ export declare function installSaveEndpoint(url: string, gameId: string): () => void; /** Returns the installed dev save endpoint, or null when saves cannot reach disk. * @internal */ export declare function getSaveEndpoint(): SaveEndpointInfo | null;