import type { AriaAttributes, JSX } from 'react';
import React from 'react';
import type { InputProps } from '../Input/index.js';
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
export interface PasswordInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Omit<InputProps, 'showClearIcon'> {
    /** Визуально показывает, что активен CapsLock. */
    detectCapsLock?: boolean;
}
export interface PasswordInputState {
    visible: boolean;
    focused: boolean;
    capsLockEnabled?: boolean | null;
}
export declare const PasswordInputDataTids: {
    readonly root: "PasswordInput";
    readonly capsLockDetector: "PasswordInputCapsLockDetector";
    readonly eyeIcon: "PasswordInputEyeIcon";
};
/**
 * Однострочное поле для ввода пароля, в котором символы заменяются на точки.
 */
export declare class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    state: PasswordInputState;
    private size;
    private emotion;
    private cx;
    private styles;
    private theme;
    private input;
    getRootNode: TGetRootNode;
    private setRootNode;
    private readonly locale;
    private getProps;
    componentDidMount(): void;
    static getDerivedStateFromProps(props: PasswordInputProps, state: PasswordInputState): PasswordInputState | {
        visible: boolean;
    };
    render(): JSX.Element;
    /** Программно устанавливает фокус на поле.
     * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
     * @public
     */
    focus: () => void;
    /** Программно снимает фокус с кнопки.
     * @public
     */
    blur: () => void;
    private handleKeyPress;
    private handleKeydown;
    private handleToggleVisibility;
    private focusOnInput;
    private handleFocus;
    private handleFocusOutside;
    private getEyeWrapperClassname;
    private renderEye;
    private refInput;
    private hideSymbols;
    private renderMain;
}
