import { JSX, Ref } from 'react'; import { Placement, UseFloatingOptions, UseDismissProps } from '@floating-ui/react'; import { ShallowMerge } from '@janbox/storefront-ui/types'; import { WbVirtualizedListProps } from '../virtualized-list'; interface WbSelectExtendedProps { innerRef?: Ref; placement?: Placement; contentWidth?: number | 'fit-parent'; onOpenChange?: UseFloatingOptions['onOpenChange']; visible?: boolean; dissmiss?: UseDismissProps; searchable?: boolean; optionLabel?: keyof O | ((option: O) => React.ReactNode); optionValue?: keyof O | ((option: O) => T); optionSearchLabel?: keyof O | Array | ((option: O) => string | string[]); defaultValue?: T; value?: T | null; options: O[]; onChange?: (value: T, option: O) => void; placeholder?: string; prefix?: React.ReactNode; suffix?: React.ReactNode; size?: '28' | '32' | '36'; listProps?: Partial; selectedRenderer?: (option: O) => React.ReactNode; checkedIcon?: React.ReactNode; } export type WbSelectProps = ShallowMerge>; export type WbSelectOptionValue = string | number; export declare const WbSelect: (props: WbSelectProps) => import("@emotion/react/jsx-runtime").JSX.Element; export {};