import React, { Ref, SelectHTMLAttributes } from "react"; import { ControlsProps } from "../../common/controls.type"; import { IconProp } from "../icon"; type SelectType = "default" | "primary" | "plain" | "borderless" | "text"; interface Props extends Omit, "value" | "size">, ControlsProps { value: T; type?: SelectType; children: React.ReactElement | React.ReactElement[] | JSX.Element | JSX.Element[]; placeholder?: string; icon?: IconProp; compareKey?: keyof NonNullable; } declare const Select: (props: Props & { ref?: React.Ref | undefined; }) => React.ReactElement; interface SelectButtonProps extends Omit, "value" | "children"> { open?: boolean; children?: React.ReactNode; onClick?: () => void; } export declare function SelectButton({ type, size, placeholder, icon, success, warning, error, disabled, onClick, open, className, }: SelectButtonProps): React.JSX.Element; type SelectLabel = "string" | JSX.Element | React.ReactElement | React.ReactNode; interface SelectOptionData { value: T; icon?: IconProp; label?: SelectLabel; } interface SelectOptionProps extends SelectOptionData { children?: SelectLabel; disabled?: boolean; } declare const SelectOption: (props: SelectOptionProps) => React.JSX.Element; export { Select, SelectOption };