import type { BookerEvent } from '../../../features/bookings/types';
import type { ApiErrorResponse, ApiSuccessResponse, ApiSuccessResponseWithoutData } from '../../types/index.ts';
type UseSlotsCallbacks = {
    onReserveSlotSuccess?: (data: ApiSuccessResponse<string>) => void;
    onReserveSlotError?: (err: ApiErrorResponse) => void;
    onDeleteSlotSuccess?: (data: ApiSuccessResponseWithoutData) => void;
    onDeleteSlotError?: (err: ApiErrorResponse) => void;
    handleSlotReservation?: (timeslot: string) => void;
};
export type UseSlotsReturnType = ReturnType<typeof useSlots>;
export declare const useSlots: (event: {
    data?: Pick<BookerEvent, "id" | "length"> | null;
}, { onReserveSlotSuccess, onReserveSlotError, onDeleteSlotSuccess, onDeleteSlotError, isBookingDryRun, handleSlotReservation, }?: UseSlotsCallbacks & {
    isBookingDryRun?: boolean;
}) => {
    selectedTimeslot: string | null;
    setSelectedTimeslot: (timeslot: string | null) => void;
    setSlotReservationId: (uid: string) => void;
    slotReservationId: string | null;
    handleReserveSlot: () => void;
    handleRemoveSlot: () => void;
    allSelectedTimeslots: never[];
};
export {};
//# sourceMappingURL=useSlots.d.ts.map