import { z } from "zod";
import type { GdsResponse } from "../air-connector/adapter.ts";
import type { AdapterRouter } from "../air-connector/router.ts";
import type { RebookingOption } from "./disruption.ts";
import type { CabinClass } from "../fare/types.ts";
export declare const OpsRebookingClientConfigSchema: z.ZodObject<{
    defaultCabinClass: z.ZodDefault<z.ZodEnum<{
        economy: "economy";
        business: "business";
        "premium-economy": "premium-economy";
        first: "first";
    }>>;
    autoPrice: z.ZodDefault<z.ZodBoolean>;
    maxRetries: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export type OpsRebookingClientConfig = z.infer<typeof OpsRebookingClientConfigSchema>;
export declare class OpsRebookingClient {
    private readonly router;
    private readonly config;
    constructor(router: AdapterRouter, config?: Partial<OpsRebookingClientConfig>);
    /**
     * Execute a full search → price → book flow for a rebooking option.
     *
     * 1. Search for the flight (search operation)
     * 2. Price the offer (price operation)
     * 3. Book the flight (book operation)
     *
     * Returns the GdsResponse from the booking step.
     */
    executeRebooking(option: RebookingOption, passengers: Array<{
        paxId: string;
        ptc: "ADT" | "CHD" | "INF";
        firstName?: string;
        lastName?: string;
    }>): Promise<GdsResponse>;
    /**
     * Search for flights matching a rebooking option.
     * Returns raw GdsResponse so callers can inspect offers.
     */
    searchFlights(origin: string, destination: string, date: string, cabinClass?: CabinClass, passengers?: Array<{
        code: string;
        quantity: number;
    }>): Promise<GdsResponse>;
    /**
     * Price a specific offer by ID.
     */
    priceOffer(offerId: string): Promise<GdsResponse>;
    /**
     * Book a flight using an offer ID.
     */
    bookFlight(offerId: string, passengers: Array<{
        paxId: string;
        ptc: "ADT" | "CHD" | "INF";
        firstName?: string;
        lastName?: string;
    }>): Promise<GdsResponse>;
    /**
     * Cancel a booking by order ID.
     */
    cancelBooking(orderId: string): Promise<GdsResponse>;
}
//# sourceMappingURL=rebooking-client.d.ts.map