import type { AirShoppingRq } from "./types.ts";
import type { Logger } from "../core/logger.ts";
export interface SearchOffersParams {
    origin?: string;
    destination?: string;
    departureDate?: string;
    /** Multi-segment criteria for multi-city / round-trip shopping.
     *  When set, overrides origin/destination/departureDate. */
    segments?: Array<{
        origin: string;
        destination: string;
        departureDate: string;
        cabinCode?: string;
    }>;
    passengers?: Array<{
        paxId: string;
        ptc: "ADT" | "CHD" | "INF";
    }>;
    cabinCode?: string;
    version?: "17.2" | "18.1" | "18.2" | "20.2" | "21.3";
    agencyId?: string;
    correlationId?: string;
    /** Optional logger for search events */
    logger?: Logger;
}
/**
 * Build a valid AirShoppingRQ from high-level params.
 * Validates through the Zod schema before returning.
 */
export declare function searchOffers(params: SearchOffersParams): AirShoppingRq;
/**
 * NormalizedOffer — airline-agnostic shape that all adapters produce.
 * This is what consumers should work with, not raw NDC responses.
 */
export interface NormalizedOffer {
    offerId: string;
    airline: string;
    origin: string;
    destination: string;
    departureTime: string;
    arrivalTime: string;
    fareClass: string;
    fareBasisCode: string;
    baseAmount: number;
    taxAmount: number;
    totalAmount: number;
    currency: string;
    baggage: string;
    validUntil?: string;
}
/**
 * Parse a raw AirShoppingRS (already structured, not XML) into the
 * normalized offer list. Accepts airline-specific response shapes
 * and produces a consistent output.
 */
export declare function parseOfferResponse(raw: unknown): NormalizedOffer[];
//# sourceMappingURL=offer.d.ts.map