import type { CreateExternalBookingInput, CruiseAdapter, ExternalFareVariant, ExternalPassengerComposition, SourceRef } from "./index.js"; export type CruiseAdapterCompatibilityFixture = { /** * Two cruise refs with the same upstream `externalId` but different * connection/source context. This proves the adapter keys by full SourceRef. */ primaryCruiseRef: SourceRef; alternateCruiseRef: SourceRef; sailingRef: SourceRef; shipRef: SourceRef; cabinCategoryRef: SourceRef; minimumItineraryDays?: number; passengerComposition?: ExternalPassengerComposition | null; fareCode?: string | null; fareVariant?: ExternalFareVariant | null; bookingInput: CreateExternalBookingInput; }; export type CruiseAdapterCompatibilityCheckName = "sourceRef.roundTrip.listEntries" | "sourceRef.roundTrip.searchProjection" | "sourceRef.multiConnection.fetchCruise" | "detail.fetchCruise" | "detail.fetchSailing" | "detail.listSailingsForCruise" | "detail.fetchSailingItinerary" | "detail.fetchShip" | "pricing.fetchSailingPricing" | "booking.createBooking"; export type CruiseAdapterCompatibilityCheck = { name: CruiseAdapterCompatibilityCheckName; passed: boolean; detail?: string; }; export type CruiseAdapterCompatibilityReport = { adapterName: string; adapterVersion: string; ok: boolean; checks: CruiseAdapterCompatibilityCheck[]; }; export declare function validateCruiseAdapterCompatibility(adapter: CruiseAdapter, fixture: CruiseAdapterCompatibilityFixture): Promise; export declare function assertCruiseAdapterCompatibility(adapter: CruiseAdapter, fixture: CruiseAdapterCompatibilityFixture): Promise;