import { z } from "zod"; import { type StorefrontListFilters } from "../query-keys.js"; export interface UseStorefrontCruisesOptions extends StorefrontListFilters { enabled?: boolean; } /** * Storefront catalog browse — paginated, filterable, reads from * cruise_search_index on the server. Mixes local and external entries * with provenance markers so the UI can render an "External" badge. */ export declare function useStorefrontCruises(options?: UseStorefrontCruisesOptions): import("@tanstack/react-query").UseQueryResult | null; localCruiseId: string | null; slug: string; name: string; cruiseType: "ocean" | "river" | "expedition" | "coastal"; lineName: string; shipName: string; nights: number; embarkPortName: string | null; disembarkPortName: string | null; regions: string[] | null; themes: string[] | null; earliestDeparture: string | null; latestDeparture: string | null; departureCount: number | null; lowestPriceCents: number | null; lowestPriceCurrency: string | null; salesStatus: string | null; heroImageUrl: string | null; refreshedAt: string; createdAt: string; updatedAt: string; }[]; total: number; limit: number; offset: number; }>, Error>; declare const storefrontCruiseDetailSchema: z.ZodObject<{ data: z.ZodObject<{ source: z.ZodEnum<{ local: "local"; external: "external"; }>; sourceProvider: z.ZodNullable; sourceRef: z.ZodNullable>; summary: z.ZodObject<{ id: z.ZodString; source: z.ZodEnum<{ local: "local"; external: "external"; }>; sourceProvider: z.ZodNullable; sourceRef: z.ZodNullable>; localCruiseId: z.ZodNullable; slug: z.ZodString; name: z.ZodString; cruiseType: z.ZodEnum<{ ocean: "ocean"; river: "river"; expedition: "expedition"; coastal: "coastal"; }>; lineName: z.ZodString; shipName: z.ZodString; nights: z.ZodNumber; embarkPortName: z.ZodNullable; disembarkPortName: z.ZodNullable; regions: z.ZodNullable>; themes: z.ZodNullable>; earliestDeparture: z.ZodNullable; latestDeparture: z.ZodNullable; departureCount: z.ZodNullable; lowestPriceCents: z.ZodNullable; lowestPriceCurrency: z.ZodNullable; salesStatus: z.ZodNullable; heroImageUrl: z.ZodNullable; refreshedAt: z.ZodString; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>; cruise: z.ZodUnknown; sailings: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; export type StorefrontCruiseDetail = z.infer["data"]; export interface UseStorefrontCruiseOptions { enabled?: boolean; } export declare function useStorefrontCruise(slug: string | null | undefined, options?: UseStorefrontCruiseOptions): import("@tanstack/react-query").UseQueryResult | null; summary: { id: string; source: "local" | "external"; sourceProvider: string | null; sourceRef: Record | null; localCruiseId: string | null; slug: string; name: string; cruiseType: "ocean" | "river" | "expedition" | "coastal"; lineName: string; shipName: string; nights: number; embarkPortName: string | null; disembarkPortName: string | null; regions: string[] | null; themes: string[] | null; earliestDeparture: string | null; latestDeparture: string | null; departureCount: number | null; lowestPriceCents: number | null; lowestPriceCurrency: string | null; salesStatus: string | null; heroImageUrl: string | null; refreshedAt: string; createdAt: string; updatedAt: string; }; cruise: unknown; sailings?: unknown[] | undefined; }>, Error>; declare const storefrontSailingSchema: z.ZodObject<{ data: z.ZodObject<{ source: z.ZodUnion, z.ZodLiteral<"external">]>; sourceProvider: z.ZodOptional; sailing: z.ZodUnknown; pricing: z.ZodOptional; fareCodeName: z.ZodNullable; currency: z.ZodString; pricePerPerson: z.ZodString; secondGuestPricePerPerson: z.ZodNullable; singleSupplementPercent: z.ZodNullable; availability: z.ZodEnum<{ on_request: "on_request"; wait_list: "wait_list"; sold_out: "sold_out"; available: "available"; limited: "limited"; }>; availabilityCount: z.ZodNullable; priceCatalogId: z.ZodNullable; priceScheduleId: z.ZodNullable; bookingDeadline: z.ZodNullable; requiresRequest: z.ZodBoolean; notes: z.ZodNullable; externalRefs: z.ZodNullable>; lastSyncedAt: z.ZodNullable; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>>>; itinerary: z.ZodOptional; description: z.ZodNullable; portFacilityId: z.ZodNullable; arrivalTime: z.ZodNullable; departureTime: z.ZodNullable; isOvernight: z.ZodBoolean; isSeaDay: z.ZodBoolean; isExpeditionLanding: z.ZodBoolean; isSkipped: z.ZodBoolean; meals: z.ZodOptional; lunch: z.ZodOptional; dinner: z.ZodOptional; }, z.core.$strip>>; hasOverride: z.ZodBoolean; }, z.core.$strip>>>; }, z.core.$strip>; }, z.core.$strip>; export type StorefrontSailingDetail = z.infer["data"]; export declare function useStorefrontSailing(key: string | null | undefined, options?: UseStorefrontCruiseOptions): import("@tanstack/react-query").UseQueryResult | null; lastSyncedAt: string | null; createdAt: string; updatedAt: string; }[] | undefined; itinerary?: { dayNumber: number; title: string | null; description: string | null; portFacilityId: string | null; arrivalTime: string | null; departureTime: string | null; isOvernight: boolean; isSeaDay: boolean; isExpeditionLanding: boolean; isSkipped: boolean; hasOverride: boolean; meals?: { breakfast?: boolean | undefined; lunch?: boolean | undefined; dinner?: boolean | undefined; } | undefined; }[] | undefined; }>, Error>; export {};