export interface AddSiteConfigInput {
    configText: string;
    name: string;
    root: string;
    domain?: string;
    path?: string;
    deploy?: 'bucket' | 'server';
    build?: string;
    start?: string;
    port?: number;
    type?: string;
    pathRewriteStyle?: 'directory' | 'flat';
    /** Per-site environment variables. */
    env?: Record<string, string>;
    /** TLS: `false` to disable, or `{ provider }` (e.g. letsencrypt). */
    ssl?: boolean | {
        provider?: string;
    };
}
export declare function addSiteToCloudConfig(input: AddSiteConfigInput): string;
export interface RemoveSiteInput {
    configText: string;
    name: string;
}
/** Remove a site (its whole `name: { ... }` entry) from the sites block. */
export declare function removeSiteFromCloudConfig(input: RemoveSiteInput): string;
export interface UpdateSiteInput extends Omit<AddSiteConfigInput, 'configText'> {
    configText: string;
}
/**
 * Replace a site's definition with a regenerated one carrying the merged fields.
 * Implemented as remove + add so it reuses the validated insert path (the site
 * moves to the end of the sites block, which keeps the config valid).
 */
export declare function updateSiteInCloudConfig(input: UpdateSiteInput): string;
/**
 * Set (or insert) a single property on a site, preserving every other field —
 * the safe path for editing `ssl`/`env` on a site that may also carry queues,
 * auth, etc. `valueText` is raw TS (use {@link renderSslValue}/{@link renderEnvValue}).
 */
export declare function setSitePropertyInCloudConfig(input: {
    configText: string;
    siteName: string;
    key: string;
    valueText: string;
}): string;
export declare function renderSslValue(ssl: boolean | {
    provider?: string;
}): string;
export declare function renderStringValue(value: string): string;
export declare function renderEnvValue(env: Record<string, string>): string;
/** A validated hostname (letters, digits, dots, hyphens; at least one dot). */
export declare function isValidHostname(value: string): boolean;
/** Render a site's `aliases` array (additional nginx `server_name` hostnames). */
export declare function renderAliasesValue(aliases: string[]): string;
/** Render a site's `redirects` map (`from` path/host → `to` URL). Both are quoted strings. */
export declare function renderRedirectsValue(redirects: Record<string, string>): string;
export declare function renderSiteSnippet(input: Omit<AddSiteConfigInput, 'configText'>): string;
