import React, { ReactElement, ReactNode } from 'react'; import { MenuItemProps } from '../menuItem'; import { LoadingProps } from '../loading'; import { OptionType } from '../selectionContext'; import { Id } from '../../types'; export interface MenuOptionType extends Omit, Omit, 'children'> { /** * 若指定为`true`,则弹框打开时会自动滚动到该选项,默认为`false` */ scrollHere?: boolean; } export type OptionsBaseSharedProps, V extends Id = Id> = { showCheckbox?: boolean; loading?: boolean; options?: O[]; children?: ReactNode; /** 指定options中用于当作label的键, 默认为`"label"` */ labelKey?: keyof O; /** 指定options中的主键名, 默认为`"value"` */ primaryKey?: keyof O; /** 指定options中用于当作searchToken的键, 默认为`"searchToken"` */ searchTokenKey?: keyof O; /** 遍历选项时会触发该方法,若返回true,表示该选项满足筛选条件,反之会将该选项排除 */ filterPredicate?(searchValue: string, option: O, index: number): any; }; export interface OptionsBaseProps, V extends Id = Id> extends OptionsBaseSharedProps, LoadingProps { searchValue?: string; selectedValue?: V | V[]; onToggleSelected?(value: V, e: KeyboardEvent | React.MouseEvent): void; /** * @private * 内部使用,传入的选项是否已经经过筛选 */ _optionsAlreadyFilter?: boolean; } export declare const OptionsBase: , V extends Id = Id>(props: OptionsBaseProps) => ReactElement;