import type { IUseBookingLoadingStates } from '../Booker/components/hooks/useBookings';
import type { BookerEvent } from '../types';
import type { Slot } from '../../schedules';
import type { IGetAvailableSlots } from '../../../trpc/server/routers/viewer/slots/util';
type TOnTimeSelect = (time: string, attendees: number, seatsPerTimeSlot?: number | null, bookingUid?: string) => void;
type TOnTentativeTimeSelect = ({ time, attendees, seatsPerTimeSlot, bookingUid, }: {
    time: string;
    attendees: number;
    seatsPerTimeSlot?: number | null;
    bookingUid?: string;
}) => void;
export type AvailableTimesProps = {
    slots: IGetAvailableSlots["slots"][string];
    showTimeFormatToggle?: boolean;
    className?: string;
    onTentativeTimeSelect?: TOnTentativeTimeSelect;
    unavailableTimeSlots?: string[];
} & Omit<SlotItemProps, "slot">;
type SlotItemProps = {
    slot: Slot;
    seatsPerTimeSlot?: number | null;
    selectedSlots?: string[];
    onTimeSelect?: TOnTimeSelect;
    onTentativeTimeSelect?: TOnTentativeTimeSelect;
    showAvailableSeatsCount?: boolean | null;
    event: {
        data?: Pick<BookerEvent, "length" | "bookingFields" | "price" | "currency" | "metadata"> | null;
    };
    customClassNames?: string;
    confirmStepClassNames?: {
        confirmButton?: string;
    };
    loadingStates?: IUseBookingLoadingStates;
    isVerificationCodeSending?: boolean;
    renderConfirmNotVerifyEmailButtonCond?: boolean;
    skipConfirmStep?: boolean;
    shouldRenderCaptcha?: boolean;
    watchedCfToken?: string;
    unavailableTimeSlots?: string[];
    confirmButtonDisabled?: boolean;
    handleSlotClick?: (slot: Slot, isOverlapping: boolean) => void;
};
export declare const AvailableTimes: ({ slots, showTimeFormatToggle, className, ...props }: AvailableTimesProps) => JSX.Element;
export declare const AvailableTimesSkeleton: () => JSX.Element;
export {};
//# sourceMappingURL=AvailableTimes.d.ts.map