import { ChangeDetectorRef, EventEmitter } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { ReplaySubject } from 'rxjs'; import * as i0 from "@angular/core"; /** * form control 内部不保持 value 属性,当不使用 ngModel 时可以通过 [(value)] 实现双向绑定; * 也可以分别传入 value 和 监听 valueChange 事件以实现阻断用户操作的功能。 */ export declare class CommonFormControl implements ControlValueAccessor { protected cdr: ChangeDetectorRef; get disabled(): boolean | ""; set disabled(val: boolean | ''); get readonly(): boolean; set readonly(val: boolean); get propValue(): V; set propValue(val: V); valueChange: EventEmitter; protected onChange: (_: V) => void; protected onTouched: () => void; private _propValue; private _disabled; private _readonly; model: M; model$: ReplaySubject; constructor(cdr: ChangeDetectorRef); registerOnChange(fn: (_: V) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; writeValue(value: V): void; emitModel(model: M): void; emitValue(value: V): void; protected valueIn(value: V): M; protected modelOut(model: M): V; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "propValue": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>; }