import { Type } from '@angular/core';
import 'reflect-metadata';
import { CustomControlOpts, FormArrayOpts, FormControlOpts, FormOpts } from '../decorators';
import { FormMetadata } from '../metadata';
export declare class ModelBinder {
    private metadataKey;
    static readonly instance: ModelBinder;
    private constructor();
    getMetadata(target: Type<any>): FormMetadata;
    bindForm(target: Type<any>, opts: FormOpts): void;
    bindCustomControl(target: {
        constructor: Type<any>;
    }, propertyName: string, opts: CustomControlOpts): void;
    bindFormControl(target: {
        constructor: Type<any>;
    }, propertyName: string, opts?: FormControlOpts): void;
    bindFormGroup(target: {
        constructor: Type<any>;
    }, propertyName: string, type?: Type<any>): void;
    bindFormArray(target: {
        constructor: Type<any>;
    }, propertyName: string, opts: FormArrayOpts): void;
}
