import { z } from 'zod'; declare const EnvironmentConfigSchema: z.ZodObject<{ nodeEnv: z.ZodDefault>; server: z.ZodObject<{ name: z.ZodDefault; version: z.ZodDefault; description: z.ZodOptional; author: z.ZodOptional; capabilities: z.ZodDefault; resources: z.ZodDefault; prompts: z.ZodDefault; }, "strip", z.ZodTypeAny, { tools: boolean; resources: boolean; prompts: boolean; }, { tools?: boolean | undefined; resources?: boolean | undefined; prompts?: boolean | undefined; }>>; features: z.ZodDefault; enableLegacyFirewall: z.ZodDefault; enableMonitoring: z.ZodDefault; enableAutomation: z.ZodDefault; enableCache: z.ZodDefault; }, "strip", z.ZodTypeAny, { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableCache: boolean; }, { enableZBFTools?: boolean | undefined; enableLegacyFirewall?: boolean | undefined; enableMonitoring?: boolean | undefined; enableAutomation?: boolean | undefined; enableCache?: boolean | undefined; }>>; rateLimit: z.ZodDefault; concurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { perMinute: number; concurrent: number; }, { perMinute?: number | undefined; concurrent?: number | undefined; }>>; cache: z.ZodDefault; maxSize: z.ZodDefault; }, "strip", z.ZodTypeAny, { ttlSeconds: number; maxSize: number; }, { ttlSeconds?: number | undefined; maxSize?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { name: string; version: string; capabilities: { tools: boolean; resources: boolean; prompts: boolean; }; features: { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableCache: boolean; }; rateLimit: { perMinute: number; concurrent: number; }; cache: { ttlSeconds: number; maxSize: number; }; description?: string | undefined; author?: string | undefined; }, { name?: string | undefined; version?: string | undefined; description?: string | undefined; author?: string | undefined; capabilities?: { tools?: boolean | undefined; resources?: boolean | undefined; prompts?: boolean | undefined; } | undefined; features?: { enableZBFTools?: boolean | undefined; enableLegacyFirewall?: boolean | undefined; enableMonitoring?: boolean | undefined; enableAutomation?: boolean | undefined; enableCache?: boolean | undefined; } | undefined; rateLimit?: { perMinute?: number | undefined; concurrent?: number | undefined; } | undefined; cache?: { ttlSeconds?: number | undefined; maxSize?: number | undefined; } | undefined; }>; unifi: z.ZodObject<{ gatewayIp: z.ZodString; apiKey: z.ZodString; siteId: z.ZodDefault; verifySSL: z.ZodDefault; timeout: z.ZodDefault; maxRetries: z.ZodDefault; } & { port: z.ZodOptional; useHTTPS: z.ZodDefault; retryConfig: z.ZodDefault; baseDelay: z.ZodDefault; maxDelay: z.ZodDefault; }, "strip", z.ZodTypeAny, { maxAttempts: number; baseDelay: number; maxDelay: number; }, { maxAttempts?: number | undefined; baseDelay?: number | undefined; maxDelay?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { gatewayIp: string; apiKey: string; siteId: string; verifySSL: boolean; timeout: number; maxRetries: number; useHTTPS: boolean; retryConfig: { maxAttempts: number; baseDelay: number; maxDelay: number; }; port?: number | undefined; }, { gatewayIp: string; apiKey: string; siteId?: string | undefined; verifySSL?: boolean | undefined; timeout?: number | undefined; maxRetries?: number | undefined; port?: number | undefined; useHTTPS?: boolean | undefined; retryConfig?: { maxAttempts?: number | undefined; baseDelay?: number | undefined; maxDelay?: number | undefined; } | undefined; }>; logging: z.ZodObject<{ level: z.ZodDefault>; file: z.ZodOptional; console: z.ZodDefault; maxFiles: z.ZodDefault; maxSize: z.ZodDefault; format: z.ZodDefault>; }, "strip", z.ZodTypeAny, { maxSize: string; level: "info" | "error" | "warn" | "debug" | "trace"; console: boolean; maxFiles: number; format: "json" | "simple" | "combined"; file?: string | undefined; }, { maxSize?: string | undefined; level?: "info" | "error" | "warn" | "debug" | "trace" | undefined; file?: string | undefined; console?: boolean | undefined; maxFiles?: number | undefined; format?: "json" | "simple" | "combined" | undefined; }>; cache: z.ZodObject<{ enabled: z.ZodDefault; ttlSeconds: z.ZodDefault; maxSize: z.ZodDefault; checkPeriod: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; ttlSeconds: number; maxSize: number; checkPeriod: number; }, { enabled?: boolean | undefined; ttlSeconds?: number | undefined; maxSize?: number | undefined; checkPeriod?: number | undefined; }>; rateLimit: z.ZodObject<{ enabled: z.ZodDefault; perMinute: z.ZodDefault; concurrent: z.ZodDefault; burstAllowance: z.ZodDefault; backoffMultiplier: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; perMinute: number; concurrent: number; burstAllowance: number; backoffMultiplier: number; }, { enabled?: boolean | undefined; perMinute?: number | undefined; concurrent?: number | undefined; burstAllowance?: number | undefined; backoffMultiplier?: number | undefined; }>; security: z.ZodObject<{ validateSSL: z.ZodDefault; allowInsecureConnections: z.ZodDefault; apiKeyRotationDays: z.ZodDefault; sessionTimeoutMinutes: z.ZodDefault; maxFailedAttempts: z.ZodDefault; }, "strip", z.ZodTypeAny, { validateSSL: boolean; allowInsecureConnections: boolean; apiKeyRotationDays: number; sessionTimeoutMinutes: number; maxFailedAttempts: number; }, { validateSSL?: boolean | undefined; allowInsecureConnections?: boolean | undefined; apiKeyRotationDays?: number | undefined; sessionTimeoutMinutes?: number | undefined; maxFailedAttempts?: number | undefined; }>; features: z.ZodObject<{ enableZBFTools: z.ZodDefault; enableLegacyFirewall: z.ZodDefault; enableMonitoring: z.ZodDefault; enableAutomation: z.ZodDefault; enableAdvancedStats: z.ZodDefault; enablePluginSystem: z.ZodDefault; enableHealthChecks: z.ZodDefault; enableMetricsCollection: z.ZodDefault; }, "strip", z.ZodTypeAny, { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableAdvancedStats: boolean; enablePluginSystem: boolean; enableHealthChecks: boolean; enableMetricsCollection: boolean; }, { enableZBFTools?: boolean | undefined; enableLegacyFirewall?: boolean | undefined; enableMonitoring?: boolean | undefined; enableAutomation?: boolean | undefined; enableAdvancedStats?: boolean | undefined; enablePluginSystem?: boolean | undefined; enableHealthChecks?: boolean | undefined; enableMetricsCollection?: boolean | undefined; }>; performance: z.ZodObject<{ connectionPoolSize: z.ZodDefault; requestTimeoutMs: z.ZodDefault; retryAttempts: z.ZodDefault; retryDelayMs: z.ZodDefault; maxConcurrentRequests: z.ZodDefault; healthCheckIntervalMs: z.ZodDefault; }, "strip", z.ZodTypeAny, { connectionPoolSize: number; requestTimeoutMs: number; retryAttempts: number; retryDelayMs: number; maxConcurrentRequests: number; healthCheckIntervalMs: number; }, { connectionPoolSize?: number | undefined; requestTimeoutMs?: number | undefined; retryAttempts?: number | undefined; retryDelayMs?: number | undefined; maxConcurrentRequests?: number | undefined; healthCheckIntervalMs?: number | undefined; }>; monitoring: z.ZodObject<{ enabled: z.ZodDefault; collectMetrics: z.ZodDefault; metricsPort: z.ZodDefault; alertWebhook: z.ZodOptional; alertThresholds: z.ZodDefault; responseTime: z.ZodDefault; memoryUsage: z.ZodDefault; diskUsage: z.ZodDefault; }, "strip", z.ZodTypeAny, { responseTime: number; errorRate: number; memoryUsage: number; diskUsage: number; }, { responseTime?: number | undefined; errorRate?: number | undefined; memoryUsage?: number | undefined; diskUsage?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; collectMetrics: boolean; metricsPort: number; alertThresholds: { responseTime: number; errorRate: number; memoryUsage: number; diskUsage: number; }; alertWebhook?: string | undefined; }, { enabled?: boolean | undefined; collectMetrics?: boolean | undefined; metricsPort?: number | undefined; alertWebhook?: string | undefined; alertThresholds?: { responseTime?: number | undefined; errorRate?: number | undefined; memoryUsage?: number | undefined; diskUsage?: number | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { logging: { maxSize: string; level: "info" | "error" | "warn" | "debug" | "trace"; console: boolean; maxFiles: number; format: "json" | "simple" | "combined"; file?: string | undefined; }; monitoring: { enabled: boolean; collectMetrics: boolean; metricsPort: number; alertThresholds: { responseTime: number; errorRate: number; memoryUsage: number; diskUsage: number; }; alertWebhook?: string | undefined; }; features: { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableAdvancedStats: boolean; enablePluginSystem: boolean; enableHealthChecks: boolean; enableMetricsCollection: boolean; }; rateLimit: { enabled: boolean; perMinute: number; concurrent: number; burstAllowance: number; backoffMultiplier: number; }; cache: { enabled: boolean; ttlSeconds: number; maxSize: number; checkPeriod: number; }; nodeEnv: "development" | "production" | "test"; server: { name: string; version: string; capabilities: { tools: boolean; resources: boolean; prompts: boolean; }; features: { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableCache: boolean; }; rateLimit: { perMinute: number; concurrent: number; }; cache: { ttlSeconds: number; maxSize: number; }; description?: string | undefined; author?: string | undefined; }; unifi: { gatewayIp: string; apiKey: string; siteId: string; verifySSL: boolean; timeout: number; maxRetries: number; useHTTPS: boolean; retryConfig: { maxAttempts: number; baseDelay: number; maxDelay: number; }; port?: number | undefined; }; security: { validateSSL: boolean; allowInsecureConnections: boolean; apiKeyRotationDays: number; sessionTimeoutMinutes: number; maxFailedAttempts: number; }; performance: { connectionPoolSize: number; requestTimeoutMs: number; retryAttempts: number; retryDelayMs: number; maxConcurrentRequests: number; healthCheckIntervalMs: number; }; }, { logging: { maxSize?: string | undefined; level?: "info" | "error" | "warn" | "debug" | "trace" | undefined; file?: string | undefined; console?: boolean | undefined; maxFiles?: number | undefined; format?: "json" | "simple" | "combined" | undefined; }; monitoring: { enabled?: boolean | undefined; collectMetrics?: boolean | undefined; metricsPort?: number | undefined; alertWebhook?: string | undefined; alertThresholds?: { responseTime?: number | undefined; errorRate?: number | undefined; memoryUsage?: number | undefined; diskUsage?: number | undefined; } | undefined; }; features: { enableZBFTools?: boolean | undefined; enableLegacyFirewall?: boolean | undefined; enableMonitoring?: boolean | undefined; enableAutomation?: boolean | undefined; enableAdvancedStats?: boolean | undefined; enablePluginSystem?: boolean | undefined; enableHealthChecks?: boolean | undefined; enableMetricsCollection?: boolean | undefined; }; rateLimit: { enabled?: boolean | undefined; perMinute?: number | undefined; concurrent?: number | undefined; burstAllowance?: number | undefined; backoffMultiplier?: number | undefined; }; cache: { enabled?: boolean | undefined; ttlSeconds?: number | undefined; maxSize?: number | undefined; checkPeriod?: number | undefined; }; server: { name?: string | undefined; version?: string | undefined; description?: string | undefined; author?: string | undefined; capabilities?: { tools?: boolean | undefined; resources?: boolean | undefined; prompts?: boolean | undefined; } | undefined; features?: { enableZBFTools?: boolean | undefined; enableLegacyFirewall?: boolean | undefined; enableMonitoring?: boolean | undefined; enableAutomation?: boolean | undefined; enableCache?: boolean | undefined; } | undefined; rateLimit?: { perMinute?: number | undefined; concurrent?: number | undefined; } | undefined; cache?: { ttlSeconds?: number | undefined; maxSize?: number | undefined; } | undefined; }; unifi: { gatewayIp: string; apiKey: string; siteId?: string | undefined; verifySSL?: boolean | undefined; timeout?: number | undefined; maxRetries?: number | undefined; port?: number | undefined; useHTTPS?: boolean | undefined; retryConfig?: { maxAttempts?: number | undefined; baseDelay?: number | undefined; maxDelay?: number | undefined; } | undefined; }; security: { validateSSL?: boolean | undefined; allowInsecureConnections?: boolean | undefined; apiKeyRotationDays?: number | undefined; sessionTimeoutMinutes?: number | undefined; maxFailedAttempts?: number | undefined; }; performance: { connectionPoolSize?: number | undefined; requestTimeoutMs?: number | undefined; retryAttempts?: number | undefined; retryDelayMs?: number | undefined; maxConcurrentRequests?: number | undefined; healthCheckIntervalMs?: number | undefined; }; nodeEnv?: "development" | "production" | "test" | undefined; }>; export type EnvironmentConfig = z.infer; declare class ConfigurationBuilder { private static instance; private _config; private constructor(); static getInstance(): ConfigurationBuilder; /** * Build configuration from environment variables */ build(): EnvironmentConfig; /** * Extract configuration from environment variables */ private extractFromEnvironment; /** * Validate the complete configuration */ private validateConfiguration; /** * Parse boolean from string */ private parseBoolean; /** * Parse number from string */ private parseNumber; /** * Require environment variable */ private requireEnvVar; /** * Get current configuration */ getConfig(): EnvironmentConfig; /** * Reload configuration */ reload(): EnvironmentConfig; /** * Update specific configuration values */ updateConfig(updates: Partial): EnvironmentConfig; } export declare class ConfigUtils { /** * Check if running in development mode */ static isDevelopment(): boolean; /** * Check if running in production mode */ static isProduction(): boolean; /** * Check if running in test mode */ static isTest(): boolean; /** * Get log file path with timestamp */ static getLogFilePath(): string | undefined; /** * Get UniFi controller URL */ static getUniFiURL(): string; /** * Get feature-specific configuration */ static getFeatureConfig(feature: keyof EnvironmentConfig['features']): boolean; /** * Get performance configuration */ static getPerformanceConfig(): EnvironmentConfig['performance']; /** * Get security configuration */ static getSecurityConfig(): EnvironmentConfig['security']; /** * Generate connection string for logging (without sensitive data) */ static getConnectionString(): string; /** * Validate environment for specific features */ static validateFeatureEnvironment(feature: string): void; } export declare const config: { logging: { maxSize: string; level: "info" | "error" | "warn" | "debug" | "trace"; console: boolean; maxFiles: number; format: "json" | "simple" | "combined"; file?: string | undefined; }; monitoring: { enabled: boolean; collectMetrics: boolean; metricsPort: number; alertThresholds: { responseTime: number; errorRate: number; memoryUsage: number; diskUsage: number; }; alertWebhook?: string | undefined; }; features: { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableAdvancedStats: boolean; enablePluginSystem: boolean; enableHealthChecks: boolean; enableMetricsCollection: boolean; }; rateLimit: { enabled: boolean; perMinute: number; concurrent: number; burstAllowance: number; backoffMultiplier: number; }; cache: { enabled: boolean; ttlSeconds: number; maxSize: number; checkPeriod: number; }; nodeEnv: "development" | "production" | "test"; server: { name: string; version: string; capabilities: { tools: boolean; resources: boolean; prompts: boolean; }; features: { enableZBFTools: boolean; enableLegacyFirewall: boolean; enableMonitoring: boolean; enableAutomation: boolean; enableCache: boolean; }; rateLimit: { perMinute: number; concurrent: number; }; cache: { ttlSeconds: number; maxSize: number; }; description?: string | undefined; author?: string | undefined; }; unifi: { gatewayIp: string; apiKey: string; siteId: string; verifySSL: boolean; timeout: number; maxRetries: number; useHTTPS: boolean; retryConfig: { maxAttempts: number; baseDelay: number; maxDelay: number; }; port?: number | undefined; }; security: { validateSSL: boolean; allowInsecureConnections: boolean; apiKeyRotationDays: number; sessionTimeoutMinutes: number; maxFailedAttempts: number; }; performance: { connectionPoolSize: number; requestTimeoutMs: number; retryAttempts: number; retryDelayMs: number; maxConcurrentRequests: number; healthCheckIntervalMs: number; }; }; export { ConfigurationBuilder }; //# sourceMappingURL=environment.d.ts.map