import type { BookingQuoteInternalRecord, BookingSessionCompositeHandler, BookingSessionInternalRecord, CompositeBookingCommitment } from "@voyant-travel/catalog/booking-engine"; import type { PostgresJsDatabase } from "drizzle-orm/postgres-js"; import type { TripComponent, TripSnapshot } from "./schema.js"; export interface TripBookingSessionCompositePersistence { loadSnapshot(db: PostgresJsDatabase, snapshotId: string): Promise; loadCurrentComponents(db: PostgresJsDatabase, envelopeId: string): Promise; loadAllocationIds(db: PostgresJsDatabase, bookingId: string): Promise; markManualConfirmationRequired(db: PostgresJsDatabase, component: TripComponent): Promise; recordComponentCommit(input: { db: PostgresJsDatabase; session: BookingSessionInternalRecord; snapshot: TripSnapshot; component: TripComponent; quote: BookingQuoteInternalRecord; commitment: CompositeBookingCommitment; }): Promise; } /** * Trips-owned coordinator for a Booking Session targeting one frozen Trip * Snapshot. Catalog supplies the leaf quote/hold/commit implementation so the * coordinator never reimplements a vertical or supplier commitment point. */ export declare function createTripBookingSessionCompositeHandler(overrides?: Partial): BookingSessionCompositeHandler;