import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { NgControl } from '@angular/forms'; export interface FormControlHost { readonly input?: FormControlInput; readonly pending: boolean; readonly invalid: boolean; readonly valid: boolean; readonly touched: boolean; readonly untouched: boolean; readonly submitted: boolean; } export interface FormControlInput { readonly stateChanged: Observable; readonly controlType: string; readonly elementId: string; readonly isDisabled: boolean; readonly isFocused: boolean; readonly hasError: boolean; readonly ngControl?: NgControl; readonly value: T; onLabelClick(event: Event): void; } export interface FormControlAgentInput { readonly controlType: string; readonly elementId: string; readonly isDisabled: boolean; readonly isFocused: boolean; readonly ngControl?: NgControl; readonly value: T; } export declare type FormControlErrorStateAgent = (host?: FormControlHost, input?: FormControlAgentInput) => (boolean); export declare const FORM_CONTROL_HOST: InjectionToken; export declare const FORM_CONTROL_ERROR_STATE_AGENT: InjectionToken; export declare const FORM_CONTROL_INPUT: InjectionToken>;