import React, { InputHTMLAttributes } from 'react';
import { BaseColorMap } from '../../base/colors';
import { MarginMixin, PaddingMixin } from '../../base/spacing';
export declare const inputVariants: {
normal: string;
outline: string;
};
export declare const inputSizes: {
lg: string;
md: string;
sm: string;
};
export declare const borderSizes: {
lg: string;
md: string;
sm: string;
};
export declare const inputColors: BaseColorMap & {
white: string;
};
/** Input Props */
export interface InputProps extends Omit, 'size' | 'type'>, PaddingMixin, MarginMixin {
/**
* The Dracula UI theme color to be used
*/
color?: keyof typeof inputColors;
/**
* Controls the size of the input based on pre-configured Dracula UI sizes.
*/
size?: keyof typeof inputSizes | number;
/**
* Controls the border size of the input based on pre-configured Dracula UI sizes.
*/
borderSize?: keyof typeof borderSizes;
/**
* Controls the variation the input.
* `normal` -> Regular Input component with a light background color.
* `outline` -> Keeps the accent color, but removes the background.
*/
variant?: keyof typeof inputVariants;
/**
* Controls the type of the input.
*/
type?: 'button' | 'checkbox' | 'color' | 'date' | 'datetime-local' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week';
}
/**
* Input is a styled HTML Input.
*
* There are no behavior changes applied to the native HTML tag other
* than light styling done via CSS in order to keep inputs accessible.
*/
export declare const Input: React.ForwardRefExoticComponent>;