/**
 * Environment detection and validation utilities
 */
import { z } from 'zod';
/**
 * Environment variable schema with validation
 */
export declare const EnvVarSchema: z.ZodObject<{
    NODE_ENV: z.ZodOptional<z.ZodEnum<["development", "staging", "production", "test"]>>;
    TESTDINO_API_URL: z.ZodOptional<z.ZodString>;
    TESTDINO_TOKEN: z.ZodOptional<z.ZodString>;
    TESTDINO_UPLOAD_HTML: z.ZodOptional<z.ZodString>;
    TESTDINO_UPLOAD_TRACES: z.ZodOptional<z.ZodString>;
    TESTDINO_VERBOSE: z.ZodOptional<z.ZodString>;
    LOG_LEVEL: z.ZodOptional<z.ZodEnum<["error", "warn", "info", "debug", "silent"]>>;
    CI: z.ZodOptional<z.ZodString>;
    GITHUB_ACTIONS: z.ZodOptional<z.ZodString>;
    GITLAB_CI: z.ZodOptional<z.ZodString>;
    JENKINS_URL: z.ZodOptional<z.ZodString>;
    AZURE_HTTP_USER_AGENT: z.ZodOptional<z.ZodString>;
    CIRCLECI: z.ZodOptional<z.ZodString>;
    TESTDINO_TIMEOUT: z.ZodOptional<z.ZodString>;
    TESTDINO_RETRY_COUNT: z.ZodOptional<z.ZodString>;
    TESTDINO_MAX_FILE_SIZE: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    NODE_ENV?: "development" | "staging" | "production" | "test" | undefined;
    TESTDINO_API_URL?: string | undefined;
    TESTDINO_TOKEN?: string | undefined;
    TESTDINO_UPLOAD_HTML?: string | undefined;
    TESTDINO_UPLOAD_TRACES?: string | undefined;
    TESTDINO_VERBOSE?: string | undefined;
    LOG_LEVEL?: "error" | "warn" | "info" | "debug" | "silent" | undefined;
    CI?: string | undefined;
    GITHUB_ACTIONS?: string | undefined;
    GITLAB_CI?: string | undefined;
    JENKINS_URL?: string | undefined;
    AZURE_HTTP_USER_AGENT?: string | undefined;
    CIRCLECI?: string | undefined;
    TESTDINO_TIMEOUT?: string | undefined;
    TESTDINO_RETRY_COUNT?: string | undefined;
    TESTDINO_MAX_FILE_SIZE?: string | undefined;
}, {
    NODE_ENV?: "development" | "staging" | "production" | "test" | undefined;
    TESTDINO_API_URL?: string | undefined;
    TESTDINO_TOKEN?: string | undefined;
    TESTDINO_UPLOAD_HTML?: string | undefined;
    TESTDINO_UPLOAD_TRACES?: string | undefined;
    TESTDINO_VERBOSE?: string | undefined;
    LOG_LEVEL?: "error" | "warn" | "info" | "debug" | "silent" | undefined;
    CI?: string | undefined;
    GITHUB_ACTIONS?: string | undefined;
    GITLAB_CI?: string | undefined;
    JENKINS_URL?: string | undefined;
    AZURE_HTTP_USER_AGENT?: string | undefined;
    CIRCLECI?: string | undefined;
    TESTDINO_TIMEOUT?: string | undefined;
    TESTDINO_RETRY_COUNT?: string | undefined;
    TESTDINO_MAX_FILE_SIZE?: string | undefined;
}>;
export type EnvVars = z.infer<typeof EnvVarSchema>;
/**
 * Environment type detection
 */
export declare enum EnvironmentType {
    DEVELOPMENT = "development",
    STAGING = "staging",
    PRODUCTION = "production",
    TEST = "test"
}
/**
 * CI/CD provider detection
 */
export declare enum CIProvider {
    GITHUB_ACTIONS = "github-actions",
    GITLAB_CI = "gitlab-ci",
    JENKINS = "jenkins",
    AZURE_DEVOPS = "azure-devops",
    CIRCLECI = "circleci",
    UNKNOWN = "unknown"
}
/**
 * Environment utilities class
 */
export declare class EnvironmentUtils {
    private static envCache;
    /**
     * Get and validate environment variables with caching
     */
    static getEnvironment(): EnvVars;
    /**
     * Clear environment cache (useful for testing)
     */
    static clearCache(): void;
    /**
     * Detect current environment type
     */
    static detectEnvironmentType(): EnvironmentType;
    /**
     * Detect CI/CD provider
     */
    static detectCIProvider(): CIProvider;
    /**
     * Check if running in CI environment
     */
    static isCI(): boolean;
    /**
     * Check if in development mode
     */
    static isDevelopment(): boolean;
    /**
     * Check if in production mode
     */
    static isProduction(): boolean;
    /**
     * Check if in test mode
     */
    static isTest(): boolean;
    /**
     * Get boolean value from environment variable
     */
    static getBooleanEnv(key: keyof EnvVars, defaultValue?: boolean): boolean;
    /**
     * Get numeric value from environment variable
     */
    static getNumberEnv(key: keyof EnvVars, defaultValue: number): number;
    /**
     * Get string value from environment variable
     */
    static getStringEnv(key: keyof EnvVars, defaultValue?: string): string | undefined;
    /**
     * Validate required environment variables
     */
    static validateRequired(requiredVars: Array<keyof EnvVars>): void;
    /**
     * Get environment summary for debugging
     */
    static getEnvironmentSummary(): Record<string, unknown>;
}
//# sourceMappingURL=env.d.ts.map