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 };