import type { BookingCreateItemLineInput } from "../index.js"; export interface ProductPickerSearchRecord { id?: string; name: string; description?: string | null; sellCurrency?: string | null; sellAmountCents?: number | null; supplierName?: string | null; sourceKind?: string | null; sourceConnectionId?: string | null; sourceRef?: string | null; } export interface CatalogProductSearchHitLike { id: string; document: { fields: Record; }; } /** Normalize an indexed catalog hit into the small record the booking picker needs. */ export declare function catalogProductPickerRecordFromHit(hit: CatalogProductSearchHitLike): ProductPickerSearchRecord & { id: string; }; export interface DepartureSlotSearchRecord { id: string; optionId: string | null; startsAt: string; status?: string; } export interface BookingCreateUnitLineRecord { optionId: string | null; optionUnitId: string; unitName: string; } export interface BookingCreatePricingLineRecord { unitId: string; pricingCategoryId?: string | null; label: string; unitAmountCents: number | null; totalAmountCents: number | null; quantity?: number; } export interface BookingCreatePricingRecord { confirmedAmountCents: number | null; lines: BookingCreatePricingLineRecord[]; } type BookingCreateStepperUnitType = "person" | "group" | "room" | "vehicle" | "service" | "other" | null; export interface BookingCreateTravelerAssignableUnitRecord { optionId?: string | null; optionUnitId: string; unitType?: BookingCreateStepperUnitType; } export interface BookingCreateCapacityUnitRecord { optionUnitId: string; unitName: string; unitType?: BookingCreateStepperUnitType; occupancyMax?: number | null; } export interface BookingCreateCapacityTravelerRecord { inventoryUnitId?: string | null; } export interface BookingCreateOverCapacityAssignment { optionUnitId: string; unitName: string; assignedTravelers: number; capacity: number; } export declare function normalizeBookingSearchText(value: string): string; export declare function matchesBookingSearchText(value: string | null | undefined, query: string): boolean; export declare function productMatchesPickerSearch(product: ProductPickerSearchRecord | null | undefined, query: string): boolean; export type BillingPersonContactValidationResult = "valid" | "missing-contact" | "invalid-email"; export declare function isRealBookingEmail(value: string | null | undefined): boolean; export declare function validateBillingPersonContact(contact: { email?: string | null; phone?: string | null; } | null | undefined): BillingPersonContactValidationResult; export declare function getTravelerAssignableStepperUnits(units: readonly TUnit[]): TUnit[]; export declare function getOverCapacityInventoryAssignments(units: readonly BookingCreateCapacityUnitRecord[], quantities: Record, travelers: readonly BookingCreateCapacityTravelerRecord[]): BookingCreateOverCapacityAssignment[]; export declare function getBookableDepartureSlots(slots: readonly TSlot[], options: { nowIso: string; optionId: string | null; }): TSlot[]; export declare function itemLinesToRows(quantities: Record, units: BookingCreateUnitLineRecord[], pricing: BookingCreatePricingRecord | null, travelerKeysByUnitId?: Record, travelerKeysByUnitAndCategoryId?: Record>): BookingCreateItemLineInput[]; export declare function getSelectedSharedRoomUnitId(quantities: Record): string | null; export {};