import { FormGroup } from './../index';
import { FormGroupLabelPosition, Control } from './../index';
import { AfterViewInit, ElementRef, OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { BaseElement } from './smart.element';
import * as i0 from "@angular/core";
export { ControlControlType, ControlLabelPosition, ControlViewMode, FormGroupLabelPosition, Control, ElementRenderMode } from './../index';
export { Smart } from './smart.element';
export { FormGroup } from './../index';
export declare class FormGroupComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges {
    constructor(ref: ElementRef<FormGroup>);
    private eventHandlers;
    nativeElement: FormGroup;
    /** @description Creates the component on demand.
     * @param properties An optional object of properties, which will be added to the template binded ones.
     */
    createComponent(properties?: {}): any;
    /** @description Sets or gets the form columns. */
    get columns(): number;
    set columns(value: number);
    /** @description Sets the Form control data field. The control's inner input's name is set to the dataField value and in the FormGroup it is accessible through the dataField value. */
    get dataField(): string;
    set dataField(value: string);
    /** @description Gets or Sets the Form control's label. */
    get label(): string;
    set label(value: string);
    /** @description  */
    get controls(): Control[];
    set controls(value: Control[]);
    /** @description Sets or Gets the labels position. */
    get onStatusChanges(): {
        (value: string): void;
    };
    set onStatusChanges(value: {
        (value: string): void;
    });
    /** @description Makes the form readonly. */
    get onValueChanges(): {
        (value: any): void;
    };
    set onValueChanges(value: {
        (value: any): void;
    });
    /** @description Shows / hides the colon after the labels. */
    get labelPosition(): FormGroupLabelPosition | string;
    set labelPosition(value: FormGroupLabelPosition | string);
    /** @description Shows / hides validation summary. */
    get readonly(): boolean;
    set readonly(value: boolean);
    /** @description Gets or Sets the Form value. */
    get showColonAfterLabel(): boolean;
    set showColonAfterLabel(value: boolean);
    /** @description undefined */
    get showSummary(): boolean;
    set showSummary(value: boolean);
    /** @description undefined */
    get value(): any;
    set value(value: any);
    /** @description Adds a control to the Form.
    * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
    */
    addControl(controlOptions: any): void;
    /** @description Gets a control by its name(dataField).
    * @param {string} dataField. dataField of a FormControl or FormGroup
    * @returns {Control}
  */
    getControl(dataField: any): Promise<any>;
    getControlSync(dataField: any): Control;
    /** @description Inserts a control to the Form.
    * @param {number} index. Control insert index
    * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
    */
    insertControl(index: number, controlOptions: any): void;
    /** @description Remove a control from the Form.
    * @param {any} controlOptions. Control options. The control options description is available in the <em>controls</em> property.
    */
    removeControl(controlOptions: any): void;
    get isRendered(): boolean;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /** @description Add event listeners. */
    private listen;
    /** @description Remove event listeners. */
    private unlisten;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FormGroupComponent, "smart-form-group, [smart-form-group]", ["smart-form-group"], { "columns": "columns"; "dataField": "dataField"; "label": "label"; "controls": "controls"; "onStatusChanges": "onStatusChanges"; "onValueChanges": "onValueChanges"; "labelPosition": "labelPosition"; "readonly": "readonly"; "showColonAfterLabel": "showColonAfterLabel"; "showSummary": "showSummary"; "value": "value"; }, {}, never>;
}
