/** * Configuration management for QBOMCP-TS */ import { QBOConfig, TransportConfig } from '../types'; import { z } from 'zod'; /** * Environment variable schema for validation */ declare const EnvSchema: z.ZodObject<{ QBO_CLIENT_ID: z.ZodString; QBO_CLIENT_SECRET: z.ZodString; QBO_COMPANY_ID: z.ZodString; QBO_REFRESH_TOKEN: z.ZodString; QBO_ENVIRONMENT: z.ZodDefault>; QBO_REDIRECT_URI: z.ZodOptional; NODE_ENV: z.ZodDefault>; LOG_LEVEL: z.ZodDefault>; TRANSPORT_TYPE: z.ZodDefault>; SSE_PORT: z.ZodDefault>; SSE_HOST: z.ZodDefault; CACHE_TTL: z.ZodDefault>; CACHE_MAX_SIZE: z.ZodDefault>; API_RETRY_ATTEMPTS: z.ZodDefault>; API_RETRY_DELAY: z.ZodDefault>; API_TIMEOUT: z.ZodDefault>; API_RATE_LIMIT_PER_MINUTE: z.ZodDefault>; CORS_ORIGIN: z.ZodDefault; RATE_LIMIT_WINDOW_MS: z.ZodDefault>; RATE_LIMIT_MAX_REQUESTS: z.ZodDefault>; ENABLE_CACHE: z.ZodDefault>; ENABLE_RETRY: z.ZodDefault>; ENABLE_HEALTH_CHECK: z.ZodDefault>; ENABLE_METRICS: z.ZodDefault>; LOG_DIR: z.ZodDefault; CACHE_DIR: z.ZodDefault; }, z.core.$strip>; export type EnvConfig = z.infer; /** * Configuration class for managing application settings */ export declare class Config { private static instance; private env; private configFile?; private constructor(); /** * Get singleton instance */ static getInstance(): Config; /** * Load configuration from JSON file if it exists */ private loadConfigFile; /** * Ensure required directories exist */ private ensureDirectories; /** * Get QuickBooks configuration */ getQBOConfig(): QBOConfig; /** * Get transport configuration */ getTransportConfig(): TransportConfig; /** * Get cache configuration */ getCacheConfig(): { enabled: boolean; ttl: number; maxSize: number; dir: string; }; /** * Get API configuration */ getAPIConfig(): { retryAttempts: number; retryDelay: number; timeout: number; rateLimitPerMinute: number; enableRetry: boolean; }; /** * Get logger configuration */ getLoggerConfig(): { level: "error" | "warn" | "info" | "http" | "verbose" | "debug"; dir: string; enableConsole: boolean; enableFile: boolean; }; /** * Get feature flags */ getFeatureFlags(): { cache: boolean; retry: boolean; healthCheck: boolean; metrics: boolean; }; /** * Get environment */ getEnv(): 'development' | 'production' | 'test'; /** * Check if in development mode */ isDevelopment(): boolean; /** * Check if in production mode */ isProduction(): boolean; /** * Check if in test mode */ isTest(): boolean; /** * Get a custom config value from config.json */ getCustom(path: string, defaultValue?: T): T | undefined; /** * Get all configuration (for debugging) */ getAll(): any; } export declare const config: Config; export {}; //# sourceMappingURL=config.d.ts.map