/// <reference types="react" />
import { SerializedStyles } from "@emotion/react";
import { InputSkin, OuterSkin } from "./style";
export interface InputProps {
    /**
     * Html input type, default is text
     */
    type?: string;
    /**
     * Default or controlled value
     */
    value?: string;
    placeholder?: string;
    /**
     * Whether input is readOnly, default is false
     */
    readOnly?: boolean;
    /**
     * Whether input can be empty, default is true
     */
    canBeEmpty?: boolean;
    /**
     * Regex pattern to validate input
     */
    pattern?: string | RegExp;
    /**
     * Check whether input is positive number, default is false, only works when type is number
     */
    positive?: boolean;
    /**
     * Minimum value, only works when type is number, default is 0
     */
    min?: number;
    /**
     * Limit decimal places, only works when type is number
     */
    decimalPlaces?: number;
    /**
     * Control warning by yourself if needed
     */
    warning?: boolean;
    rootCss?: SerializedStyles;
    inputCss?: SerializedStyles;
    /**
     * Control outer skin, default is none
     */
    outerSkin?: keyof typeof OuterSkin;
    /**
     * Control input skin, default is none
     */
    inputSkin?: keyof typeof InputSkin;
    onChange?: (v: string) => void;
    onKeyDown?: (v: string) => void;
    onBlur?: (v: string) => void;
    onClick?: (e: React.MouseEvent<HTMLInputElement, MouseEvent>) => void;
}
export declare const Input: React.FC<InputProps>;
