/**
 * The canonical Ubuntu provisioning recipe for a ts-cloud compute box.
 *
 * This single bash builder is used in three places so there is exactly one
 * source of truth (and zero per-provider divergence):
 *  - **cold boot** — Hetzner cloud-init / AWS EC2 UserData run it on first boot.
 *  - **image bake** — the golden-image pipeline runs it to pre-install the
 *    stack, then snapshots the box into a Hetzner snapshot / AWS AMI.
 *  - **baked boot** — when a box boots from a pre-provisioned image, pass
 *    `baked: true` to skip the install-heavy steps (apt/runtime/php/services)
 *    that are already in the image, keeping only cheap per-boot setup.
 *
 * Targets Ubuntu (apt) — Forge's platform — on every provider, so the apt
 * provisioning, nginx vhosts, php-fpm sockets, and deploy scripts are identical
 * for Hetzner and AWS.
 */
export interface UbuntuBootstrapOptions {
    runtime?: 'bun' | 'node' | 'deno' | 'php';
    runtimeVersion?: string;
    systemPackages?: string[];
    database?: 'sqlite' | 'mysql' | 'postgres';
    /**
     * Shell commands that install PHP-FPM + nginx + Composer, built by
     * {@link import('./php-provision').buildPhpProvisionScript}. Spliced
     * after the base packages so Laravel/PHP sites have their runtime ready
     * before any deploy. Used when `runtime === 'php'` (or `compute.php` is set).
     */
    phpProvision?: string[];
    /**
     * Shell commands that install on-box services (database engine, redis,
     * memcached, meilisearch) and create the app database + user, built by
     * {@link import('./db-provision')}. Spliced after the PHP provision.
     */
    servicesProvision?: string[];
    caddyfile?: string;
    /**
     * Shell commands that install + start the rpx reverse-proxy gateway, built by
     * {@link import('./rpx-gateway').buildRpxProvisionScript}. Appended
     * after the runtime is installed so `bun add -g @stacksjs/rpx` works. Mutually
     * exclusive with `caddyfile` (the box runs one gateway).
     */
    rpxProvision?: string[];
    /**
     * The box boots from a pre-provisioned (golden) image that already has the
     * runtime + PHP + services + base packages installed. Skip those install
     * steps — only do the cheap per-boot setup (dirs, gateway config). Makes
     * boot near-instant. @default false
     */
    baked?: boolean;
    /**
     * Swapfile size in GB, from `compute.swapGb`. Small shared boxes run several
     * tenants + services with no swap at all, so a memory spike (deploy, bun
     * install, on-box builds) leaves the kernel OOM killer picking victims
     * box-wide. Provisioned at the very top of the bootstrap — BEFORE the
     * memory-hungry installs — on cold and baked boots alike (a golden image
     * deliberately bakes no swap; see the image recipe). Idempotent: skipped
     * when `/swapfile` is already active. `0` disables. @default 2
     */
    swapGb?: number;
}
/**
 * Build the Ubuntu provisioning bash script (with `#!/bin/bash` shebang).
 */
export declare function buildUbuntuBootstrapScript(options?: UbuntuBootstrapOptions): string;
