import { type Environment } from '../config/environments.js'; import { type CreatorExport } from '../scaffold/export-zip.js'; /** * Which api-server an export's assets say the game belongs to, or null when they do not say. * * The two suffixes are the environment classification this repo already uses for asset hosts — * `bitmagic.ai` is prod (`mini.bitmagic.ai`, `forged-assets.bitmagic.ai`) and `bitmagic.cloud` is * dev (`beta.portal.bitmagic.cloud`, the sandbox mesh hosts). See `mobile/asset-hosts.ts`, which * classifies the same URLs for the LAN bridge, and `rehost-imported-assets.ts` in game-play-agent. * * Null covers a game whose assets are all on neither — a brand-new game with nothing generated * yet, or one built entirely from a creator's own endpoints. No claim is the right answer there. */ export declare function exportHomeEnvironment(source: CreatorExport): 'prod' | 'dev' | null; /** * The refusal when the export's api-server is not the one this project is being created on, or * null when there is no disagreement to report. * * A refusal rather than a warning because the project it would otherwise produce is the worst * kind: it builds, it runs, and then every command that talks to a server reports the game as not * found or not owned — which says nothing about the real cause, and arrives long after the import * has scrolled off the screen. Both escapes are named in the message, and `--new-game` skips the * check entirely at the call site, because a fork adopts no id and so cannot be pointed at the * wrong server. * * `local` is exempt: a localhost api-server's rows are whatever its operator seeded, so neither * agreement nor disagreement with a hosted asset URL means anything. */ export declare function environmentMismatchWarning(source: CreatorExport, environment: Environment): string | null; export declare const importCommand: import("citty").CommandDef<{ readonly zip: { readonly type: "positional"; readonly required: true; readonly description: "The .zip downloaded from the Creator's \"Export game\" button."; }; readonly dir: { readonly type: "positional"; readonly required: false; readonly description: "Directory to create the project in. Defaults to ./."; }; readonly name: { readonly type: "string"; readonly description: "Project name for package.json. Defaults to the directory name."; }; readonly agent: { readonly type: "string"; readonly description: string; }; readonly 'new-game': { readonly type: "boolean"; readonly description: string; }; readonly 'no-rehost': { readonly type: "boolean"; readonly description: string; }; readonly env: { readonly type: "string"; readonly description: "Environment (dev, prod, local)."; }; readonly force: { readonly type: "boolean"; readonly description: "Import into a non-empty directory."; }; readonly json: { readonly type: "boolean"; readonly description: "Print the result as JSON on stdout; all progress goes to stderr."; }; }>;