/** * Centralized Configuration Management * * Provides typed access to all environment variables and configuration options. * Centralizes configuration logic and eliminates scattered process.env access. */ export interface AppConfig { readonly wordpress: { readonly siteUrl: string | undefined; readonly username: string | undefined; readonly appPassword: string | undefined; readonly password: string | undefined; readonly authMethod: string; readonly timeout: number; readonly maxRetries: number; readonly jwtSecret: string | undefined; readonly apiKey: string | undefined; readonly cookieNonce: string | undefined; readonly jwtPassword: string | undefined; }; readonly app: { readonly nodeEnv: string; readonly isDevelopment: boolean; readonly isProduction: boolean; readonly isTest: boolean; readonly isDXT: boolean; readonly isCI: boolean; }; readonly debug: { readonly enabled: boolean; readonly logLevel: string; }; readonly cache: { readonly disabled: boolean; readonly ttl: number; readonly maxItems: number; readonly maxMemoryMB: number; }; readonly security: { readonly rateLimitEnabled: boolean; readonly rateLimitRequests: number; readonly rateLimitWindow: number; readonly rateLimit: number; readonly strictMode: boolean; }; readonly error: { readonly legacyLogsEnabled: boolean; }; readonly testing: { readonly coverageTolerance: number; readonly skipPactTests: boolean; readonly performanceTest: boolean; }; readonly ci: { readonly isCI: boolean; readonly provider: string | null; readonly isGitHubActions: boolean; readonly isTravis: boolean; readonly isCircleCI: boolean; }; readonly seo: { readonly enabled: boolean; readonly providers: { readonly searchConsole: boolean; readonly dataForSEO: boolean; readonly ahrefs: boolean; }; readonly googleOAuth: { readonly clientId: string | null; readonly clientSecret: string | null; readonly refreshToken: string | null; }; readonly limits: { readonly bulkOperationSize: number; readonly rateLimitPerMinute: number; readonly maxConcurrentAnalysis: number; }; readonly cache: { readonly analysisTTL: number; readonly schemaTTL: number; readonly auditTTL: number; readonly keywordsTTL: number; }; readonly metadata: { readonly titleMaxLength: number; readonly descriptionMaxLength: number; readonly descriptionMinLength: number; }; readonly analysis: { readonly minWordCount: number; readonly targetKeywordDensity: number; readonly maxKeywordDensity: number; readonly minReadabilityScore: number; }; }; } /** * Centralized Configuration Class * * Singleton that provides type-safe access to all configuration values. * Replaces scattered process.env access throughout the codebase. */ export declare class Config { private static instance; private readonly config; private constructor(); /** * Get singleton instance */ static getInstance(): Config; /** * Get configuration object (read-only) */ get(): AppConfig; /** * Load and validate all configuration from environment */ private loadConfiguration; /** * Check if a string value should be considered truthy * Accepts common truthy string representations */ private isTruthy; /** * Detect if running in CI environment */ private detectCIEnvironment; /** * Detect CI provider */ private detectCIProvider; /** * Should log debug information? */ shouldDebug(): boolean; /** * Should use caching? */ shouldUseCache(): boolean; /** * Should log info messages? (not in test or DXT mode) */ shouldLogInfo(): boolean; /** * Is WordPress configuration complete? */ hasWordPressConfig(): boolean; /** * Get environment-appropriate timeout for operations */ getOperationTimeout(): number; /** * Reset singleton (for testing) */ static reset(): void; } /** * Global configuration instance getter * Use this throughout the application instead of process.env */ export declare const config: () => AppConfig; /** * Configuration helper utilities */ export declare const ConfigHelpers: { /** * Get config instance */ get: () => Config; /** * Quick environment checks */ isDev: () => boolean; isProd: () => boolean; isTest: () => boolean; isDXT: () => boolean; isCI: () => boolean; /** * Quick feature flags */ shouldDebug: () => boolean; shouldUseCache: () => boolean; shouldLogInfo: () => boolean; hasWordPressConfig: () => boolean; /** * Get timeout for different operation types */ getTimeout: (type?: "operation" | "upload" | "test") => number; }; //# sourceMappingURL=Config.d.ts.map