import { KeyboardEvent, ReactNode, RefObject } from 'react'; import { SelectListV2ChromeTokens } from './selectListV2.types'; export type SelectListV2SurfaceProps = { listId: string; multiSelectable?: boolean; ariaLabelledBy?: string; ariaLabel?: string; chrome: SelectListV2ChromeTokens; showSearch: boolean; searchPlaceholder: string; searchValue: string; searchInputRef: RefObject; onSearchChange: (value: string) => void; onSearchArrowDown: () => void; isSearchControlled: boolean; isSearchLoading: boolean; isEmpty: boolean; emptyStateText: string; disabled?: boolean; /** Replaces the entire body; zero tab stops, `aria-busy="true"`. */ skeleton?: ReactNode; /** Select-all / clear-all controls, rendered above the scroll area. */ header?: ReactNode; /** Omitted while virtualized: VirtualList owns its own scroll viewport. */ maxHeight?: number; onListKeyDown: (e: KeyboardEvent) => void; children: ReactNode; /** * Infinite scroll for the non-virtualized path. While virtualized, * `VirtualList` owns the scroll viewport and these are passed to it * instead, so the surface leaves them unset. */ onEndReached?: () => void; endReachedThreshold?: number; hasMore?: boolean; isLoadingMore?: boolean; /** Changes when the rendered page/search result set changes. */ paginationKey?: string | number; loadingComponent?: ReactNode; }; declare const SelectListV2Surface: { ({ listId, multiSelectable, ariaLabelledBy, ariaLabel, chrome, showSearch, searchPlaceholder, searchValue, searchInputRef, onSearchChange, onSearchArrowDown, isSearchControlled, isSearchLoading, isEmpty, emptyStateText, disabled, skeleton, header, maxHeight, onListKeyDown, children, onEndReached, endReachedThreshold, hasMore, isLoadingMore, paginationKey, loadingComponent, }: SelectListV2SurfaceProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; export default SelectListV2Surface;