import { z } from "zod";
/**
 * Logging level for the TauCeti SDK.
 */
export declare const LogLevelSchema: z.ZodEnum<{
    error: "error";
    debug: "debug";
    info: "info";
    warn: "warn";
}>;
export type LogLevel = z.infer<typeof LogLevelSchema>;
/**
 * Cache configuration per module.
 */
export declare const CacheConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    ttlMs: z.ZodDefault<z.ZodNumber>;
    maxSize: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export type CacheConfig = z.infer<typeof CacheConfigSchema>;
/**
 * Opaque provider configuration passthrough.
 * Modules parse their own config from this record.
 */
export declare const ProviderConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
export type ProviderConfig = z.infer<typeof ProviderConfigSchema>;
/**
 * Airline provider config keyed by carrier.
 * E.g. `{ "QF": { method: "api-key", clientId: "..." } }`
 */
export declare const AirlineProviderConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
    method: z.ZodDefault<z.ZodEnum<{
        "api-key": "api-key";
        oauth2: "oauth2";
        certificate: "certificate";
        basic: "basic";
    }>>;
    clientId: z.ZodOptional<z.ZodString>;
    clientSecret: z.ZodOptional<z.ZodString>;
    tokenUrl: z.ZodOptional<z.ZodString>;
    certPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
export type AirlineProviderConfig = z.infer<typeof AirlineProviderConfigSchema>;
/**
 * Known provider configuration for modules that need it.
 * We flat-map by known keys. Anything extra passes through.
 */
export declare const KnownProvidersSchema: z.ZodObject<{
    amadeus: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        method: z.ZodDefault<z.ZodEnum<{
            "api-key": "api-key";
            oauth2: "oauth2";
            certificate: "certificate";
            basic: "basic";
        }>>;
        clientId: z.ZodOptional<z.ZodString>;
        clientSecret: z.ZodOptional<z.ZodString>;
        tokenUrl: z.ZodOptional<z.ZodString>;
        certPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    sabre: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        method: z.ZodDefault<z.ZodEnum<{
            "api-key": "api-key";
            oauth2: "oauth2";
            certificate: "certificate";
            basic: "basic";
        }>>;
        clientId: z.ZodOptional<z.ZodString>;
        clientSecret: z.ZodOptional<z.ZodString>;
        tokenUrl: z.ZodOptional<z.ZodString>;
        certPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    navitaire: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        method: z.ZodDefault<z.ZodEnum<{
            "api-key": "api-key";
            oauth2: "oauth2";
            certificate: "certificate";
            basic: "basic";
        }>>;
        clientId: z.ZodOptional<z.ZodString>;
        clientSecret: z.ZodOptional<z.ZodString>;
        tokenUrl: z.ZodOptional<z.ZodString>;
        certPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    travelport: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        method: z.ZodDefault<z.ZodEnum<{
            "api-key": "api-key";
            oauth2: "oauth2";
            certificate: "certificate";
            basic: "basic";
        }>>;
        clientId: z.ZodOptional<z.ZodString>;
        clientSecret: z.ZodOptional<z.ZodString>;
        tokenUrl: z.ZodOptional<z.ZodString>;
        certPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    ndc: z.ZodOptional<z.ZodObject<{
        version: z.ZodOptional<z.ZodEnum<{
            17.2: "17.2";
            18.1: "18.1";
            18.2: "18.2";
            20.2: "20.2";
            21.3: "21.3";
        }>>;
    }, z.core.$strip>>;
    cache: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        ttlMs: z.ZodDefault<z.ZodNumber>;
        maxSize: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
/**
 * Top-level TauCeti SDK configuration.
 * All fields optional — sensible defaults provided.
 */
export declare const TauCetiConfigSchema: z.ZodObject<{
    logLevel: z.ZodDefault<z.ZodEnum<{
        error: "error";
        debug: "debug";
        info: "info";
        warn: "warn";
    }>>;
    logger: z.ZodOptional<z.ZodUnknown>;
    stabilityLevel: z.ZodDefault<z.ZodEnum<{
        alpha: "alpha";
        beta: "beta";
        stable: "stable";
    }>>;
    cache: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        ttlMs: z.ZodDefault<z.ZodNumber>;
        maxSize: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    providers: z.ZodDefault<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, z.core.$strip>;
export type TauCetiConfig = z.infer<typeof TauCetiConfigSchema>;
/**
 * Parse and validate a partial config, filling in defaults.
 */
export declare function parseConfig(input?: Partial<TauCetiConfig>): TauCetiConfig;
//# sourceMappingURL=config.d.ts.map