import { EventEmitter, OnChanges, SimpleChanges } from "@angular/core";
import { FormGroup } from "@angular/forms";
import { KwikUILoaderService } from "kwikui";
import { TFormEditorType } from "./builder-form-editor.definitions";
import { KwikIDFormBuilderFormEditorService } from "./builder.form-editor.service";
import * as i0 from "@angular/core";
export declare class KwikIDBuilderFormEditorComponent implements OnChanges {
    loaderService: KwikUILoaderService;
    kwikidBuilderFormEditorService: KwikIDFormBuilderFormEditorService;
    /**
     * Components Inputs
     */
    activeFormConfig: any;
    /**
     * Component Outputs (Event Emitters)
     */
    onClickSaveActiveFormConfig: EventEmitter<any>;
    /**
     * Component Variables
     */
    rows: any[];
    columns: any[];
    activeFieldConfigEditing: any;
    showFieldConfigValidatorsConfigEditor: boolean;
    activeFieldConfigValidatorsConfig: any;
    showFieldConfigPropertiesConfigEditor: boolean;
    activeFieldConfigPropertiesConfig: any;
    showFieldConfigOptionsConfigEditor: boolean;
    activeFieldConfigOptionsConfig: any;
    editorTypeOptions: any[];
    activeEditorType: TFormEditorType;
    activeFormConfig_Fields: any[];
    activeFormConfigNoFields: any;
    showConfigPreview: boolean;
    formGroup: FormGroup;
    savedConfig: boolean;
    markSaved(): void;
    markUnsaved(): void;
    dialogOpen: boolean;
    showDialog(): void;
    hideDialog(): void;
    dialogError: boolean;
    showDialogError(): void;
    hideDialogError(): void;
    constructor(loaderService: KwikUILoaderService, kwikidBuilderFormEditorService: KwikIDFormBuilderFormEditorService);
    /**
     * Angular Lifecycle Methods
     */
    ngOnChanges(changes: SimpleChanges): void;
    initFormEditor(activeFormConfig: any): void;
    /**
     * General Editor Common Methods
     */
    handleOnClickChangeActiveEditor(editorType: string): void;
    handleOnClickSaveActiveFormConfig(): void;
    /**
     * Fields Editor Related Methods
     */
    /**
     * Methods to handle addition of new field
     */
    handleOnClickAddField(): void;
    /**
     * Methods to handle editing of field key-values
     */
    handleOnClickEditValidators(e: any): void;
    handleOnClickEditProperties(e: any): void;
    handleOnClickEditOptions(e: any): void;
    /**
     * Methods to handle change in input values for Fields Keys
     */
    handleOnInput(e: any): void;
    handleOnInputFieldConfigValidatorsConfig(e: any): void;
    handleOnInputFieldConfigPropertiesConfig(e: any): void;
    handleOnInputFieldConfigOptionsConfig(e: any): void;
    /**
     * Methods to handle deletion of field
     */
    handleOnClickDeleteField(e: any): void;
    /**
     * Non Fields Editor Related Methods
     */
    handleOnClickSaveActiveFormConfigNoFields(e: any): void;
    /**
     * Other Component Methods
     */
    handleOnClickPreview(): void;
    toggleLoader(loader: any): void;
    closeJSONPopup(): void;
    /**
     * Other Helper Methods
     */
    copyToClipboard(): void;
    convertToMinifiedJson(): void;
    convertToCompleteJson(): void;
    downloadJSON(): void;
    /**
     * Misc Methods
     */
    getOptions(index: any, value: any, key: any, path: any): any;
    memoizedGetOptions: any;
    isOptions(index: any, value: any, key: any, path: any): boolean;
    isBoolean(value: any): boolean;
    isString(value: any): boolean;
    isNumber(value: any): boolean;
    isObject(value: any): boolean;
    /**
     * Angular Specific Methods
     */
    trackByFn(index: number, item: any): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<KwikIDBuilderFormEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KwikIDBuilderFormEditorComponent, "kwikid-builder-form-editor", never, { "activeFormConfig": "activeFormConfig"; }, { "onClickSaveActiveFormConfig": "onClickSaveActiveFormConfig"; }, never, never>;
}
