import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import { I18nService } from '../i18n/i18n.service';
import { TlInput } from '../input/input';
import { UntypedFormGroup, NgForm, NgModel } from '@angular/forms';
import { TlButton } from '../button/button';
import { FormSubmitDirective } from './form-submit.directive';
import { ActionsModal } from '../core/enums/actions-modal';
import * as i0 from "@angular/core";
export declare class TlForm implements OnInit, AfterViewInit, AfterContentInit, OnDestroy {
    private renderer;
    private i18n;
    private change;
    private injector;
    set initialFocus(value: any);
    get initialFocus(): any;
    showConfirmOnChange: boolean;
    isLoading: boolean;
    submitOnLastField: boolean;
    primaryKey: string;
    messageDialogConfirmation: string;
    submitShortcut: string;
    cancelShortcut: string;
    mode: 'inline' | 'modal';
    textConfirm: string;
    textCancel: string;
    padding: string;
    formLoaded: EventEmitter<UntypedFormGroup>;
    submitForm: EventEmitter<NgForm>;
    actionForm: EventEmitter<ActionsModal>;
    changeForm: EventEmitter<UntypedFormGroup>;
    formGroup: UntypedFormGroup;
    form: NgForm;
    inputList: QueryList<TlInput>;
    buttonList: QueryList<TlButton>;
    models: QueryList<NgModel>;
    submitDirective: FormSubmitDirective;
    buttonFormOk: any;
    buttonFormCancel: any;
    content: any;
    formResult: any;
    private lastTabIndex;
    private focusElements;
    private elementsWithTabIndex;
    private _initialFocus;
    private subscription;
    private modalInstance;
    constructor(renderer: Renderer2, i18n: I18nService, change: ChangeDetectorRef, injector: Injector);
    get valid(): boolean;
    get formInstance(): import("@angular/forms").FormGroup<any>;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    handleSmartFormAction(): void;
    ngAfterViewInit(): void;
    listenSubmitDirective(): void;
    listenFormChanges(): void;
    handleFormGroupValues(): void;
    patchDataForm(): void;
    patchInitialDataForm(): void;
    markAllAsTouched(controls: any): void;
    setPrimaryKeyDisabled(): void;
    addControls(): void;
    onSubmitForm(): void;
    handleFormPrimaryKey(): void;
    getElementsOfForm(): void;
    taggedNotForm(element: HTMLElement): boolean;
    addButtonsOfFormToListElements(): void;
    handleTabIndexComponentsOfForm(): void;
    setTabIndex(element: HTMLElement): void;
    isLastTabIndexElement(element: HTMLElement, index: any, array: any): void;
    generateTabIndexOfElements(): void;
    getElementsWithTabIndex(): void;
    validateDuplicatedTabIndex(element: HTMLElement): void;
    validateTabIndexByElements(): void;
    notExistTabIndexInserted(): boolean;
    existTabIndexInserted(element: HTMLElement): boolean;
    orderElements(): void;
    handleKeysForm($event: KeyboardEvent): void;
    backwardTabbing(): any;
    validateFirstElement(): boolean;
    forwardTabbing(keyEnter?: string): any;
    isTextArea(): boolean;
    isLastTabIndexOfForm(): boolean;
    isFirstTabIndexOfForm(): boolean;
    isElementDisabled(element: any): any;
    setInitialFocus(): void;
    setFocusOK(): void;
    setFocusCancel(): void;
    setFocusOnFirstInput(): void;
    get inputArray(): any[];
    isActiveElementButtonOk(): boolean;
    isActiveElementButtonCancel(): boolean;
    destroyListeners(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlForm, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlForm, "tl-form", never, { "initialFocus": "initialFocus"; "showConfirmOnChange": "showConfirmOnChange"; "isLoading": "isLoading"; "submitOnLastField": "submitOnLastField"; "primaryKey": "primaryKey"; "messageDialogConfirmation": "messageDialogConfirmation"; "submitShortcut": "submitShortcut"; "cancelShortcut": "cancelShortcut"; "mode": "mode"; "textConfirm": "textConfirm"; "textCancel": "textCancel"; "padding": "padding"; "formGroup": "formGroup"; }, { "formLoaded": "formLoaded"; "submitForm": "submitForm"; "actionForm": "actionForm"; "changeForm": "changeForm"; }, ["submitDirective", "inputList", "buttonList", "models"], ["*"], false, never>;
}
//# sourceMappingURL=form.d.ts.map