import { AfterContentInit, EventEmitter } from '@angular/core';
import { InputProperties } from '@engie-group/fluid-types';
import { FormItemSize } from './form-item.model';
import * as i0 from "@angular/core";
type FormItemProps = Pick<InputProperties, 'scale'>;
export declare class FormItemComponent implements AfterContentInit, FormItemProps {
    private destroyRef;
    private readonly formItemClassName;
    /**
     * @ignore
     */
    private _hasError?;
    /**
     * @ignore
     */
    private _hasSuccess?;
    /**
     * @ignore
     */
    private _hasHint?;
    /**
     * @ignore
     */
    isPassword?: boolean;
    /**
     * @ignore
     */
    isVisible: boolean;
    /**
     * @ignore
     */
    passwordNotice: string;
    /**
     * @ignore
     */
    passwordButtonLabel: string;
    /**
     * @ignore
     */
    isMultiline: boolean;
    /**
     * Input id and label for attribute, needed for focus to work properly
     */
    inputId?: string;
    /**
     * Form item size
     *
     * @deprecated Use `scale` instead. This property will be removed in future releases.
     */
    size: FormItemSize;
    /**
     * Scale of the form-item
     */
    scale: FormItemProps['scale'];
    /**
     * Whether the form-item label is floating
     */
    isFloatingLabel: boolean;
    /**
     * Whether form-item is disabled or not
     */
    isDisabled?: boolean;
    /**
     * Whether form-item is required or not
     */
    isRequired?: boolean;
    clearable?: boolean;
    /**
     * Whether form-item is in success state
     */
    set hasSuccess(value: boolean);
    get hasSuccess(): boolean;
    /**
     * Whether form-item is in error state
     */
    set hasError(value: boolean);
    get hasError(): boolean;
    /**
     * Whether the form-item has a hint substring
     */
    set hasHint(value: boolean);
    get hasHint(): boolean;
    /**
     * Whether the form-item has a custom icon
     */
    hasCustomIcon?: boolean;
    /**
     * Whether the form-item's icon (or custom icon) is clickable
     */
    isIconClickable: boolean;
    /**
     * Material icon name
     */
    iconName?: string;
    /**
     * Additional form-item css classes
     */
    additionalClass: string;
    /**
     * Label for the button to toggle password visibility when password is hidden.
     * @example "Show password"
     */
    passwordButtonLabelShow?: string;
    /**
     * Label for the button to toggle password visibility when password is visible.
     * @example "Hide password"
     */
    passwordButtonLabelHide?: string;
    /**
     * Label to announce when password becomes visible.
     * @example "Password is visible"
     */
    passwordNoticeIsVisible?: string;
    /**
     * Label to announce when password becomes hidden.
     * @example "Password is hidden"
     */
    passwordNoticeIsHidden?: string;
    /**
     * Whether form-item is a select or not
     */
    isSelect?: boolean;
    /**
     * Outputs icon click
     */
    iconClick: EventEmitter<MouseEvent>;
    /**
     * Outputs icon keydown
     */
    iconKeydown: EventEmitter<KeyboardEvent>;
    /**
     * Outputs icon click
     */
    wrapperClick: EventEmitter<MouseEvent>;
    /**
     * Outputs clear icon click
     */
    clearIconClick: EventEmitter<MouseEvent>;
    private formField;
    private formFieldNgModel;
    private formFieldValue;
    protected hasValue: import("@angular/core").Signal<boolean>;
    private cleanInputListener;
    private readonly formFieldValueChangeEffect;
    private readonly handleFormFieldInputEffect;
    ngAfterContentInit(): void;
    /**
     * @ignore
     */
    iconClickHandler(event: MouseEvent): void;
    /**
     * @ignore
     */
    iconKeydownHandler(event: KeyboardEvent): void;
    /**
     * @ignore
     */
    toggleVisibility(): void;
    /**
     * @ignore
     */
    protected getSubscriptId(): string;
    /**
     * @ignore
     */
    setAriaAttributes(): void;
    /**
     * @ignore
     */
    isCustomSelect(): boolean;
    /**
     * @ignore
     */
    getFormItemSizeClass(): string;
    clearInput(event: MouseEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormItemComponent, "nj-form-item", never, { "inputId": { "alias": "inputId"; "required": false; }; "size": { "alias": "size"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; "isFloatingLabel": { "alias": "isFloatingLabel"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "isRequired": { "alias": "isRequired"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "hasSuccess": { "alias": "hasSuccess"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "hasHint": { "alias": "hasHint"; "required": false; }; "hasCustomIcon": { "alias": "hasCustomIcon"; "required": false; }; "isIconClickable": { "alias": "isIconClickable"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "additionalClass": { "alias": "additionalClass"; "required": false; }; "passwordButtonLabelShow": { "alias": "passwordButtonLabelShow"; "required": false; }; "passwordButtonLabelHide": { "alias": "passwordButtonLabelHide"; "required": false; }; "passwordNoticeIsVisible": { "alias": "passwordNoticeIsVisible"; "required": false; }; "passwordNoticeIsHidden": { "alias": "passwordNoticeIsHidden"; "required": false; }; "isSelect": { "alias": "isSelect"; "required": false; }; }, { "iconClick": "iconClick"; "iconKeydown": "iconKeydown"; "wrapperClick": "wrapperClick"; "clearIconClick": "clearIconClick"; }, ["formField", "formFieldNgModel"], ["[njFormField]", "[njFormLabel]", "[njFormAdditionalContent]", "[njFormCustomIcon]", "[njFormSubscript]"], true, never>;
}
export {};
