/**
 * Configuration management for the gov-deals package
 */
import { z } from 'zod';
/**
 * Configuration schema for validation
 */
export declare const ConfigSchema: z.ZodObject<{
    samGov: z.ZodObject<{
        apiKey: z.ZodString;
        baseUrl: z.ZodDefault<z.ZodString>;
        timeout: z.ZodDefault<z.ZodNumber>;
        retryAttempts: z.ZodDefault<z.ZodNumber>;
        retryDelay: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        timeout: number;
        apiKey: string;
        baseUrl: string;
        retryAttempts: number;
        retryDelay: number;
    }, {
        apiKey: string;
        timeout?: number | undefined;
        baseUrl?: string | undefined;
        retryAttempts?: number | undefined;
        retryDelay?: number | undefined;
    }>;
    cache: z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        ttlSeconds: z.ZodDefault<z.ZodNumber>;
        maxSize: z.ZodDefault<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
        ttlSeconds: number;
        maxSize: number;
    }, {
        enabled?: boolean | undefined;
        ttlSeconds?: number | undefined;
        maxSize?: number | undefined;
    }>;
    debug: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    samGov: {
        timeout: number;
        apiKey: string;
        baseUrl: string;
        retryAttempts: number;
        retryDelay: number;
    };
    cache: {
        enabled: boolean;
        ttlSeconds: number;
        maxSize: number;
    };
    debug: boolean;
}, {
    samGov: {
        apiKey: string;
        timeout?: number | undefined;
        baseUrl?: string | undefined;
        retryAttempts?: number | undefined;
        retryDelay?: number | undefined;
    };
    cache: {
        enabled?: boolean | undefined;
        ttlSeconds?: number | undefined;
        maxSize?: number | undefined;
    };
    debug?: boolean | undefined;
}>;
export type Config = z.infer<typeof ConfigSchema>;
/**
 * Create configuration from environment variables and options
 */
export declare function createConfig(options?: Partial<Config>): Config;
/**
 * Validate that required configuration is present
 */
export declare function validateConfig(config: Config): void;
