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<BookingDTO[]>;
    /** Get a single booking by ID */
    getBookingById: (id: string) => Promise<BookingDTO>;
    /** Create a new booking */
    createBooking: (data: CreateBookingDTO) => Promise<BookingDTO>;
    /** Update an existing booking */
    updateBooking: (id: string, data: UpdateBookingDTO) => Promise<BookingDTO>;
    /** Delete a booking */
    deleteBooking: (id: string) => Promise<void>;
    /** Check if a user has a valid booking */
    hasValidBooking: (userId: string, options?: BookingValidationOptions) => Promise<boolean>;
    /** 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