import { InputEventsProps, InputFormConfigProps, InputLabelProps, InputPopoverProps, InputSelectProps, InputValueProps } from '../_internal/InputBase/InputBase';
import { default as React, ChangeEvent } from 'react';
export type SelectOptionsComponentProps = Omit<SelectOptionProp, 'component'> & {
    selectedItem: SelectOptionProp | null;
};
export type SelectOptionProp<T extends string = any> = {
    key: string | number;
    value: T | number;
    title: string | number;
    description?: string;
    disabled?: boolean;
    hidden?: boolean;
    className?: string;
    leftImageUrl?: string;
};
export type SelectOptionProps<T extends string = any> = SelectOptionProp[];
export type SelectOnChange = (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>, selectedValue?: SelectOptionProp) => void;
type Props<T extends string = any> = {
    testId?: string;
    className?: string;
    options?: SelectOptionProps<T>;
    adornment?: React.ReactNode[];
    customOptionsRenderer?: React.ComponentType<SelectOptionsComponentProps>;
    customInputRenderer?: React.ComponentType<SelectOptionsComponentProps>;
    ellipsis?: boolean;
    containToSelectWidth?: boolean;
    descriptionUnderTitle?: boolean;
    translateOptions?: boolean;
    valueAsDefaultValue?: boolean;
    freeSolo?: boolean;
} & InputPopoverProps & InputValueProps & InputLabelProps & InputEventsProps & InputFormConfigProps & InputSelectProps & {
    onChange?: SelectOnChange;
};
export type SelectProps<T extends string = any> = Props<T>;
export declare const Select: (props: Props) => import("react/jsx-runtime").JSX.Element;
export {};
