import { ComponentProps } from 'react';
import Input from '../Input/index';
import { MASK_TYPE } from '../utils/brazilianFormatters';
type InputProps = ComponentProps<typeof Input>;
/**
 * Props do MaskedInput.
 *
 * Extende as props do `Input` adicionando o `mask` que identifica o tipo de
 * mascara a aplicar (CNPJ, CPF, Telefone ou CEP).
 *
 * O tipo de `value` e estreitado para `string | undefined` porque as mascaras
 * sao operacoes de string — aceitar `number` ou `readonly string[]` (do
 * `InputHTMLAttributes`) levaria a comportamento inconsistente.
 */
export type MaskedInputProps = {
    /** Tipo da mascara a ser aplicada */
    mask: MASK_TYPE;
    /** Valor mascarado (string). Pode ser passado cru ou ja mascarado (idempotente). */
    value?: string;
} & Omit<InputProps, 'value'>;
/**
 * MaskedInput - wrapper do Input com mascara progressiva aplicada
 * automaticamente no onChange.
 *
 * O valor recebido pelo consumidor no `onChange` ja vem com a mascara aplicada.
 * Alem disso, se um `value` controlado for passado "cru" (sem mascara), o
 * componente formata para exibicao. Como as mascaras sao idempotentes,
 * repassar o valor mascarado tambem funciona.
 *
 * @example
 * ```tsx
 * <MaskedInput
 *   label="CNPJ"
 *   mask={MASK_TYPE.CNPJ}
 *   variant="rounded"
 *   placeholder="00.000.000/0000-00"
 *   value={cnpj}
 *   onChange={(e) => setCnpj(e.target.value)}
 * />
 * ```
 */
declare const MaskedInput: import("react").ForwardRefExoticComponent<Omit<MaskedInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
export default MaskedInput;
//# sourceMappingURL=MaskedInput.d.ts.map