import { NgClass } from '@angular/common';
import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
import { NgControl } from '@angular/forms';
import { DokuFormFieldAccessor, DokuFormFieldAccessorValidateState, DokuFormFieldAccessorValidateValue } from '../form-field';
import * as i0 from "@angular/core";
export declare class DokuInput implements DokuFormFieldAccessor, AfterViewInit, OnDestroy {
    private elementRef;
    private ngControl?;
    protected readonly classes: NgClass['ngClass'];
    get disabled(): boolean;
    set disabled(value: boolean | string);
    private _disabled;
    get readonly(): boolean;
    set readonly(value: boolean | string);
    private _readonly;
    private notifyState$;
    private destroy$;
    constructor(elementRef: ElementRef, ngControl?: NgControl | undefined);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onBlur?: (() => void) | undefined;
    onFocus?: (() => void) | undefined;
    onDisable?: ((value: boolean) => void) | undefined;
    onReadonly?: ((value: boolean) => void) | undefined;
    onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined, state?: DokuFormFieldAccessorValidateState) => void) | undefined;
    registerOnFocus(fn: () => void): void;
    registerOnBlur(fn: () => void): void;
    registerOnDisable(fn: (value: boolean) => void): void;
    registerOnReadonly(fn: (value: boolean) => void): void;
    registerOnValidate(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void;
    onClickWrapperElement(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DokuInput, [null, { optional: true; self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DokuInput, "input[doku-input], textarea[doku-input]", ["dokuInput"], { "disabled": "disabled"; "readonly": "readonly"; }, {}, never, never, true>;
}
