import { z } from 'zod';
export declare const AwsRegionSchema: z.ZodEnum<{
    "us-east-1": "us-east-1";
    "us-east-2": "us-east-2";
    "us-west-1": "us-west-1";
    "us-west-2": "us-west-2";
    "eu-west-1": "eu-west-1";
    "eu-west-2": "eu-west-2";
    "eu-west-3": "eu-west-3";
    "eu-central-1": "eu-central-1";
    "eu-central-2": "eu-central-2";
    "eu-north-1": "eu-north-1";
    "eu-south-1": "eu-south-1";
    "eu-south-2": "eu-south-2";
    "ap-southeast-1": "ap-southeast-1";
    "ap-southeast-2": "ap-southeast-2";
    "ap-southeast-3": "ap-southeast-3";
    "ap-south-1": "ap-south-1";
    "ap-south-2": "ap-south-2";
    "ap-northeast-1": "ap-northeast-1";
    "ap-northeast-2": "ap-northeast-2";
    "ap-northeast-3": "ap-northeast-3";
    "ap-east-1": "ap-east-1";
    "sa-east-1": "sa-east-1";
    "ca-central-1": "ca-central-1";
    "me-south-1": "me-south-1";
    "me-central-1": "me-central-1";
    "af-south-1": "af-south-1";
}>;
/**
 * Stage configuration for deployment environments.
 *
 * Defines environment-specific settings for deploying Runtime Web applications to AWS.
 * Each stage represents a separate deployment environment (development, staging, production)
 * with its own AWS resources and configuration.
 *
 * @example
 * ```typescript
 * const devStage: StageConfig = {
 *   name: 'dev',
 *   awsRegion: 'us-east-1',
 *   awsProfile: 'my-dev-profile',
 *   domain: 'example.com',
 *   subdomain: 'dev'
 * };
 * ```
 */
export declare const StageConfigSchema: z.ZodObject<{
    name: z.ZodEnum<{
        dev: "dev";
        staging: "staging";
        prod: "prod";
    }>;
    awsRegion: z.ZodString;
    awsProfile: z.ZodOptional<z.ZodString>;
    domain: z.ZodOptional<z.ZodString>;
    subdomain: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Type definition for stage configuration.
 *
 * Inferred from StageConfigSchema for type-safe configuration objects.
 */
export type StageConfig = z.infer<typeof StageConfigSchema>;
/**
 * Path configuration for project structure.
 *
 * Defines the directory layout and entry points for your Runtime Web application.
 * These paths are used by the build system, development server, and deployment process.
 * All paths are relative to the project root directory.
 *
 * @example
 * ```typescript
 * const paths: PathsConfig = {
 *   srcDir: 'src',
 *   reactEntry: 'src/index.tsx',
 *   outDir: 'out/dist',
 *   cdkDir: 'infrastructure'
 * };
 * ```
 */
export declare const PathsConfigSchema: z.ZodObject<{
    srcDir: z.ZodDefault<z.ZodString>;
    reactEntry: z.ZodDefault<z.ZodString>;
    outDir: z.ZodDefault<z.ZodString>;
    cdkDir: z.ZodOptional<z.ZodDefault<z.ZodString>>;
}, z.core.$strip>;
/**
 * Type definition for path configuration.
 *
 * Inferred from PathsConfigSchema for type-safe configuration objects.
 */
export type PathsConfig = z.infer<typeof PathsConfigSchema>;
/**
 * Live Dev session configuration.
 */
export declare const RuntimeAwakeSessionConfigSchema: z.ZodObject<{
    heartbeatIntervalMs: z.ZodDefault<z.ZodNumber>;
    timeoutMs: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
/**
 * Live Dev file watch configuration.
 */
export declare const RuntimeAwakeWatchConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
    ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
    debounceMs: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
/**
 * Live Dev debug configuration.
 */
export declare const RuntimeAwakeDebugConfigSchema: z.ZodObject<{
    inspectorPort: z.ZodDefault<z.ZodNumber>;
    logLevel: z.ZodDefault<z.ZodEnum<{
        debug: "debug";
        info: "info";
        error: "error";
        warn: "warn";
    }>>;
    maskSecrets: z.ZodDefault<z.ZodBoolean>;
    fullPayloadLogging: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Live Dev VPC Agent configuration for accessing private resources.
 */
export declare const RuntimeAwakeVpcAgentConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    url: z.ZodOptional<z.ZodString>;
    proxyHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
    allowedPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
}, z.core.$strip>;
/**
 * Awake Lambda Development configuration.
 *
 * Configuration for Awake Lambda Development mode, which enables debugging
 * real AWS Lambda invocations on your local machine.
 *
 * @example
 * ```typescript
 * const awake: RuntimeAwakeConfig = {
 *   enabled: true,
 *   fallbackMode: 'execute',
 *   session: { heartbeatIntervalMs: 30000, timeoutMs: 60000 },
 *   watch: { enabled: true, paths: ['./src'] },
 *   debug: { inspectorPort: 9229, logLevel: 'info' },
 * };
 * ```
 */
export declare const RuntimeAwakeConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    devId: z.ZodOptional<z.ZodString>;
    fallbackMode: z.ZodDefault<z.ZodEnum<{
        error: "error";
        execute: "execute";
    }>>;
    runtimeAwakeStackName: z.ZodOptional<z.ZodString>;
    allowedDevelopers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    sessionTtlSeconds: z.ZodOptional<z.ZodNumber>;
    payloadTtlDays: z.ZodOptional<z.ZodNumber>;
    session: z.ZodOptional<z.ZodObject<{
        heartbeatIntervalMs: z.ZodDefault<z.ZodNumber>;
        timeoutMs: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    watch: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
        ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
        debounceMs: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    debug: z.ZodOptional<z.ZodObject<{
        inspectorPort: z.ZodDefault<z.ZodNumber>;
        logLevel: z.ZodDefault<z.ZodEnum<{
            debug: "debug";
            info: "info";
            error: "error";
            warn: "warn";
        }>>;
        maskSecrets: z.ZodDefault<z.ZodBoolean>;
        fullPayloadLogging: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    vpcAgent: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        url: z.ZodOptional<z.ZodString>;
        proxyHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
        allowedPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
/**
 * Type definition for Live Dev configuration.
 *
 * Inferred from RuntimeAwakeConfigSchema for type-safe configuration objects.
 */
export type RuntimeAwakeConfig = z.infer<typeof RuntimeAwakeConfigSchema>;
/**
 * Feature flags configuration.
 *
 * Optional feature toggles for enabling or disabling specific Runtime Web functionality.
 * These flags control which Lambda handlers are deployed and which features are
 * available in your application.
 *
 * @example
 * ```typescript
 * const features: FeaturesConfig = {
 *   enableSeo: true,
 *   enableManifest: true,
 *   enableWarmup: false,
 *   clearCacheOnDeploy: true
 * };
 * ```
 */
export declare const FeaturesConfigSchema: z.ZodObject<{
    enableSeo: z.ZodDefault<z.ZodBoolean>;
    enableManifest: z.ZodDefault<z.ZodBoolean>;
    enableWarmup: z.ZodDefault<z.ZodBoolean>;
    clearCacheOnDeploy: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Type definition for features configuration.
 *
 * Inferred from FeaturesConfigSchema for type-safe configuration objects.
 */
export type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;
/**
 * Main Runtime Web CLI configuration schema.
 *
 * The root configuration object for Runtime Web applications. This schema defines
 * all available configuration options for the CLI tool, including project metadata,
 * deployment stages, file paths, infrastructure mode, and feature flags.
 *
 * Configuration files should be named `runtime.config.ts`
 * and placed in the project root directory.
 *
 * @example
 * ```typescript
 * // runtime.config.ts
 * import { RuntimeConfig } from '@worktif/runtime';
 *
 * const config: RuntimeConfig = {
 *   projectName: 'my-app',
 *   stages: [
 *     {
 *       name: 'dev',
 *       awsRegion: 'us-east-1',
 *       awsProfile: 'dev-profile'
 *     },
 *     {
 *       name: 'prod',
 *       awsRegion: 'us-west-2',
 *       domain: 'example.com',
 *       subdomain: 'www'
 *     }
 *   ],
 *   paths: {
 *     srcDir: 'src',
 *     reactEntry: 'src/index.tsx',
 *     outDir: 'out/dist'
 *   },
 *   infraMode: 'cdk',
 *   features: {
 *     enableSeo: true,
 *     enableManifest: true,
 *     enableWarmup: false,
 *     clearCacheOnDeploy: true
 *   }
 * };
 *
 * export default config;
 * ```
 */
export declare const RuntimeConfigSchema: z.ZodObject<{
    projectName: z.ZodString;
    stages: z.ZodArray<z.ZodObject<{
        name: z.ZodEnum<{
            dev: "dev";
            staging: "staging";
            prod: "prod";
        }>;
        awsRegion: z.ZodString;
        awsProfile: z.ZodOptional<z.ZodString>;
        domain: z.ZodOptional<z.ZodString>;
        subdomain: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    paths: z.ZodObject<{
        srcDir: z.ZodDefault<z.ZodString>;
        reactEntry: z.ZodDefault<z.ZodString>;
        outDir: z.ZodDefault<z.ZodString>;
        cdkDir: z.ZodOptional<z.ZodDefault<z.ZodString>>;
    }, z.core.$strip>;
    infraMode: z.ZodDefault<z.ZodEnum<{
        cdk: "cdk";
        auto: "auto";
    }>>;
    features: z.ZodOptional<z.ZodObject<{
        enableSeo: z.ZodDefault<z.ZodBoolean>;
        enableManifest: z.ZodDefault<z.ZodBoolean>;
        enableWarmup: z.ZodDefault<z.ZodBoolean>;
        clearCacheOnDeploy: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    awake: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        devId: z.ZodOptional<z.ZodString>;
        fallbackMode: z.ZodDefault<z.ZodEnum<{
            error: "error";
            execute: "execute";
        }>>;
        runtimeAwakeStackName: z.ZodOptional<z.ZodString>;
        allowedDevelopers: z.ZodOptional<z.ZodArray<z.ZodString>>;
        sessionTtlSeconds: z.ZodOptional<z.ZodNumber>;
        payloadTtlDays: z.ZodOptional<z.ZodNumber>;
        session: z.ZodOptional<z.ZodObject<{
            heartbeatIntervalMs: z.ZodDefault<z.ZodNumber>;
            timeoutMs: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        watch: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
            ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
            debounceMs: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        debug: z.ZodOptional<z.ZodObject<{
            inspectorPort: z.ZodDefault<z.ZodNumber>;
            logLevel: z.ZodDefault<z.ZodEnum<{
                debug: "debug";
                info: "info";
                error: "error";
                warn: "warn";
            }>>;
            maskSecrets: z.ZodDefault<z.ZodBoolean>;
            fullPayloadLogging: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        vpcAgent: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            url: z.ZodOptional<z.ZodString>;
            proxyHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
            allowedPorts: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
/**
 * Type definition for Runtime Web CLI configuration.
 *
 * Inferred from RuntimeConfigSchema for type-safe configuration objects.
 * Use this type when creating configuration files or working with configuration
 * objects in your application code.
 *
 * @example
 * ```typescript
 * import { RuntimeConfig } from '@worktif/runtime';
 *
 * const config: RuntimeConfig = {
 *   projectName: 'my-app',
 *   stages: [{ name: 'dev', awsRegion: 'us-east-1' }],
 *   paths: {
 *     srcDir: 'src',
 *     reactEntry: 'src/index.tsx',
 *     outDir: 'out/dist'
 *   },
 *   infraMode: 'cdk'
 * };
 * ```
 */
export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
/**
 * Default configuration values.
 *
 * Provides sensible defaults for all configuration options. These values are used
 * when a configuration file is missing or when specific options are omitted from
 * the user's configuration. The CLI will merge user-provided configuration with
 * these defaults to ensure all required fields are present.
 *
 * Default configuration includes:
 * - Project name: 'runtime-web-app'
 * - Single development stage in us-east-1
 * - Standard directory structure (src/, out/dist/)
 * - CDK infrastructure mode
 * - Manifest enabled, SEO and warmup disabled
 *
 * @example
 * ```typescript
 * import { DEFAULT_CLI_CONFIG } from '@worktif/runtime';
 *
 * // Merge user config with defaults
 * const config = { ...DEFAULT_CLI_CONFIG, ...userConfig };
 * ```
 */
export declare const DEFAULT_CLI_CONFIG: RuntimeConfig;
