import { FormValidator } from '@viasat/beam-shared/components/form'; import { InputSize } from '@viasat/beam-shared/components/input'; import { ThemeTypes } from '@viasat/beam-shared/utils'; import { ComponentPropsWithRef, FC, PropsWithoutRef, ReactNode } from 'react'; import { Option, OptionGroup } from '../_Options'; export interface SelectProps extends Omit, 'size'> { /** * Specify HelperText for Select */ helperText?: ReactNode; /** * Specify Label for Select */ label?: ReactNode; /** * Specify if Select is a required input * * @default false */ required?: boolean; /** * Specify if Select displays in a read-only state * * @default false */ readOnly?: boolean; /** * Specify if Select displays in a disabled state * * @default false */ disabled?: boolean; /** * Specify error text and display error state of a Select */ error?: boolean | string; /** * Specify if Select is fluid * * @default false */ fluid?: boolean; /** * Specify the size of Select * @default 'md' */ size?: InputSize; /** * Specify the width of Select */ width?: string; /** * Specify if the Select displays with an asterisk * * @default false */ hideRequiredMarker?: boolean; /** * Specify form validation rules for Select */ validationRules?: FormValidator[]; /** * Specify the theme of the Select. By default it inherits the theme from the parent */ theme?: ThemeTypes; /** * Sets the selection type to multiselect. Set this to true for multiselect, even if fully controlling selection state. This enables styles and accessibility properties to be set * * @default false */ multiple?: boolean; /** * Specify if the Select is clearable. Defaults to `true` if `multiple` is set, `false` otherwise */ clearable?: boolean; /** * Specify content to display before selection */ contentBefore?: ReactNode; /** * Specify content to display after selection */ contentAfter?: ReactNode; /** * Add any combination of `Select.Option` and `Select.OptionGroup` components as children */ children: ReactNode; /** * Specify an accessible label for the Select */ ariaLabel?: string; /** * Specify a placeholder for the Select */ placeholder?: string; } declare const SelectComponent: FC>; export declare const Select: typeof SelectComponent & { Option: typeof Option; OptionGroup: typeof OptionGroup; }; export default Select;