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 { FormGroup, NgForm, NgModel } from '@angular/forms';
import { TlButton } from '../button/button';
import { FormSubmitDirective } from './form-submit.directive';
import { ActionsModal } from '../core/enums/actions-modal';
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<FormGroup>;
    submitForm: EventEmitter<NgForm>;
    actionForm: EventEmitter<ActionsModal>;
    changeForm: EventEmitter<FormGroup>;
    formGroup: FormGroup;
    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(): FormGroup;
    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;
}
