/**
 * Serialize the resolved cloud config into a self-contained module for the
 * dashboard to read on the box.
 *
 * Copying the project's `cloud.config.ts` verbatim does not work: a real config
 * imports things. Stacks' does
 * `import { servers } from '~/cloud/servers'` and `import { env } from
 * '@stacksjs/env'` — neither the path alias nor the package exists in the
 * dashboard's release dir, so the import would throw and the dashboard would
 * come up describing nothing.
 *
 * The deploy machine has already resolved the config to a plain object, so we
 * ship THAT as a literal. No imports, no aliases, nothing to resolve.
 *
 * Credentials are stripped on the way out (see {@link redactForDashboard}).
 */
import type { CloudConfig } from '@ts-cloud/core';
/**
 * Strip everything the dashboard does not need to read.
 *
 * Three rules:
 *
 * 1. **No credentials.** The Hetzner API token is the big one: it controls the
 *    whole cloud account (create and destroy any server), and unlike a site's
 *    own secrets it is otherwise NOT on the box at all. Putting it in the
 *    dashboard's release would turn a dashboard compromise into an account
 *    compromise. AWS credentials go for the same reason.
 *
 * 2. **Env keys, not env values.** The dashboard only ever displays which env
 *    vars a site defines, never their values — so ship the keys and blank the
 *    values. The running site has its own `.env` on the box regardless; there
 *    is no reason for a second copy to sit in the dashboard's directory.
 *
 * 3. **No local paths.** `stateDir` says where the operator's machine keeps
 *    ts-cloud state; it means nothing on the box, whose dashboard state lives
 *    in the release's `DASHBOARD_STATE_DIR` (the path the deploy preserves
 *    across releases via `sharedPaths`). Shipping it would move the box's users
 *    and session key outside that shared path and wipe them every deploy.
 */
export declare function redactForDashboard(config: CloudConfig): Record<string, any>;
/**
 * The `cloud.config.ts` module text shipped in the dashboard's release. Reads
 * as a plain literal so bun can import it on the box with nothing installed
 * beyond the ts-cloud package itself.
 */
export declare function serializeDashboardConfig(config: CloudConfig): string;
