/**
 * The baseline Laravel PHP extensions. pantry's `php.net` is a single source
 * build that already bundles these, so unlike apt there are no per-extension
 * packages to install — this list documents the expectation and is asserted
 * against `php -m` in tests.
 */
export declare const LARAVEL_PHP_EXTENSIONS: readonly string[];
export interface PhpProvisionOptions {
    /** PHP versions to install (first is the default). pantry runs one php-fpm. @default ['8.3'] */
    versions?: string[];
    /** Default PHP version. @default first of `versions` */
    default?: string;
    /** Extra extensions — informational; pantry's php build is fixed. */
    extensions?: string[];
    /** Install the nginx binary (the vhost/service is wired separately). @default true */
    installNginx?: boolean;
    /** Install Composer. @default true */
    installComposer?: boolean;
    /**
     * Apply production OPcache + php.ini tuning (Forge's "Optimize for
     * Production"). @default true
     */
    optimizeForProduction?: boolean;
    /** Extra `php.ini` directives merged on top of (or instead of) the tuning. */
    ini?: Record<string, string>;
}
/**
 * The production OPcache + runtime tuning Forge applies via "Optimize for
 * Production". Timestamp validation is off because every deploy restarts
 * php-fpm (so a fresh release is always recompiled); the larger buffers and
 * realpath cache cut per-request overhead.
 */
export declare const PRODUCTION_PHP_INI: Readonly<Record<string, string>>;
/** PHP-FPM listen address for nginx `fastcgi_pass` (pantry's php-fpm is TCP). */
export declare const PHP_FPM_LISTEN = "127.0.0.1:9074";
/**
 * php-fpm `fastcgi_pass` target. The `version` arg is accepted for API
 * compatibility with the old per-version unix sockets; pantry runs a single
 * php-fpm on {@link PHP_FPM_LISTEN}.
 */
export declare function phpFpmSocketPath(_version?: string): string;
/** Resolve the default PHP version from the requested set. */
export declare function resolveDefaultPhpVersion(options?: PhpProvisionOptions): string;
/** Resolve the effective php.ini directives for the given options. */
export declare function resolvePhpIni(options?: PhpProvisionOptions): Record<string, string>;
/**
 * Write a ts-cloud-managed `php.ini` drop-in with the resolved directives and
 * restart php-fpm so it takes effect. PHP's ini layout is discovered at runtime
 * via `php -i` (works regardless of pantry's compiled paths): the additional-ini
 * scan dir is used when present, otherwise a managed marker block is merged into
 * the loaded `php.ini`. Returns `[]` when there's nothing to set.
 */
export declare function buildPhpTuningScript(options?: PhpProvisionOptions): string[];
/**
 * Build the shell command lines that install PHP-FPM + Composer (+ the nginx
 * binary) via pantry, start php-fpm as a system service, and apply production
 * php.ini tuning. Assumes the pantry CLI is already bootstrapped (see
 * {@link import('./package-manager').buildPantryBootstrapScript}).
 */
export declare function buildPhpProvisionScript(options?: PhpProvisionOptions): string[];
