import type PopperJS from '@popperjs/core'; import { ElementType } from 'react'; import { CardProps } from '../Card'; import { LabelFieldProps } from '../LabelField'; import { StudioIconProps } from '../public/StudioIcon'; export type OptionId = any; export interface Option { id: OptionId; label: string; className?: string; content?: React.ReactNode; icon?: string | StudioIconProps; } export interface SelectOption extends Option { } export type SearchOptions = { empty: React.ReactNode; value?: string; onChange?: (v: string) => void; }; export interface SelectFieldProps extends Omit, 'label' | 'size'> { classNameContainer?: string; name?: string; handlerSelected?(o: Option): React.ReactNode; handlerOption?(o: Option): React.ReactNode; label?: React.ReactNode; classNameLabel?: string; afterLabel?: React.ReactNode; labelAs?: ElementType; options: Option[]; emptyState?: string; includeEmpty?: boolean; required?: boolean; search?: boolean | SearchOptions; open?: boolean; size?: CardProps['size']; border?: CardProps['border']; value: OptionId; caret?: string; width?: string; pos?: 'top' | 'right' | 'bottom' | 'left'; autoFocus?: boolean; tip?: LabelFieldProps['tip']; row?: boolean; hideCaret?: boolean; onChange(value: OptionId, option?: Option): void; onBlur?(): void; onFocus?(): void; } export declare const optionsClassName: string; export declare const selectPopperOptions: Partial; declare const boundary: false | HTMLElement; export declare const getPopperSelectOptions: (props?: { offset?: number[]; boundary?: HTMLElement; }) => Partial; export declare function SelectFieldItem(props: { option: Option; active?: boolean; selected?: Option; isSelected?: () => boolean; }): import("react/jsx-runtime").JSX.Element; export default function SelectField(props: SelectFieldProps): import("react/jsx-runtime").JSX.Element; export {};