import { ComboBoxProps as AriaComboBoxProps } from 'react-aria-components/ComboBox';
import { ListBoxItemProps, ListBoxProps, ListBoxSectionProps } from 'react-aria-components/ListBox';
import { PopoverProps as AriaPopoverProps } from 'react-aria-components/Popover';
import { AsyncLoadable, GlobalDOMAttributes, HelpTextProps, LoadingState, SingleSelection, SpectrumLabelableProps } from '@react-types/shared';
import { ContextValue } from 'react-aria-components/slots';
import { StyleProps } from './style-utils';
import { ReactNode } from 'react';
import { InputProps } from 'react-aria-components/Input';
import { TextFieldRef } from './TextField';
export interface ComboboxStyleProps {
    /**
     * The size of the Combobox.
     *
     * @default 'M'
     */
    size?: 'S' | 'M' | 'L' | 'XL';
}
export interface ComboBoxProps<T extends object> extends Omit<AriaComboBoxProps<T>, 'children' | 'style' | 'className' | 'render' | 'defaultFilter' | 'allowsEmptyCollection' | 'selectionMode' | 'selectedKey' | 'defaultSelectedKey' | 'onSelectionChange' | 'value' | 'defaultValue' | 'onChange' | keyof GlobalDOMAttributes>, Omit<SingleSelection, 'disallowEmptySelection'>, ComboboxStyleProps, StyleProps, SpectrumLabelableProps, HelpTextProps, Pick<ListBoxProps<T>, 'items' | 'dependencies'>, Pick<AriaPopoverProps, 'shouldFlip'>, Pick<AsyncLoadable, 'onLoadMore'>, Pick<InputProps, 'placeholder'> {
    /** The contents of the collection. */
    children: ReactNode | ((item: T) => ReactNode);
    /**
     * Direction the menu will render relative to the ComboBox.
     *
     * @default 'bottom'
     */
    direction?: 'bottom' | 'top';
    /**
     * Alignment of the menu relative to the input target.
     *
     * @default 'start'
     */
    align?: 'start' | 'end';
    /** Width of the menu. By default, matches width of the trigger. Note that the minimum width of the dropdown is always equal to the trigger's width. */
    menuWidth?: number;
    /** The current loading state of the ComboBox. Determines whether or not the progress circle should be shown. */
    loadingState?: LoadingState;
}
export declare const ComboBoxContext: import("react").Context<ContextValue<Partial<ComboBoxProps<any>>, TextFieldRef<HTMLInputElement>>>;
export declare let listbox: (props: {
    size: "L" | "M" | "S" | "XL";
}) => import("../style/types").StyleString<"alignContent" | "alignItems" | "alignSelf" | "animation" | "animationDelay" | "animationDirection" | "animationDuration" | "animationFillMode" | "animationIterationCount" | "animationPlayState" | "animationTimingFunction" | "appearance" | "aspectRatio" | "backgroundAttachment" | "backgroundBlendMode" | "backgroundClip" | "backgroundColor" | "backgroundImage" | "backgroundOrigin" | "backgroundPosition" | "backgroundRepeat" | "backgroundSize" | "borderBottomEndRadius" | "borderBottomRadius" | "borderBottomStartRadius" | "borderBottomWidth" | "borderCollapse" | "borderColor" | "borderEndRadius" | "borderEndWidth" | "borderRadius" | "borderSpacing" | "borderStartRadius" | "borderStartWidth" | "borderStyle" | "borderTopEndRadius" | "borderTopRadius" | "borderTopStartRadius" | "borderTopWidth" | "borderWidth" | "borderXWidth" | "borderYWidth" | "bottom" | "boxDecorationBreak" | "boxShadow" | "boxSizing" | "breakAfter" | "breakBefore" | "breakInside" | "captionSide" | "caretColor" | "clear" | "color" | "colorScheme" | "columnGap" | "contain" | "containIntrinsicHeight" | "containIntrinsicWidth" | "containerName" | "containerType" | "cursor" | "disableTapHighlight" | "display" | "fill" | "filter" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "float" | "font" | "fontFamily" | "fontSize" | "fontWeight" | "forcedColorAdjust" | "gap" | "gridArea" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "hyphens" | "inset" | "insetEnd" | "insetStart" | "insetX" | "insetY" | "isolation" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "lineClamp" | "lineHeight" | "listStylePosition" | "listStyleType" | "margin" | "marginBottom" | "marginEnd" | "marginStart" | "marginTop" | "marginX" | "marginY" | "maxHeight" | "maxSize" | "maxWidth" | "minHeight" | "minSize" | "minWidth" | "mixBlendMode" | "objectFit" | "objectPosition" | "opacity" | "order" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "overflow" | "overflowWrap" | "overflowX" | "overflowY" | "overscrollBehavior" | "overscrollBehaviorX" | "overscrollBehaviorY" | "padding" | "paddingBottom" | "paddingEnd" | "paddingStart" | "paddingTop" | "paddingX" | "paddingY" | "placeContent" | "placeItems" | "placeSelf" | "pointerEvents" | "position" | "resize" | "right" | "rotate" | "rowGap" | "scale" | "scaleX" | "scaleY" | "scrollBehavior" | "scrollMargin" | "scrollMarginBottom" | "scrollMarginEnd" | "scrollMarginStart" | "scrollMarginTop" | "scrollMarginX" | "scrollMarginY" | "scrollPadding" | "scrollPaddingBottom" | "scrollPaddingEnd" | "scrollPaddingStart" | "scrollPaddingTop" | "scrollPaddingX" | "scrollPaddingY" | "scrollSnapAlign" | "scrollSnapStop" | "scrollSnapType" | "scrollbarWidth" | "size" | "stroke" | "strokeWidth" | "tableLayout" | "textAlign" | "textDecoration" | "textIndent" | "textOverflow" | "textTransform" | "textWrap" | "top" | "touchAction" | "transform" | "transformOrigin" | "transition" | "transitionDelay" | "transitionDuration" | "transitionTimingFunction" | "translate" | "translateX" | "translateY" | "truncate" | "unicodeBidi" | "userSelect" | "verticalAlign" | "visibility" | "whiteSpace" | "width" | "willChange" | "wordBreak" | "zIndex" | `--${string}`>;
export declare let listboxItem: (props: {
    isDisabled: boolean | undefined;
    isFocusVisible: boolean | undefined;
    isFocused: boolean | undefined;
    isHovered: boolean | undefined;
    isLink: boolean | undefined;
    isPressed: boolean | undefined;
    size: "L" | "M" | "S" | "XL" | "XS" | undefined;
} | {
    [x: string]: any;
}, overrides?: import("../style/types").StyleString<string> | null | undefined) => import("../style/types").StyleString<"alignItems" | "backgroundColor" | "borderRadius" | "boxSizing" | "color" | "columnGap" | "cursor" | "display" | "font" | "gridColumnEnd" | "gridColumnStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "minHeight" | "minWidth" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "paddingBottom" | "paddingX" | "paddingY" | "position" | "rowGap" | "textDecoration" | "transition">;
export declare let listboxHeader: (props: {
    size?: "L" | "M" | "S" | "XL" | undefined;
}) => import("../style/types").StyleString<"alignContent" | "alignItems" | "alignSelf" | "animation" | "animationDelay" | "animationDirection" | "animationDuration" | "animationFillMode" | "animationIterationCount" | "animationPlayState" | "animationTimingFunction" | "appearance" | "aspectRatio" | "backgroundAttachment" | "backgroundBlendMode" | "backgroundClip" | "backgroundColor" | "backgroundImage" | "backgroundOrigin" | "backgroundPosition" | "backgroundRepeat" | "backgroundSize" | "borderBottomEndRadius" | "borderBottomRadius" | "borderBottomStartRadius" | "borderBottomWidth" | "borderCollapse" | "borderColor" | "borderEndRadius" | "borderEndWidth" | "borderRadius" | "borderSpacing" | "borderStartRadius" | "borderStartWidth" | "borderStyle" | "borderTopEndRadius" | "borderTopRadius" | "borderTopStartRadius" | "borderTopWidth" | "borderWidth" | "borderXWidth" | "borderYWidth" | "bottom" | "boxDecorationBreak" | "boxShadow" | "boxSizing" | "breakAfter" | "breakBefore" | "breakInside" | "captionSide" | "caretColor" | "clear" | "color" | "colorScheme" | "columnGap" | "contain" | "containIntrinsicHeight" | "containIntrinsicWidth" | "containerName" | "containerType" | "cursor" | "disableTapHighlight" | "display" | "fill" | "filter" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "float" | "font" | "fontFamily" | "fontSize" | "fontWeight" | "forcedColorAdjust" | "gap" | "gridArea" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumnEnd" | "gridColumnStart" | "gridRowEnd" | "gridRowStart" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "hyphens" | "inset" | "insetEnd" | "insetStart" | "insetX" | "insetY" | "isolation" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "lineClamp" | "lineHeight" | "listStylePosition" | "listStyleType" | "margin" | "marginBottom" | "marginEnd" | "marginStart" | "marginTop" | "marginX" | "marginY" | "maxHeight" | "maxSize" | "maxWidth" | "minHeight" | "minSize" | "minWidth" | "mixBlendMode" | "objectFit" | "objectPosition" | "opacity" | "order" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "overflow" | "overflowWrap" | "overflowX" | "overflowY" | "overscrollBehavior" | "overscrollBehaviorX" | "overscrollBehaviorY" | "padding" | "paddingBottom" | "paddingEnd" | "paddingStart" | "paddingTop" | "paddingX" | "paddingY" | "placeContent" | "placeItems" | "placeSelf" | "pointerEvents" | "position" | "resize" | "right" | "rotate" | "rowGap" | "scale" | "scaleX" | "scaleY" | "scrollBehavior" | "scrollMargin" | "scrollMarginBottom" | "scrollMarginEnd" | "scrollMarginStart" | "scrollMarginTop" | "scrollMarginX" | "scrollMarginY" | "scrollPadding" | "scrollPaddingBottom" | "scrollPaddingEnd" | "scrollPaddingStart" | "scrollPaddingTop" | "scrollPaddingX" | "scrollPaddingY" | "scrollSnapAlign" | "scrollSnapStop" | "scrollSnapType" | "scrollbarWidth" | "size" | "stroke" | "strokeWidth" | "tableLayout" | "textAlign" | "textDecoration" | "textIndent" | "textOverflow" | "textTransform" | "textWrap" | "top" | "touchAction" | "transform" | "transformOrigin" | "transition" | "transitionDelay" | "transitionDuration" | "transitionTimingFunction" | "translate" | "translateX" | "translateY" | "truncate" | "unicodeBidi" | "userSelect" | "verticalAlign" | "visibility" | "whiteSpace" | "width" | "willChange" | "wordBreak" | "zIndex" | `--${string}`>;
export declare const LOADER_ROW_HEIGHTS: {
    S: {
        medium: number;
        large: number;
    };
    M: {
        medium: number;
        large: number;
    };
    L: {
        medium: number;
        large: number;
    };
    XL: {
        medium: number;
        large: number;
    };
};
/**
 * ComboBox allow users to choose a single option from a collapsible list of options when space is limited.
 */
export declare const ComboBox: <T extends object>(props: ComboBoxProps<T> & import("react").RefAttributes<TextFieldRef<HTMLInputElement>>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
export interface ComboBoxItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | 'onKeyDown' | 'onKeyUp' | keyof GlobalDOMAttributes>, StyleProps {
    children: ReactNode;
}
export declare function ComboBoxItem(props: ComboBoxItemProps): ReactNode;
export interface ComboBoxSectionProps<T extends object> extends Omit<ListBoxSectionProps<T>, keyof GlobalDOMAttributes> {
}
export declare function ComboBoxSection<T extends object>(props: ComboBoxSectionProps<T>): ReactNode;
export declare const Divider: (props: {
    size?: "L" | "M" | "S" | "XL" | undefined;
} & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
