import * as _angular_core from '@angular/core';
import { OnInit, AfterViewInit, ElementRef, QueryList, EventEmitter, WritableSignal } from '@angular/core';
import { SymbolRegistry, SymbolComponent } from '@agorapulse/ui-symbol';
import { ControlValueAccessor } from '@angular/forms';

type InputType = 'color' | 'datetime' | 'datetime-local' | 'email' | 'hidden' | 'month' | 'number' | 'password' | 'range' | 'search' | 'text' | 'tel' | 'time' | 'url' | 'week';
declare const AP_INPUT_CONTROL_VALUE_ACCESSOR: {
    provide: _angular_core.InjectionToken<readonly ControlValueAccessor[]>;
    useExisting: _angular_core.Type<any>;
    multi: boolean;
};
/**
 * @deprecated use native input with directive apInput, ap-input-group and ap-form-field instead
 */
declare class InputComponent implements OnInit, AfterViewInit, ControlValueAccessor {
    readonly elementRef: ElementRef;
    readonly symbolRegistry: SymbolRegistry;
    constructor();
    symbols: QueryList<SymbolComponent>;
    symbolWrapper: ElementRef;
    inputElement: ElementRef;
    ariaLabel: string;
    ariaLabelledBy: string;
    ariaDescribedBy: string;
    disabled: boolean;
    clearable: boolean;
    inputType: InputType;
    inputId?: string;
    name: string;
    label?: string;
    description?: string;
    prefix?: string;
    suffix?: string;
    required: boolean;
    placeholder?: string;
    errorMessage?: string;
    successMessage?: string;
    symbolId?: string;
    symbolPosition: 'left' | 'right';
    focus: EventEmitter<FocusEvent>;
    blur: EventEmitter<FocusEvent>;
    keyup: EventEmitter<KeyboardEvent>;
    private _controlValueAccessorChangeFn;
    hostDataTest: WritableSignal<string | undefined>;
    value: string | null;
    onTouched: () => void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    validate(): false | {
        invalid: boolean;
    };
    onValueChange(): void;
    writeValue(value: string | null): void;
    registerOnChange(fn: (value: string | null) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    focusInput(): void;
    onBlurHandle($event: FocusEvent): void;
    onFocusHandle($event: FocusEvent): void;
    onKeyup($event: KeyboardEvent): void;
    onClear(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "ap-input", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "name": { "alias": "name"; "required": true; }; "label": { "alias": "label"; "required": false; }; "description": { "alias": "description"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "successMessage": { "alias": "successMessage"; "required": false; }; "symbolId": { "alias": "symbolId"; "required": false; }; "symbolPosition": { "alias": "symbolPosition"; "required": false; }; }, { "focus": "focus"; "blur": "blur"; "keyup": "keyup"; }, ["symbols"], never, true, never>;
    static ngAcceptInputType_required: unknown;
}

export { AP_INPUT_CONTROL_VALUE_ACCESSOR, InputComponent };
