/**
 * Golden-image bake recipe.
 *
 * Produces the bash script Packer (or a manual snapshot run) executes on a base
 * Ubuntu box to pre-install the full ts-cloud stack (nginx, php-fpm, Composer,
 * services, hardening). The box is then snapshotted into a Hetzner snapshot /
 * AWS AMI and referenced via `compute.image` + `compute.bakedImage: true`, so
 * production boots are near-instant.
 *
 * Because it reuses {@link buildComputeProvisionScripts} + the shared
 * {@link buildUbuntuBootstrapScript}, a baked image and a cold boot install the
 * exact same stack — there is no separate, drift-prone image definition.
 */
import type { CloudConfig } from '@ts-cloud/core';
export interface ImageRecipeOptions {
    /**
     * Exclude per-app/per-deploy state from the image so it stays generic and
     * reusable across projects: SSH keys, the app database creation, and
     * scheduled backups are applied at boot/deploy instead of baked in.
     * @default true
     */
    generic?: boolean;
    /**
     * Append an image-minimization pass (clear apt/composer caches, logs, tmp;
     * reset machine-id + cloud-init so clones boot fresh; trim free space). Keeps
     * the published snapshot/AMI as small as possible. @default true
     */
    optimize?: boolean;
}
/**
 * Image-minimization commands appended after provisioning so the published
 * snapshot/AMI is as small as possible. Safe to run at the end of a bake (the
 * box is snapshotted immediately after).
 */
export declare function buildImageCleanupScript(): string[];
/**
 * Build the bake recipe (a bash script) for a config. Runs the full
 * provisioning with `baked: false` so everything is installed into the image.
 */
export declare function buildImageRecipe(config: CloudConfig, options?: ImageRecipeOptions): string;
