import React from "react";
export type AVAILABLE_PASSWORD_VALIDATION_RULES = "size" | "duplication";
/**
 * A password input component that shows and hides the password text
 * and provides validation for password strength or matching.
 */
declare const PasswordInput: React.ForwardRefExoticComponent<(({
    value: string;
    error?: string | undefined;
} & ({
    mode: "input";
    onChange: (password: string) => void;
} | {
    mode: "creation";
    onChange: (password: string, isValid: boolean) => void;
    messages: {
        invalidRules: {
            size: string;
            duplication: string;
        };
        rulesTitle: string;
    };
} | {
    mode: "comparision";
    otherPassword: string;
    onChange: (password: string, isEqual: boolean) => void;
    messages: {
        passwordsAreDifferent: string;
    };
})) & Omit<{
    decoration?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null | undefined;
    error?: string | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
    hideError?: "onfocus" | undefined;
    placeholder?: string | undefined;
    disclaimer?: string | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
    multiline?: number | undefined;
    icon?: ({
        onClick?: (() => void) | undefined;
    } & React.ClassAttributes<any> & React.ImgHTMLAttributes<HTMLImageElement>) | undefined;
    Icon?: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | undefined;
    onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
    containerProps?: Omit<React.HTMLProps<HTMLDivElement>, "ref"> | undefined;
    value?: string | undefined;
    "data-testid"?: string | undefined;
} & Omit<React.HTMLProps<HTMLInputElement | HTMLTextAreaElement>, "ref" | "value" | "onChange"> & React.RefAttributes<any>, "ref" | "value" | "onChange">) & React.RefAttributes<{
    validatePassword: (pass: string) => boolean;
}>>;
export default PasswordInput;
