/** * Environment Configuration Management * * Centralized configuration from environment variables with validation and defaults. * Supports both production and development/testing scenarios. */ import { z } from 'zod'; /** * Configuration schema with validation */ declare const EnvironmentSchema: z.ZodObject<{ solidworks: z.ZodObject<{ path: z.ZodOptional; version: z.ZodDefault; useMock: z.ZodDefault; }, "strip", z.ZodTypeAny, { version: string; useMock: boolean; path?: string | undefined; }, { path?: string | undefined; version?: string | undefined; useMock?: boolean | undefined; }>; mock: z.ZodObject<{ simulateErrors: z.ZodDefault; failOperations: z.ZodDefault; delayMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { failOperations: boolean; simulateErrors: boolean; delayMs: number; }, { failOperations?: boolean | undefined; simulateErrors?: boolean | undefined; delayMs?: number | undefined; }>; features: z.ZodObject<{ macroRecording: z.ZodDefault; pdm: z.ZodDefault; pdmVault: z.ZodOptional; }, "strip", z.ZodTypeAny, { macroRecording: boolean; pdm: boolean; pdmVault?: string | undefined; }, { pdmVault?: string | undefined; macroRecording?: boolean | undefined; pdm?: boolean | undefined; }>; database: z.ZodObject<{ sqlConnection: z.ZodOptional; pgConnection: z.ZodOptional; }, "strip", z.ZodTypeAny, { sqlConnection?: string | undefined; pgConnection?: string | undefined; }, { sqlConnection?: string | undefined; pgConnection?: string | undefined; }>; logging: z.ZodObject<{ level: z.ZodDefault>; file: z.ZodOptional; }, "strip", z.ZodTypeAny, { level: "info" | "error" | "debug" | "warn"; file?: string | undefined; }, { level?: "info" | "error" | "debug" | "warn" | undefined; file?: string | undefined; }>; state: z.ZodObject<{ file: z.ZodDefault; autoSaveInterval: z.ZodDefault; }, "strip", z.ZodTypeAny, { file: string; autoSaveInterval: number; }, { file?: string | undefined; autoSaveInterval?: number | undefined; }>; performance: z.ZodObject<{ enableConnectionPool: z.ZodDefault; connectionPoolMaxSize: z.ZodDefault; enableCircuitBreaker: z.ZodDefault; circuitBreakerThreshold: z.ZodDefault; }, "strip", z.ZodTypeAny, { enableCircuitBreaker: boolean; circuitBreakerThreshold: number; enableConnectionPool: boolean; connectionPoolMaxSize: number; }, { enableCircuitBreaker?: boolean | undefined; circuitBreakerThreshold?: number | undefined; enableConnectionPool?: boolean | undefined; connectionPoolMaxSize?: number | undefined; }>; templates: z.ZodObject<{ part: z.ZodOptional; assembly: z.ZodOptional; drawing: z.ZodOptional; }, "strip", z.ZodTypeAny, { part?: string | undefined; assembly?: string | undefined; drawing?: string | undefined; }, { part?: string | undefined; assembly?: string | undefined; drawing?: string | undefined; }>; dev: z.ZodObject<{ mode: z.ZodDefault; port: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode: boolean; port?: number | undefined; }, { port?: number | undefined; mode?: boolean | undefined; }>; }, "strip", z.ZodTypeAny, { database: { sqlConnection?: string | undefined; pgConnection?: string | undefined; }; state: { file: string; autoSaveInterval: number; }; templates: { part?: string | undefined; assembly?: string | undefined; drawing?: string | undefined; }; features: { macroRecording: boolean; pdm: boolean; pdmVault?: string | undefined; }; logging: { level: "info" | "error" | "debug" | "warn"; file?: string | undefined; }; solidworks: { version: string; useMock: boolean; path?: string | undefined; }; mock: { failOperations: boolean; simulateErrors: boolean; delayMs: number; }; performance: { enableCircuitBreaker: boolean; circuitBreakerThreshold: number; enableConnectionPool: boolean; connectionPoolMaxSize: number; }; dev: { mode: boolean; port?: number | undefined; }; }, { database: { sqlConnection?: string | undefined; pgConnection?: string | undefined; }; state: { file?: string | undefined; autoSaveInterval?: number | undefined; }; templates: { part?: string | undefined; assembly?: string | undefined; drawing?: string | undefined; }; features: { pdmVault?: string | undefined; macroRecording?: boolean | undefined; pdm?: boolean | undefined; }; logging: { level?: "info" | "error" | "debug" | "warn" | undefined; file?: string | undefined; }; solidworks: { path?: string | undefined; version?: string | undefined; useMock?: boolean | undefined; }; mock: { failOperations?: boolean | undefined; simulateErrors?: boolean | undefined; delayMs?: number | undefined; }; performance: { enableCircuitBreaker?: boolean | undefined; circuitBreakerThreshold?: number | undefined; enableConnectionPool?: boolean | undefined; connectionPoolMaxSize?: number | undefined; }; dev: { port?: number | undefined; mode?: boolean | undefined; }; }>; export type Environment = z.infer; /** * Parse environment variables into typed configuration */ export declare function loadEnvironment(): Environment; /** * Detect if we're running in a CI environment */ export declare function isCI(): boolean; /** * Detect if we're running in a test environment */ export declare function isTest(): boolean; /** * Check if SolidWorks should be mocked * Auto-enables mock in CI or test environments */ export declare function shouldUseMock(env: Environment): boolean; /** * Get the appropriate SolidWorks version string */ export declare function getSolidWorksVersion(env: Environment): string; /** * Validate that the environment is properly configured */ export declare function validateEnvironment(env: Environment): { valid: boolean; errors: string[]; }; /** * Print environment configuration (for debugging) */ export declare function printEnvironment(env: Environment): void; export declare function getEnvironment(): Environment; export declare function resetEnvironment(): void; export {}; //# sourceMappingURL=environment.d.ts.map