import { EnumOptionsType as _EnumOptionsType } from "@rjsf/utils";
import { JSONSchemaArray, JSONSchemaEnum, JSONSchemaEnumOneOf, WidgetProps } from "../../types";
type EnumOptionsType<T = string | number | undefined> = Omit<_EnumOptionsType, "value"> & {
    value: T;
};
type SelectWidgetCustomProps<T> = {
    includeEmpty?: boolean;
    getEnumOptionsAsync?: () => Promise<EnumOptionsType<T>[]>;
};
type SingleSelectWidgetProps<T extends string | number> = Omit<WidgetProps<JSONSchemaEnum>, "value" | "onChange"> & {
    value?: T;
    onChange: (value?: T) => void;
} & SelectWidgetCustomProps<T>;
type MultiSelectWidgetProps<T extends string | number> = Omit<WidgetProps<JSONSchemaArray<JSONSchemaEnumOneOf>>, "value" | "onChange"> & {
    value?: T[];
    onChange: (value?: T[]) => void;
} & SelectWidgetCustomProps<T>;
type SelectWidgetProps<T extends string | number> = SingleSelectWidgetProps<T> | MultiSelectWidgetProps<T>;
declare const SelectWidget: <T extends string | number>(props: SelectWidgetProps<T>) => JSX.Element;
export default SelectWidget;
export declare function SearchableDrowndown<T extends string | number>(props: SingleSelectWidgetProps<T>): JSX.Element;
