import { ClassConstructor } from 'class-transformer';
export { BUILTIN_NOTIFICATION_TRANSPORT_ENV, parseNotificationTransports, validateBuiltinNotificationTransportEnv, } from './notification-env.validation';
export declare enum Environment {
    Local = "local",
    Development = "dev",
    Production = "prod",
    Staging = "stg"
}
export declare class EnvironmentVariables {
    NODE_ENV: Environment;
    APP_NAME: string;
    APP_PORT: number;
    EVENT_SOURCE_DISABLED: boolean;
    LOG_LEVEL: string;
    DYNAMODB_ENDPOINT: string;
    DYNAMODB_REGION: string;
    ATTRIBUTE_LIMIT_SIZE: number;
    S3_ENDPOINT: string;
    S3_REGION: string;
    S3_BUCKET_NAME: string;
    SFN_ENDPOINT: string;
    SFN_REGION: string;
    SFN_COMMAND_ARN: string;
    SNS_ENDPOINT: string;
    SNS_REGION: string;
    /**
     * Comma-separated list of active notification transport names.
     * Supported built-in values: 'appsync-graphql' | 'appsync-event'
     * Defaults to 'appsync-graphql' when not set.
     *
     * Examples:
     *   NOTIFICATION_TRANSPORTS=appsync-graphql
     *   NOTIFICATION_TRANSPORTS=appsync-event
     *   NOTIFICATION_TRANSPORTS=appsync-graphql,appsync-event
     */
    NOTIFICATION_TRANSPORTS: string;
    APPSYNC_ENDPOINT: string;
    APPSYNC_EVENTS_ENDPOINT: string;
    /**
     * Channel namespace name — must match the pre-created namespace in the
     * AppSync Event API (segment 1 of every channel path).
     * Defaults to 'default'.
     */
    APPSYNC_EVENTS_NAMESPACE: string;
    SES_ENDPOINT: string;
    SES_REGION: string;
    SES_FROM_EMAIL: string;
    REQUEST_BODY_SIZE_LIMIT: string;
    RYW_SESSION_TTL_MINUTES: number;
}
export declare function getValidateConfig<T extends EnvironmentVariables>(cls?: ClassConstructor<T>): (config: Record<string, unknown>) => EnvironmentVariables;
