import type { InputHTMLAttributes, ReactNode } from 'react';
type InputSize = 'small' | 'medium' | 'large';
type InputVariant = 'default' | 'title' | 'monospace';
type InputRootProps = Omit, 'size'> & {
/**
* The visual size of the input (to set the `size` attribute of the input element, use `htmlSize` prop instead)
*/
size?: InputSize;
/**
* Use to set the `size` attribute of underlying `` html element
*/
htmlSize?: InputHTMLAttributes['size'];
/**
* The surface level of the input
*/
surfaceLevel?: '0' | '1' | '2';
error?: boolean | string;
variant?: InputVariant;
contentStart?: ReactNode;
contentEnd?: ReactNode;
};
type InputProps = Omit & {
iconStart?: ReactNode;
/**
* Show a clear button when the input is not empty
*/
canClear?: boolean;
/**
* Show a copy button that automatically copies the input value to the clipboard
*/
canCopy?: boolean;
/**
* Callback when the copy button is clicked
* @param value The input value
* @default undefined
*/
onClickCopy?: (value?: string) => void;
/**
* Show a button that toggles the visibility of the input value
* @default undefined
*/
canHide?: boolean;
/**
* Whether the input value is hidden by default
*/
defaultHidden?: boolean;
};
declare const Input: import("react").MemoExoticComponent & {
iconStart?: ReactNode;
/**
* Show a clear button when the input is not empty
*/
canClear?: boolean;
/**
* Show a copy button that automatically copies the input value to the clipboard
*/
canCopy?: boolean;
/**
* Callback when the copy button is clicked
* @param value The input value
* @default undefined
*/
onClickCopy?: (value?: string) => void;
/**
* Show a button that toggles the visibility of the input value
* @default undefined
*/
canHide?: boolean;
/**
* Whether the input value is hidden by default
*/
defaultHidden?: boolean;
} & import("react").RefAttributes>>;
declare const InputSearch: import("react").MemoExoticComponent & {
iconStart?: ReactNode;
/**
* Show a clear button when the input is not empty
*/
canClear?: boolean;
/**
* Show a copy button that automatically copies the input value to the clipboard
*/
canCopy?: boolean;
/**
* Callback when the copy button is clicked
* @param value The input value
* @default undefined
*/
onClickCopy?: (value?: string) => void;
/**
* Show a button that toggles the visibility of the input value
* @default undefined
*/
canHide?: boolean;
/**
* Whether the input value is hidden by default
*/
defaultHidden?: boolean;
} & import("react").RefAttributes, "ref"> & {
ref?: import("react").RefObject | ((instance: HTMLInputElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null | undefined;
}, "ref"> & import("react").RefAttributes>>;
export { Input, InputSearch };
export type { InputProps };