import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { DxcTextInputComponent } from "../dxc-text-input/dxc-text-input.component";
import { EmittedValue, PasswordInputProperties, Space, Spacing } from "./dxc-passsword-input.types";
import { DxcPasswordInputHelper } from "./dxc-password-input.helper";
import * as i0 from "@angular/core";
export declare class DxcPasswordInputComponent implements OnInit, OnChanges {
    private cdRef;
    private helper;
    className: any;
    /**
     * Text to be placed above the password.
     */
    label: string;
    /**
     * Name attribute of the input element.
     */
    name: string;
    /**
     * Value of the input element. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
     */
    value: string;
    /**
     * Initial value of the password input, only when it is uncontrolled.
     */
    defaultValue: string;
    /**
     * Helper text to be placed above the password.
     */
    helperText: string;
    /**
     * If true, the password input will have an action to clear the entered value.
     */
    get clearable(): boolean;
    set clearable(value: boolean);
    private _clearable;
    /**
     * If it is defined, the component will change its appearance, showing
     * the error below the password input component. If it is not defined, the
     * error messages will be managed internally, but never displayed on its own.
     */
    error: string;
    /**
     * Regular expression that defines the valid format allowed by the
     * password input. This will be checked both when the input element loses the
     * focus and while typing within it. If the string entered does not match
     * the pattern, the onBlur and onChange functions will be called with the
     * current value and an internal error informing that this value does not
     * match the pattern. If the pattern is met, the error parameter of both
     * events will be null.
     */
    pattern: string;
    /**
     * Specifies the minimun length allowed by the password input.
     * This will be checked both when the input element loses the
     * focus and while typing within it. If the string entered does not
     * comply the minimum length, the onBlur and onChange functions will be called
     * with the current value and an internal error informing that the value
     * length does not comply the specified range. If a valid length is
     * reached, the error parameter of both events will be null.
     */
    minLength: number;
    /**
     * Specifies the maximum length allowed by the password input.
     * This will be checked both when the input element loses the
     * focus and while typing within it. If the string entered does not
     * comply the maximum length, the onBlur and onChange functions will be called
     * with the current value and an internal error informing that the value
     * length does not comply the specified range. If a valid length is
     * reached, the error parameter of both events will be null.
     */
    maxLength: number;
    /**
     * HTML autocomplete attribute. Lets the user specify if any permission the user agent has to provide automated assistance in filling out the input value.
     * Its value must be one of all the possible values of the HTML autocomplete attribute: 'on', 'off', 'email', 'username', 'new-password', ...
     */
    autocomplete: string;
    /**
     * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
     * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
     */
    margin: Space | Spacing;
    /**
     * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
     */
    size: "small" | "medium" | "large" | "fillParent";
    /**
     * Value of the tabindex attribute.
     */
    tabIndexValue: number;
    defaultInputs: BehaviorSubject<PasswordInputProperties>;
    /**
     * This function will be called when the user types within the input
     * element of the component. An object including the current value and
     * the error (if the value entered is not valid) will be passed to this
     * function. If there is no error, error will be null.
     * */
    onChange: EventEmitter<EmittedValue>;
    /**
     * This function will be called when the input element loses the focus.
     * An object including the input value and the error (if the value entered is
     * not valid) will be passed to this function. If there is no error, error will be null.
     */
    onBlur: EventEmitter<EmittedValue>;
    dxcInputRef: DxcTextInputComponent;
    hidden: boolean;
    type: string;
    private controlled;
    constructor(cdRef: ChangeDetectorRef, helper: DxcPasswordInputHelper);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    handleOnChange({ value, error }: {
        value: any;
        error: any;
    }): void;
    handleOnBlur({ value, error }: {
        value: any;
        error: any;
    }): void;
    handleMaskPassword(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcPasswordInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcPasswordInputComponent, "dxc-password-input", never, { "label": "label"; "name": "name"; "value": "value"; "defaultValue": "defaultValue"; "helperText": "helperText"; "clearable": "clearable"; "error": "error"; "pattern": "pattern"; "minLength": "minLength"; "maxLength": "maxLength"; "autocomplete": "autocomplete"; "margin": "margin"; "size": "size"; "tabIndexValue": "tabIndexValue"; }, { "onChange": "onChange"; "onBlur": "onBlur"; }, never, never>;
}
//# sourceMappingURL=dxc-password-input.component.d.ts.map