import { EventEmitter } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { Schema } from '../schema';
import { FormPropertyErrors } from './form-property-errors';
export interface FormProperty extends AbstractControl {
    isRoot: boolean;
    id: string;
    path: string;
    schema: Schema;
    name: string;
    visible: boolean;
    visibilityChanges: BehaviorSubject<boolean>;
    nonEmptyValue: any;
    nonEmptyValueChanges: EventEmitter<any>;
    widgetInstance: any;
    getErrors(): FormPropertyErrors | null;
    setVisible(visible: boolean): any;
    bindVisibility(): any;
}
