import type { BookingDTO, CreateBookingDTO, UpdateBookingDTO } from '@explorins/pers-shared'; import type { BookingQueryOptions, BookingValidationOptions } from '@explorins/pers-sdk'; export type { BookingQueryOptions, BookingValidationOptions } from '@explorins/pers-sdk'; /** * Hook interface for booking operations */ export interface BookingHook { /** Get all bookings with optional filters */ getBookings: (options?: BookingQueryOptions) => Promise; /** Get a single booking by ID */ getBookingById: (id: string) => Promise; /** Create a new booking */ createBooking: (data: CreateBookingDTO) => Promise; /** Update an existing booking */ updateBooking: (id: string, data: UpdateBookingDTO) => Promise; /** Delete a booking */ deleteBooking: (id: string) => Promise; /** Check if a user has a valid booking */ hasValidBooking: (userId: string, options?: BookingValidationOptions) => Promise; /** Whether the SDK is initialized */ isInitialized: boolean; /** Whether the user is authenticated */ isAuthenticated: boolean; } /** * React hook for booking management operations * * Provides methods to create, read, update, and delete bookings, * as well as checking if a user has a valid booking for redemption eligibility. * * @example * ```typescript * import { useBookings } from '@explorins/pers-sdk-react-native'; * * function BookingScreen() { * const { getBookings, createBooking, hasValidBooking } = useBookings(); * * // List all bookings for a user * const userBookings = await getBookings({ userId: 'user-123' }); * * // Create a booking * const newBooking = await createBooking({ * userId: 'user-123', * locationName: 'Resort Hotel', * checkInDate: '2026-06-01', * checkOutDate: '2026-06-05' * }); * * // Check if user has valid booking for redemption * const isEligible = await hasValidBooking('user-123', { status: 'active' }); * } * ``` */ export declare const useBookings: () => BookingHook; //# sourceMappingURL=useBookings.d.ts.map