/**
 * Configuration Management
 *
 * Handles loading and validating environment variables
 * Provides typed configuration object for the application
 */
import { z } from 'zod';
/**
 * Log levels supported by the application
 */
export declare const LogLevel: z.ZodEnum<["debug", "info", "warn", "error"]>;
export type LogLevel = z.infer<typeof LogLevel>;
/**
 * Node environment types
 */
export declare const NodeEnv: z.ZodEnum<["development", "test", "production"]>;
export type NodeEnv = z.infer<typeof NodeEnv>;
/**
 * Transport types supported by the MCP server
 */
export declare const TransportType: z.ZodEnum<["stdio", "http"]>;
export type TransportType = z.infer<typeof TransportType>;
/**
 * Configuration schema using Zod for validation
 */
declare const ConfigSchema: z.ZodObject<{
    serperApiKey: z.ZodString;
    nodeEnv: z.ZodDefault<z.ZodEnum<["development", "test", "production"]>>;
    logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
    serverPort: z.ZodDefault<z.ZodNumber>;
    serverHost: z.ZodDefault<z.ZodString>;
    transport: z.ZodDefault<z.ZodEnum<["stdio", "http"]>>;
    httpPort: z.ZodDefault<z.ZodNumber>;
    httpHost: z.ZodDefault<z.ZodString>;
    httpPath: z.ZodDefault<z.ZodString>;
    apiTimeout: z.ZodDefault<z.ZodNumber>;
    maxRetries: z.ZodDefault<z.ZodNumber>;
    cacheTtl: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    serperApiKey: string;
    nodeEnv: "development" | "test" | "production";
    logLevel: "debug" | "info" | "warn" | "error";
    serverPort: number;
    serverHost: string;
    transport: "stdio" | "http";
    httpPort: number;
    httpHost: string;
    httpPath: string;
    apiTimeout: number;
    maxRetries: number;
    cacheTtl: number;
}, {
    serperApiKey: string;
    nodeEnv?: "development" | "test" | "production" | undefined;
    logLevel?: "debug" | "info" | "warn" | "error" | undefined;
    serverPort?: number | undefined;
    serverHost?: string | undefined;
    transport?: "stdio" | "http" | undefined;
    httpPort?: number | undefined;
    httpHost?: string | undefined;
    httpPath?: string | undefined;
    apiTimeout?: number | undefined;
    maxRetries?: number | undefined;
    cacheTtl?: number | undefined;
}>;
/**
 * Configuration interface
 */
export type Config = z.infer<typeof ConfigSchema>;
/**
 * Get the configuration instance
 * @throws {Error} If configuration validation fails
 */
export declare function getConfig(): Config;
/**
 * Reset configuration (useful for testing)
 */
export declare function resetConfig(): void;
/**
 * Check if running in production
 */
export declare function isProduction(): boolean;
/**
 * Check if running in development
 */
export declare function isDevelopment(): boolean;
/**
 * Check if running in test
 */
export declare function isTest(): boolean;
/**
 * Get environment-specific configuration
 */
export declare function getEnvironmentConfig(): Partial<Config>;
export {};
//# sourceMappingURL=config.d.ts.map