import React from 'react';
import { type UseFloatingReturn } from '@floating-ui/react-dom';
import { type SelectProps as AriaSelectProps } from '@react-stately/select';
import { type Key } from '@react-types/shared';
import { type OverrideClassName } from "../types/OverrideClassName";
import { type SelectPopoverContentsProps, type SelectToggleProps } from './subcomponents';
import { type SingleSelectItem, type SingleSelectOption } from './types';
type OmittedAriaSelectProps = 'children' | 'items' | 'onSelectionChange';
export type SingleSelectProps = {
/**
* Item objects in the collection.
*/
items: SingleSelectItem [];
id?: string;
/**
* Optional render function that allows custom rendering of the trigger button.
* The function receives the `selectToggleProps` and a `ref` to be applied
* to the button element.
*/
trigger?: (selectToggleProps: SelectToggleProps & {
ref: UseFloatingReturn['refs']['setReference'];
}) => JSX.Element;
/**
* Optional render function that allows custom rendering of the items in the dropdown.
* The function receives an object with `items` property, which is an array of
* `SingleSelectItemNode` objects.
*/
children?: SelectPopoverContentsProps['children'];
/**
* Updates the styling of the validation FieldMessage.
*/
status?: 'error' | 'caution';
/**
* A descriptive message for the 'status' states.
*/
validationMessage?: React.ReactNode | undefined;
/**
* Use the `reversed` styles.
*/
isReversed?: boolean;
/**
* Use the `fullWidth` styles.
*/
isFullWidth?: boolean;
/**
* Creates a portal for the Popover to the matching element id
*/
portalContainerId?: string;
/**
* Handler that is called when the selection changes.
*/
onSelectionChange?: (key: Key) => void;
} & OverrideClassName, OmittedAriaSelectProps | 'placeholder'>>;
/**
* {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3081896474/Select Guidance} |
* {@link https://cultureamp.design/?path=/docs/components-select--docs Storybook}
*/
export declare const SingleSelect: {
({ label, items, id: propsId, trigger, children, status, validationMessage, isReversed, isRequired, isFullWidth, classNameOverride, selectedKey, description, isDisabled, onSelectionChange, portalContainerId, ...restProps }: SingleSelectProps ): JSX.Element;
displayName: string;
Section: {
({ section, }: import("./subcomponents").ListBoxSectionProps ): JSX.Element;
displayName: string;
};
SectionDivider: {
(): JSX.Element;
displayName: string;
};
Option: {
({ item, classNameOverride, ...props }: import("./subcomponents").OptionProps ): JSX.Element;
displayName: string;
};
ItemDefaultRender: {
({ item, }: import("./subcomponents").ListItemProps ): JSX.Element;
displayName: string;
};
};
export {};