export type BookingsListSortField = "bookingNumber" | "status" | "sellAmount" | "pax" | "startDate" | "endDate" | "createdAt"; export type BookingsListSortDir = "asc" | "desc"; export interface BookingsListFilters { status?: string | undefined; /** * Statuses to omit from the result. The bookings index uses this to * hide noise (e.g. drafts + expired) from the default "All" view. */ excludeStatuses?: string[] | undefined; search?: string | undefined; productId?: string | undefined; optionId?: string | undefined; /** * Restrict to bookings whose items reference this availability slot * (i.e. departure). Typically paired with `productId`. */ availabilitySlotId?: string | undefined; supplierId?: string | undefined; productCategoryId?: string | undefined; personId?: string | undefined; organizationId?: string | undefined; dateFrom?: string | undefined; dateTo?: string | undefined; paxMin?: number | undefined; paxMax?: number | undefined; sortBy?: BookingsListSortField | undefined; sortDir?: BookingsListSortDir | undefined; limit?: number | undefined; offset?: number | undefined; } export interface BookingGroupsListFilters { kind?: string | undefined; productId?: string | undefined; optionUnitId?: string | undefined; limit?: number | undefined; offset?: number | undefined; } export interface PricingPreviewFilters { productId: string; optionId?: string | null | undefined; catalogId?: string | null | undefined; } export interface TaxPreviewFilters { productId: string; subtotalCents: number; currency: string; } export declare const bookingsQueryKeys: { readonly all: readonly ["voyant", "bookings"]; readonly bookings: () => readonly ["voyant", "bookings", "bookings"]; readonly publicSessions: () => readonly ["voyant", "bookings", "public-sessions"]; readonly bookingsList: (filters: BookingsListFilters) => readonly ["voyant", "bookings", "bookings", "list", BookingsListFilters]; readonly booking: (id: string) => readonly ["voyant", "bookings", "bookings", "detail", string]; readonly publicSession: (sessionId: string) => readonly ["voyant", "bookings", "public-sessions", "detail", string]; readonly publicSessionState: (sessionId: string) => readonly ["voyant", "bookings", "public-sessions", "detail", string, "state"]; readonly items: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "items"]; readonly itemTravelers: (bookingId: string, itemId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "items", string, "travelers"]; readonly travelers: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "travelers"]; readonly sharingGroupsForSlot: (slotId: string) => readonly ["voyant", "bookings", "sharing-groups", "slot", string]; readonly travelersBySharingGroup: (slotId: string, groupId: string) => readonly ["voyant", "bookings", "sharing-groups", "slot", string, string, "travelers"]; readonly documents: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "documents"]; readonly supplierStatuses: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "supplier-statuses"]; readonly activity: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "activity"]; readonly actionLedger: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "action-ledger"]; readonly notes: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "notes"]; readonly groups: () => readonly ["voyant", "bookings", "groups"]; readonly groupsList: (filters: BookingGroupsListFilters) => readonly ["voyant", "bookings", "groups", "list", BookingGroupsListFilters]; readonly group: (id: string) => readonly ["voyant", "bookings", "groups", "detail", string]; readonly groupMembers: (id: string) => readonly ["voyant", "bookings", "groups", "detail", string, "members"]; readonly groupForBooking: (bookingId: string) => readonly ["voyant", "bookings", "bookings", "detail", string, "group"]; readonly pricingPreview: (filters: PricingPreviewFilters) => readonly ["voyant", "bookings", "pricing-preview", PricingPreviewFilters]; readonly taxPreview: (filters: TaxPreviewFilters) => readonly ["voyant", "bookings", "tax-preview", TaxPreviewFilters]; };