import type { PricingBreakdownV1 } from "@voyant-travel/catalog/booking-engine"; import type { NewTripComponent, TripComponent, TripEnvelope } from "./schema.js"; import type { ComponentCheckoutResult, ReserveComponentResult } from "./service-types.js"; import { type TripComponentPricingSnapshot, type TripComponentTaxLine, type TripEnvelopePricingSnapshot, type UpdateTripComponentInput, type UpdateTripComponentRefsInput } from "./validation.js"; export declare function hasCommittedComponentReference(component: Pick): boolean; export declare function assertTripComponentCanBeUpdated(component: TripComponent, patch: UpdateTripComponentInput): void; export declare function assertTripComponentCanReceiveRefs(component: TripComponent, refs: UpdateTripComponentRefsInput): void; export declare function assertTripComponentCanBeReserved(component: TripComponent, now?: Date): void; export declare function reserveResultToComponentPatch(result: ReserveComponentResult): Partial; export declare function shouldReplayReserve(envelope: Pick, idempotencyKey?: string): boolean; export declare function shouldReplayCheckout(envelope: Pick, idempotencyKey?: string): boolean; export declare function assertTripComponentCanStartCheckout(component: TripComponent, now?: Date): void; export declare function checkoutResultToComponentPatch(result: ComponentCheckoutResult): Partial; export declare function pricingSnapshotFromBreakdown(pricing: PricingBreakdownV1, priceExpiresAt?: string, warnings?: string[]): TripComponentPricingSnapshot; export declare function taxLinesFromBreakdown(pricing: PricingBreakdownV1): TripComponentTaxLine[]; export declare function aggregateComponentPricing(components: Array & { status?: string; }>, preferredCurrency?: string): TripEnvelopePricingSnapshot;