import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
import { LabelProps } from './Label.js';

type SelectOption<T> = {
    label: ReactNode;
    value: T;
    searchTags?: string[];
    disabled?: boolean;
    className?: string;
};
type SelectProps<T> = {
    value?: T;
    label?: LabelProps;
    options: SelectOption<T>[];
    onChange: (value: T) => void;
    hintText?: string;
    isDisabled?: boolean;
    isSearchEnabled?: boolean;
    selectedDisplayOverwrite?: ReactNode;
    className?: string;
};
/**
 * A Select Component for selecting form a list of options
 *
 * The State is managed by the parent
 */
declare const Select: <T>({ value, label, options, onChange, hintText, isDisabled, isSearchEnabled, className, selectedDisplayOverwrite, }: SelectProps<T>) => react_jsx_runtime.JSX.Element;
declare const SelectUncontrolled: <T>({ options, onChange, value, hintText, ...props }: SelectProps<T>) => react_jsx_runtime.JSX.Element;

export { Select, type SelectOption, type SelectProps, SelectUncontrolled };
