import { VCLFormFieldSchema, VCLFormFieldControlSchema } from '../schemas'; import { AbstractControl } from '@angular/forms'; import { Subject } from 'rxjs'; import { Conditional } from '../types'; import { Injector } from '@angular/core'; import { ComponentType, ComponentPortal } from '@angular/cdk/portal'; export declare type FormFieldClass = new (schema: VCLFormFieldSchema, parent: FormField) => FormField; export declare type FormFieldControlClass = new (schema: VCLFormFieldSchema, parent: FormField) => FormFieldControl; interface FieldRegistry { [type: string]: { componentClass: ComponentType; fieldClass: FormFieldClass | FormFieldControlClass; }; } export declare class FormField { readonly schema: T; readonly parent?: FormField; static registry: FieldRegistry; constructor(schema: T, parent?: FormField); private _conditionalSubs?; private _visible; private _formReady$; protected stateChangedEmitter: Subject; readonly id: string; readonly stateChanged: import("rxjs").Observable; readonly type: string; readonly visible: boolean; readonly root: FormFieldControl; static lookup(type: string): { componentClass: ComponentType; fieldClass: FormFieldClass | FormFieldControlClass; }; static register(type: string, componentClass: ComponentType, fieldClass?: FormFieldClass): void; static createInstance({ schema, parent }: { schema: VCLFormFieldSchema; parent?: FormField; }): FormField; createConditionalStream(conditional: Conditional): import("rxjs").Observable; protected registerConditional(conditional: TConditional | Conditional, cb: (value: TConditional) => void): void; private updateVisible; formReady(): void; destroy(): void; createPortal(injector: Injector, additionalProviders: any[]): ComponentPortal; } export declare class FormFieldControl extends FormField { constructor(schema: T, parent?: FormField); private _disabled; private _params; readonly id: string; readonly name: string; private _control?; readonly control: AbstractControl; readonly errorStateAgent: import("../../form-control-group").FormControlErrorStateAgent; readonly material: import("../../material-design-inputs").MaterialMode; readonly defaultValue: any; readonly validators: import("@angular/forms").ValidatorFn[]; readonly label: string; readonly disabled: boolean; readonly params: TParams; readonly required: boolean; readonly hints: (import("../types").HintBase | import("../types").ErrorHint | import("../types").WarningHint | import("../types").DefaultHint | Conditional)[]; static register(type: string, componentClass: ComponentType, fieldClass?: FormFieldControlClass): void; private updateDisabled; private updateParams; protected createControl(): AbstractControl; protected createDefaultValue(): any; createPortal(injector: Injector, additionalProviders: any[]): ComponentPortal; } export {};