import React, { FC, ReactNode } from 'react';
export interface BookingWizardGuestSelectorProps {
    disableChild?: boolean;
    showInfants?: boolean;
    minAdultAge?: number;
    maxAdultAge?: number;
    maxAdults?: number;
    maxChildren?: number;
    maxInfants?: number;
    disableRoom?: boolean;
    defaultValue?: {
        adults?: number;
        children?: number;
        infants?: number;
        room?: number;
    };
    /**
     * The official values after apply
     * @param adults
     * @param children
     * @param room
     */
    onChange?: (params: {
        adults: number;
        children: number;
        infants: number;
        room: number;
    }) => void;
    /**
     * Real-time values changing once user selects value
     * @param adults
     * @param children
     * @param room
     */
    onEditingChange?: (params: {
        adults: number;
        children: number;
        infants: number;
        room: number;
    }) => void;
    followElement?: HTMLElement | null;
    hideTooltip?: boolean;
    ageRange?: {
        [people in 'child' | 'infant']?: {
            min?: number;
            max?: number;
        };
    };
    notes?: ReactNode;
    onOverlayOpenChange?: (isOpen: boolean) => void;
    promoCodeConfig?: {
        divider: boolean;
        withLabel: boolean;
        promoCode: string;
        setPromoCode: React.Dispatch<React.SetStateAction<string>>;
        onChange: (value?: string) => Promise<void>;
        valid: boolean | undefined;
        hideTooltip: boolean | undefined;
    };
    submitConfig?: {
        onSubmit: () => false | undefined;
        disabledNext: boolean;
    };
}
export declare const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps>;
