import { OnInit, OnDestroy } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { TypedFormGroup, Controls } from './forms-typed';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ControlValueAccessorConnector<T, C extends Controls<T> = Controls<T>> implements OnInit, OnDestroy, ControlValueAccessor {
    private directive;
    protected subs: Subscription;
    protected touchIsChildInitiated: boolean;
    form: TypedFormGroup<T, C>;
    constructor(directive: NgControl, form: TypedFormGroup<T, C>);
    ngOnInit(): void;
    ngOnDestroy(): void;
    protected onChange: (_: T) => void;
    protected onTouch: () => void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(disable: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ControlValueAccessorConnector<any, any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ControlValueAccessorConnector<any, any>, never, never, {}, {}, never, never, false, never>;
}
