import { EventEmitter, QueryList } from '@angular/core';
import { AbstractControlDirective, ControlContainer } from '@angular/forms';
import { DFormControlRuleDirective, DFormGroupRuleDirective } from './validator-directive/form-control-rules.directive';
import * as i0 from "@angular/core";
export declare enum FormLayout {
    Horizontal = "horizontal",
    Vertical = "vertical",
    Columns = "columns"
}
export declare class FormDirective {
    layout: FormLayout;
    labelSize: 'sm' | '' | 'lg';
    labelAlign: 'start' | 'center' | 'end';
    /**
     * @deprecated Use dHasFeedback to replace, No longer support for label
     */
    dFeedbackType: 'label' | 'control';
    dHasFeedback: boolean;
    dSubmit: EventEmitter<any>;
    readonly _cd: AbstractControlDirective;
    readonly _dValidateRuleDir: DFormGroupRuleDirective;
    childrenCtrDirs: QueryList<DFormControlRuleDirective>;
    get layoutHorizontal(): boolean;
    get layoutVertical(): boolean;
    get layoutColumns(): boolean;
    get labelSizeLg(): boolean;
    get labelSizeSm(): boolean;
    get labelAlignStart(): boolean;
    get labelAlignCenter(): boolean;
    get labelAlignEnd(): boolean;
    updateOnSubmit($event?: any, data?: any): void;
    updateOnReset(): void;
    private _operateAllControl;
    private _getAllErrors;
    constructor(cd: ControlContainer, dValidateRuleDir: DFormGroupRuleDirective);
    static ɵfac: i0.ɵɵFactoryDeclaration<FormDirective, [{ optional: true; self: true; }, { optional: true; self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FormDirective, "[dForm]", ["dForm"], { "layout": "layout"; "labelSize": "labelSize"; "labelAlign": "labelAlign"; "dFeedbackType": "dFeedbackType"; "dHasFeedback": "dHasFeedback"; }, { "dSubmit": "dSubmit"; }, ["childrenCtrDirs"], never, false>;
}
