import * as _angular_core from '@angular/core';
import { DestroyRef } from '@angular/core';
import { FormControl } from '@angular/forms';

declare abstract class InputFieldBase {
    private readonly elementRef;
    private readonly required;
    readonly destroyRef: DestroyRef;
    readonly isDisabled: _angular_core.WritableSignal<boolean>;
    readonly isRequired: _angular_core.Signal<boolean>;
    readonly fieldId: string;
    readonly valueChange: _angular_core.WritableSignal<any>;
    control: _angular_core.InputSignal<FormControl<any>>;
    label: _angular_core.InputSignal<string | undefined>;
    placeholder: _angular_core.InputSignal<string>;
    hint: _angular_core.InputSignal<string | undefined>;
    disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    constructor();
    private getBgColorParent;
    private checkIsRequired;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputFieldBase, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InputFieldBase, never, never, { "control": { "alias": "control"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

type InputTypeField = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'date' | 'datetime-local' | 'month' | 'time' | 'search';
declare class InputField extends InputFieldBase {
    type: _angular_core.InputSignal<InputTypeField>;
    mask: _angular_core.InputSignal<string>;
    min: _angular_core.InputSignal<string | undefined>;
    max: _angular_core.InputSignal<string | undefined>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputField, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputField, "kl-input-field", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, ["[icon]", "[suffix]", "[errors]"], true, never>;
}

export { InputField, InputFieldBase };
