import { EventEmitter } from 'angular2/src/facade/async'; import { OnChanges, SimpleChange } from 'angular2/core'; import { NgControl } from './ng_control'; import { Control } from '../model'; import { ControlValueAccessor } from './control_value_accessor'; import { ValidatorFn, AsyncValidatorFn } from './validators'; /** * Binds an existing {@link Control} to a DOM element. * * ### Example ([live demo](http://plnkr.co/edit/jcQlZ2tTh22BZZ2ucNAT?p=preview)) * * In this example, we bind the control to an input element. When the value of the input element * changes, the value of the control will reflect that change. Likewise, if the value of the * control changes, the input element reflects that change. * * ```typescript * @Component({ * selector: 'my-app', * template: ` *
*

NgFormControl Example

*
*

Element with existing control:

*

Value of existing control: {{loginControl.value}}

*
*
* `, * directives: [CORE_DIRECTIVES, FORM_DIRECTIVES] * }) * export class App { * loginControl: Control = new Control(''); * } * ``` * * ### ngModel * * We can also use `ngModel` to bind a domain model to the form. * * ### Example ([live demo](http://plnkr.co/edit/yHMLuHO7DNgT8XvtjTDH?p=preview)) * * ```typescript * @Component({ * selector: "login-comp", * directives: [FORM_DIRECTIVES], * template: "" * }) * class LoginComp { * loginControl: Control = new Control(''); * login:string; * } * ``` */ export declare class NgFormControl extends NgControl implements OnChanges { private _validators; private _asyncValidators; form: Control; update: EventEmitter<{}>; model: any; viewModel: any; constructor(_validators: any[], _asyncValidators: any[], valueAccessors: ControlValueAccessor[]); ngOnChanges(changes: { [key: string]: SimpleChange; }): void; path: string[]; validator: ValidatorFn; asyncValidator: AsyncValidatorFn; control: Control; viewToModelUpdate(newValue: any): void; private _isControlChanged(changes); }