import { DoCheck, ElementRef, OnChanges, OnDestroy } from '@angular/core';
import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
import { CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core';
import { KbqFormFieldControl } from '@koobiq/components/form-field';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare class KbqInputPassword implements KbqFormFieldControl<any>, OnChanges, OnDestroy, DoCheck, OnChanges, CanUpdateErrorState {
    protected elementRef: ElementRef<HTMLInputElement>;
    ngControl: NgControl;
    parentForm: NgForm;
    parentFormGroup: FormGroupDirective;
    defaultErrorStateMatcher: ErrorStateMatcher;
    /** Whether the component is in an error state. */
    errorState: boolean;
    /** An object used to control when error messages are shown. */
    errorStateMatcher: ErrorStateMatcher;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    focused: boolean;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    readonly stateChanges: Subject<any>;
    readonly checkRule: Subject<void>;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    controlType: string;
    elementType: string;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    placeholder: string;
    protected uid: string;
    protected previousNativeValue: any;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    get id(): string;
    set id(value: string);
    private _id;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    get required(): boolean;
    set required(value: boolean);
    private _required;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    get value(): string;
    set value(value: string);
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    get empty(): boolean;
    private _inputValueAccessor;
    constructor(elementRef: ElementRef<HTMLInputElement>, ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, defaultErrorStateMatcher: ErrorStateMatcher, inputValueAccessor: any);
    ngOnChanges(): void;
    ngOnDestroy(): void;
    ngDoCheck(): void;
    updateErrorState(): void;
    checkRules(): void;
    toggleType(): void;
    /** Focuses the input. */
    focus(): void;
    onBlur(): void;
    /** Callback for the cases where the focused state of the input changes. */
    focusChanged(isFocused: boolean): void;
    onInput(): void;
    /**
     * Implemented as part of KbqFormFieldControl.
     * @docs-private
     */
    onContainerClick(): void;
    /** Does some manual dirty checking on the native input `value` property. */
    protected dirtyCheckNativeValue(): void;
    /** Checks whether the input is invalid based on the native validation. */
    protected isBadInput(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqInputPassword, [null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, null, { optional: true; self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqInputPassword, "input[kbqInputPassword]", ["kbqInputPassword"], { "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "required": { "alias": "required"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
}
