import { MouseEvent } from "react";
import { ITheme } from "../Pallette/themes";
import { TDirection } from "../helpers/getPosition/types";
export declare const inputSize: readonly ["l", "m"];
export declare const inputViewType: readonly ["round", "line"];
export declare const inputStatus: readonly ["error", "warning", "success"];
export declare type TInputSize = typeof inputSize[number];
export declare type TTypeInput = "text" | "password" | "tel" | "number" | "file" | "email" | "url" | "search";
export declare type TInputAlignText = "left" | "right" | "center";
export declare type TViewTypeInput = typeof inputViewType[number];
export declare type TStatusInput = typeof inputStatus[number];
export declare type TPlaceholder = string | [string, string];
export interface IInputBaseProps {
    tooltipPosition?: TDirection;
    type?: TTypeInput;
    status?: TStatusInput;
    statusText?: string;
    size?: TInputSize;
    alignText?: TInputAlignText;
    error?: string | boolean;
    placeholder?: TPlaceholder;
    tooltipContent?: string;
    title?: string;
    iconLeft?: JSX.Element;
    iconRight?: JSX.Element;
    onIconRightClick?: () => void;
    onIconLeftClick?: () => void;
    className?: string;
    isDisabled?: boolean;
    isShowClearIcon?: boolean;
    isShowMask?: boolean;
    width?: string;
    isRequired?: boolean;
    classNameIconBox?: string;
    isShowLabel?: boolean;
    classNameAddonsRight?: string;
    classNameContent?: string;
    classNamePlaceholder?: string;
    viewType?: TViewTypeInput;
    readOnlyEmptyText?: string;
}
export interface ISharedInputBase extends IInputBaseProps {
    isFocused: boolean;
    isPasswordVisible?: boolean;
    isHasValue: boolean;
    onClear?: (event: MouseEvent<HTMLDivElement>) => void;
    onPasswordToggle?: () => void;
    testId?: string;
    isReadOnly?: boolean;
}
export interface IIconsBox {
    isHasValue: boolean;
    isDisabled?: boolean;
    type?: TTypeInput;
    isPasswordVisible?: boolean;
    tooltipContent?: string;
    tooltipPosition?: TDirection;
    isShowClearIcon?: boolean;
    onClear?: (event: MouseEvent<HTMLDivElement>) => void;
    onPasswordToggle?: () => void;
    testId?: string;
    classNameIconBox?: string;
    isReadOnly?: boolean;
}
export interface IInput {
    theme: ITheme;
    status?: TStatusInput;
    isFocused?: boolean;
}
export interface IInputWrapperProps extends IInput {
    isDisabled?: boolean;
    isFocused: boolean;
    size?: TInputSize;
    width?: string;
    alignText?: TInputAlignText;
    status?: TStatusInput;
    isReadOnly?: boolean;
    isHasValue: boolean;
    viewType?: TViewTypeInput;
    statusText?: string;
    error?: string | boolean;
    theme: ITheme;
}
export interface IPlaceholder extends IInput {
    size?: TInputSize;
    isHasValue: boolean;
    isDisabled?: boolean;
    isFocused: boolean;
    error?: string | boolean;
    status?: TStatusInput;
    iconLeft?: boolean;
    isReadOnly?: boolean;
}
export interface IStylesIcon extends IInput {
    isHasValue?: boolean;
    isReadOnly?: boolean;
    isDisabled?: boolean;
    isPlaceholder?: boolean;
    isFocused: boolean;
}
