import { z } from "zod";
import type { GdsAdapter, GdsRequest, GdsResponse, AdapterHealth } from "../adapter.ts";
export declare const NdcAdapterConfigSchema: z.ZodObject<{
    providerName: z.ZodString;
    airlineCode: z.ZodString;
    baseUrl: z.ZodString;
    version: z.ZodDefault<z.ZodEnum<{
        17.2: "17.2";
        18.1: "18.1";
        18.2: "18.2";
        20.2: "20.2";
        21.3: "21.3";
    }>>;
    auth: z.ZodObject<{
        apiKey: z.ZodString;
        apiSecret: z.ZodOptional<z.ZodString>;
        certPath: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    supportedCarriers: z.ZodOptional<z.ZodArray<z.ZodString>>;
    timeoutMs: z.ZodDefault<z.ZodNumber>;
    retry: z.ZodDefault<z.ZodObject<{
        maxRetries: z.ZodDefault<z.ZodNumber>;
        baseDelayMs: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type NdcAdapterConfig = z.infer<typeof NdcAdapterConfigSchema>;
export declare class NdcAdapter implements GdsAdapter {
    readonly providerName: string;
    readonly supportedCarriers: readonly string[];
    private config;
    private authConfig;
    private baseUrl;
    private version;
    private timeoutMs;
    private retryConfig;
    private accessToken?;
    private tokenExpiry?;
    constructor(config: NdcAdapterConfig);
    authenticate(): Promise<void>;
    isAuthenticated(): Promise<boolean>;
    execute(request: GdsRequest): Promise<GdsResponse>;
    supportsCarrier(carrier: string): boolean;
    health(): Promise<AdapterHealth>;
    private executeInternal;
    private buildAirShoppingRq;
    private buildOfferPriceRq;
    private buildOrderCreateRq;
    private buildOrderCancelRq;
    private buildSeatMapRq;
    private buildServiceListRq;
    private buildHeaders;
    private fetchBearerToken;
    private isRetryableError;
    private httpStatusToErrorCode;
    private extractWarnings;
}
//# sourceMappingURL=ndc.d.ts.map