import React, { ChangeEventHandler, ComponentType, FocusEventHandler, ReactElement } from 'react';
type SharedProps = {
    placeholder?: string;
    isInvalid?: boolean;
    isDisabled?: boolean;
    size?: 'md' | 'lg';
    onBlur?: FocusEventHandler<HTMLInputElement>;
    onFocus?: FocusEventHandler<HTMLInputElement>;
    autoFocus?: boolean;
    name: string;
    type?: 'text' | 'number' | 'password';
    icon?: ComponentType;
    isClearable?: boolean;
    rightAddonElement?: ReactElement;
    leftAddonElement?: ReactElement;
    autoComplete?: 'on' | 'off';
};
type ControlledInputProps = {
    debounce?: false;
    value: string | number;
    onChange: ChangeEventHandler<HTMLInputElement>;
    setInputValue?: never;
} & SharedProps;
type InputPros = {
    debounce?: false;
    value?: never;
    onChange?: ChangeEventHandler<HTMLInputElement>;
    setInputValue?: never;
} & SharedProps;
type DebouncedInputPros = {
    value: string | number;
    onChange?: never;
    debounce: true;
    setInputValue: (value: string) => void;
} & SharedProps;
export type Props = ControlledInputProps | InputPros | DebouncedInputPros;
declare const Input: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLInputElement>>;
export default Input;
export { Props as InputProps };
//# sourceMappingURL=index.d.ts.map