import { EventEmitter, SimpleChanges } from '@angular/core';
import { FormBuilderService } from '../../../services/form-builder.service';
import * as i0 from "@angular/core";
export declare class ElementComponent {
    private formBuilderService;
    bookletJSON: any;
    bookletId: any;
    templateMode: EventEmitter<boolean>;
    field: any;
    formElements: any[];
    elements: any[];
    bookId: string;
    sections: {
        basic: boolean;
        advanced: boolean;
    };
    basicElements: any[];
    advancedElements: any[];
    version: string;
    book: any;
    selectedElement: any;
    isSelectTablePopup: boolean;
    currentType: string;
    addTable: boolean;
    dots: any[];
    draggedIndex: number | null;
    templateSelected: boolean;
    constructor(formBuilderService: FormBuilderService);
    ngOnInit(): void;
    toggleSection(section: 'basic' | 'advanced'): void;
    isSectionOpen(section: string): boolean;
    ngOnChanges(changes: SimpleChanges): void;
    onTemplateSelected(event: {
        selectedTemplate: any;
        elements: any[];
    }): void;
    private initializeForm;
    selectElement(index: number): void;
    selectedFieldIndex: number | null;
    selectHeading(event: any): void;
    generateUiId(): string;
    addElement(type: string): void;
    getDefaultSubText(): {
        endpoint: any;
        variable: any;
        field: any;
        defaultField: any;
        sourceQuestionId: any;
        valueField: any;
        labelField: any;
        isDependentField: boolean;
        dependentValue: any;
        queryField: any;
        queryValue: any;
        queryValueReference: any;
        uniqueKey: any;
    };
    removeElement(field: any, index: number): void;
    onDragStart(event: DragEvent, index: number): void;
    onDragOver(event: DragEvent, index: number): void;
    onDrop(event: DragEvent, dropIndex: number): void;
    toggleBoolean(field: any): void;
    getFontStyles(field: any): any;
    getLineStyles(field: any): any;
    onClose(): void;
    addOnTable(): void;
    addTableData(fieldId: any, fieldName: any): void;
    columnSelected(event: any): void;
    removeColumn(event: any): void;
    fileChangeEvent(index: any, event: any): Promise<void>;
    private readFileAsDataURL;
    static ɵfac: i0.ɵɵFactoryDeclaration<ElementComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ElementComponent, "app-element", never, { "bookletJSON": { "alias": "bookletJSON"; "required": false; }; "bookletId": { "alias": "bookletId"; "required": false; }; }, { "templateMode": "templateMode"; }, never, never, true, never>;
}
