import { HTMLAttributes, ReactNode } from "react";
import { SelectOption, SelectOptionsByCategory, SingleSelectedOption } from "./shared/types";
import { SingleSelectOption } from "./single/SingleSelectOption";
import { STATUS_VARIANT } from "../../types";
interface SingleSelectBaseProps extends Pick, "className" | "style"> {
selected: SingleSelectedOption;
onChange: (newSelected: SingleSelectedOption) => void;
children: ReactNode;
inputValue?: string;
isClearable?: boolean;
isDisabled?: boolean;
isLoading?: boolean;
label?: string;
onCreateOption?: (newOption: string) => void;
onInputChange?: (newValue: string) => void;
placeholder?: ReactNode;
renderSelected?: ({ selectedItem, }: {
selectedItem: SingleSelectedOption;
}) => ReactNode;
variant?: STATUS_VARIANT;
}
export interface SingleSelectBasicProps extends SingleSelectBaseProps {
optionsDisplay?: "basic";
options: T[];
}
export interface SingleSelectCategoriesProps extends SingleSelectBaseProps {
optionsDisplay: "categories";
options: SelectOptionsByCategory[];
}
export declare type SingleSelectProps = SingleSelectBasicProps | SingleSelectCategoriesProps;
declare function SingleSelect({ selected, onChange, label, renderSelected, children, className, inputValue, onInputChange, isLoading, placeholder, isClearable, onCreateOption, isDisabled, variant: variantProp, ...props }: SingleSelectProps): JSX.Element;
declare namespace SingleSelect {
var Option: typeof SingleSelectOption;
var Category: ({ titleSlot, children, }: import("./shared/SelectOptionCategory").SelectOptionCategoryProps) => JSX.Element;
var Status: ({ children }: import("./shared/SelectStatus").SelectStatusProps) => JSX.Element;
var defaultProps: {
optionsDisplay: string;
variant: STATUS_VARIANT;
};
}
export { SingleSelect };