import React from 'react';
import type { GroupBase, Props as RSProps, StylesConfig } from 'react-select/dist/declarations/src';
type ValueType = any;
export interface SelectProps<Option = unknown, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> extends Omit<RSProps<Option, IsMulti, Group>, 'onChange' | 'value'> {
    name: string;
    label?: React.ReactNode;
    required?: boolean;
    tooltip?: string;
    description?: React.ReactNode;
    isClearable?: boolean;
    valueProperty?: string;
    emptyValue?: ValueType;
    isLoading?: boolean;
    onChange?: (event: {
        target: {
            name: string;
            value: ValueType;
        };
    }) => void;
}
export interface Option {
    value: string;
    label: React.ReactNode;
    description?: string;
}
export declare function getReactSelectStyles<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>>(): StylesConfig<Option, IsMulti, Group>;
declare function Select<Option extends {
    [key: string]: any;
}, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>({ name, label, required, tooltip, description, isClearable, isLoading, valueProperty, emptyValue, onChange, ...props }: SelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
export default Select;
