import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
import * as _angular_core from '@angular/core';
import { NgControl } from '@angular/forms';

declare class SiPasswordToggleComponent {
    protected readonly ngControl: _angular_core.Signal<NgControl | undefined>;
    /**
     * Whether to show the visibility toggle icon.
     *
     * @defaultValue true
     */
    readonly showVisibilityIcon: _angular_core.InputSignal<boolean>;
    /**
     * Emits the `type` attribute for the `<input>` ('password' | 'text')
     * whenever the password visibility is getting toggled.
     */
    readonly typeChange: _angular_core.OutputEmitterRef<string>;
    /**
     * The aria-label (translatable) for the password show icon.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_PASSWORD_TOGGLE.SHOW:show password`)
     * ```
     */
    readonly showLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    /**
     * The aria-label (translatable) for the password hide icon.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_PASSWORD_TOGGLE.HIDE:hide password`)
     * ```
     */
    readonly hideLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
    protected readonly showPassword: _angular_core.WritableSignal<boolean>;
    protected readonly icons: Record<"elementHide" | "elementShow", string>;
    /** The `type` attribute for the `<input>` ('password' | 'text'). */
    get inputType(): string;
    protected toggle(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPasswordToggleComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiPasswordToggleComponent, "si-password-toggle", never, { "showVisibilityIcon": { "alias": "showVisibilityIcon"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; }, { "typeChange": "typeChange"; }, ["ngControl"], ["*"], true, never>;
}

declare class SiPasswordToggleModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiPasswordToggleModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<SiPasswordToggleModule, never, [typeof SiPasswordToggleComponent], [typeof SiPasswordToggleComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<SiPasswordToggleModule>;
}

export { SiPasswordToggleComponent, SiPasswordToggleModule };
