import * as i0 from '@angular/core';
import { AfterViewInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';

declare class GenericControlValueAccessor<ValueType = any> implements ControlValueAccessor, AfterViewInit {
    onChange: (val: ValueType) => void;
    onTouched: () => void;
    private elementRef;
    private cdr;
    private _value;
    private _initialized;
    ngAfterViewInit(): void;
    setDisabledState: (isDisabled: boolean) => void;
    registerOnChange(fn: (newVal: ValueType) => void): void;
    registerOnTouched(fn: () => void): void;
    writeValue(val: ValueType): void;
    private initializeComponent;
    private updateElementValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<GenericControlValueAccessor<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<GenericControlValueAccessor<any>, "[noop]", never, {}, {}, never, never, true, never>;
}

export { GenericControlValueAccessor };
