import { OnChangeValue, ActionMeta } from "react-select";
import { TValueObjectType } from "../utils/getValueObject";
import { ISelectBaseCommonProps } from "../SelectBase/types";
export declare type TInstanceOnChange<TOption> = (newValue: OnChangeValue<TOption, false>, actionMeta: ActionMeta<TOption>) => void;
export declare type TValueOnChange<TOption, TFieldNameValue> = (newValue: TValueObjectType<TOption, TFieldNameValue> | null, actionMeta: ActionMeta<TOption>) => void;
declare type TOnChangeSelect<TOption, TFieldNameValue> = {
    onChange?: TInstanceOnChange<TOption>;
    onChangeReturnType: "instance";
} | {
    onChange?: TValueOnChange<TOption, TFieldNameValue>;
    onChangeReturnType: "value";
} | {
    onChange?: TInstanceOnChange<TOption>;
    onChangeReturnType?: never;
};
export declare type TSelectProps<TOption = {
    label: string;
    value: string;
    url?: string;
    isDisabled?: boolean;
}, TFieldNameValue extends string = "value", TFieldNameLabel extends string = "label"> = Omit<ISelectBaseCommonProps<TOption, false, TFieldNameValue, TFieldNameLabel>, "onMenuInputFocus"> & TOnChangeSelect<TOption, TFieldNameValue>;
export {};
