import { default as React } from 'react';
import { ClearableInputProps } from '../clearableInput/ClearableInput';
export type CountedInputProps = Omit<ClearableInputProps, 'children' | 'max' | 'min' | 'onChange' | 'showClearButton'> & {
    /**
     * Defines the minimum amount of characters required for a valid value.
     * If set, the counter counts up to this value because this is the threshold for success.
     * If no `maxLength` is set, this value is also used as the maximum amount of characters that can be entered.
     * Set at least one of `minLength` or `maxLength`.
     *
     * @default 0
     */
    minLength?: number;
    /**
     * Defines the maximum amount of characters that can be entered.
     * If no `minLength` is set, the counter counts up to this value.
     * Set at least one of `minLength` or `maxLength`.
     */
    maxLength?: number;
    /**
     * Controls whether the clear button is rendered.
     *
     * @default false
     */
    clearable?: boolean;
    /**
     * Controls whether success or warning feedback styling is rendered. If omitted, feedback is shown after user
     * interaction or when the input has a value.
     */
    showValidationState?: boolean;
    /**
     * Controls whether an initially empty input is validated before user interaction.
     *
     * @default false
     */
    validateInitialEmpty?: boolean;
    /**
     * Defines the invalid feedback style used while the character criteria are not met.
     *
     * @default 'warning'
     */
    validationState?: 'warning' | 'error';
    /**
     * Callback function for when the value changes. Receives the new value and validity as arguments.
     */
    onChange?: (newValue: string, isValid: boolean, event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent<HTMLSpanElement>) => void;
};
declare const CountedInput: React.ForwardRefExoticComponent<Omit<ClearableInputProps, "max" | "min" | "children" | "onChange" | "showClearButton"> & {
    /**
     * Defines the minimum amount of characters required for a valid value.
     * If set, the counter counts up to this value because this is the threshold for success.
     * If no `maxLength` is set, this value is also used as the maximum amount of characters that can be entered.
     * Set at least one of `minLength` or `maxLength`.
     *
     * @default 0
     */
    minLength?: number;
    /**
     * Defines the maximum amount of characters that can be entered.
     * If no `minLength` is set, the counter counts up to this value.
     * Set at least one of `minLength` or `maxLength`.
     */
    maxLength?: number;
    /**
     * Controls whether the clear button is rendered.
     *
     * @default false
     */
    clearable?: boolean;
    /**
     * Controls whether success or warning feedback styling is rendered. If omitted, feedback is shown after user
     * interaction or when the input has a value.
     */
    showValidationState?: boolean;
    /**
     * Controls whether an initially empty input is validated before user interaction.
     *
     * @default false
     */
    validateInitialEmpty?: boolean;
    /**
     * Defines the invalid feedback style used while the character criteria are not met.
     *
     * @default 'warning'
     */
    validationState?: "warning" | "error";
    /**
     * Callback function for when the value changes. Receives the new value and validity as arguments.
     */
    onChange?: (newValue: string, isValid: boolean, event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent<HTMLSpanElement>) => void;
} & React.RefAttributes<HTMLInputElement>>;
export default CountedInput;
