import * as _angular_core from '@angular/core';
import { OnInit, DoCheck, ElementRef } from '@angular/core';
import { NgControl } from '@angular/forms';
import { FormFieldControl } from '@ngstarter-ui/components/form-field';
import { ErrorStateMatcher } from '@ngstarter-ui/components/core';

declare class Input implements OnInit, DoCheck, FormFieldControl<string> {
    protected elementRef: ElementRef<any>;
    readonly ngControl: NgControl | null;
    readonly stateChanges: _angular_core.WritableSignal<void>;
    private _destroyRef;
    private _defaultErrorStateMatcher;
    private _parentForm;
    private _parentFormGroup;
    _id: _angular_core.InputSignal<string>;
    get id(): string;
    _placeholder: _angular_core.InputSignal<string>;
    get placeholder(): string;
    _required: _angular_core.InputSignalWithTransform<boolean, unknown>;
    get required(): boolean;
    _disabled: _angular_core.InputSignalWithTransform<boolean, any>;
    get disabled(): boolean;
    readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
    errorStateMatcher: _angular_core.InputSignal<ErrorStateMatcher | undefined>;
    private _value;
    get value(): string;
    set value(value: string);
    focusedValue: boolean;
    private _focused;
    get focused(): boolean;
    errorStateValue: boolean;
    private _errorState;
    get errorState(): boolean;
    isRequired: _angular_core.Signal<boolean>;
    emptyValue: boolean;
    private _empty;
    get empty(): boolean;
    shouldLabelFloatValue: boolean;
    private _shouldLabelFloat;
    get shouldLabelFloat(): boolean;
    constructor();
    ngOnInit(): void;
    ngDoCheck(): void;
    private updateErrorState;
    onFocus(): void;
    onBlur(): void;
    onInput(event: Event): void;
    focus(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Input, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Input, "input[ngsInput], textarea[ngsInput]", ["ngsInput"], { "_id": { "alias": "id"; "required": false; "isSignal": true; }; "_placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "_required": { "alias": "required"; "required": false; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { Input };
