import { FormControl as AngularFormControl, FormControlState, FormControlStatus, ValidationErrors } from '@angular/forms'; import { Observable } from 'rxjs'; import { AbstractControlOptions, AsyncValidatorFn, ValidatorFn } from './validation'; export interface FormControlOptions extends AbstractControlOptions { nonNullable?: boolean; initialValueIsDefault?: boolean; } export interface FormControl extends AngularFormControl { value$: Observable; errors$: Observable; enabled$: Observable; pristine$: Observable; valid$: Observable; status$: Observable; disabled$: Observable; dirty$: Observable; invalid$: Observable; validValue$: Observable; setValidators(newValidator: ValidatorFn | ValidatorFn[] | null): void; setAsyncValidators(newValidator: AsyncValidatorFn | AsyncValidatorFn[] | null): void; setEnabled(enabled: boolean): void; setDisabled(disabled: boolean): void; } export interface _FormControlCtor { prototype: FormControl; new (): FormControl; new (value: FormControlState | T, opts: FormControlOptions & { nonNullable: true; }): FormControl; new (value: FormControlState | T, validatorOrOpts?: ValidatorFn | ValidatorFn[] | FormControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormControl; } export declare const FormControl: _FormControlCtor;