import { Observable } from 'rxjs';
import { ElementComponent } from '../pages/builder/element/element.component';
import { HttpClient } from '@angular/common/http';
import * as i0 from "@angular/core";
interface FormElement {
    action: any;
    id: any;
    type: string;
    name: any;
    questionText?: string;
    question?: string;
    helpText?: string;
    errorMessage?: string;
    isReadOnly?: boolean;
    isHidden?: boolean;
    required?: boolean;
    referenceField?: any;
    additionalRichContent?: any;
    groupName?: any;
    isDateBackward?: boolean;
    title?: any;
    subTitle?: any;
    size?: number;
    isDateForward?: boolean;
    isOptional?: boolean;
    isTitle?: boolean;
    nextQuestion?: any;
    allowedFileExtensions?: any;
    questionNumber?: number;
    order: number;
    questionBookId?: any;
    fieldsMeta?: any;
    trackingId?: any;
    recordId?: any;
    qbReference?: any;
    qbReferenceQuestions?: any;
    primaryKey: boolean;
    style: {
        labelClass: any;
        labelStyle: any;
        labelValueStyle: any;
        inputClass: any;
        inputStyle: any;
        showLabel: boolean;
        bookStyle: any;
        direction: any;
        questionStyle: any;
    };
    options?: Array<{
        value: string;
        uniqueIdentifier: any;
        questionId: any;
        nextQuestion: any;
        name: any;
        id: any;
    }>;
    subText: any;
    columns?: any;
}
export declare class FormBuilderService {
    private http;
    private formElements;
    private formElementsSubject;
    private selectedElementSubject;
    private selectHeaderSubject;
    private actionSubject;
    private elementComponent;
    book: any;
    unique_id: any;
    tempElem: any[];
    formElements$: Observable<FormElement[]>;
    selectedElement$: Observable<number>;
    selectHeaderSubject$: Observable<any>;
    actionSubject$: Observable<any>;
    currentElement: any;
    selectTableColumn: any;
    constructor(http: HttpClient);
    intializeBook(book: any): void;
    getRefQbData(refqbid: string): Observable<any>;
    addElementWithId(): string;
    updateQuestionBookActionButtons(button: any, action: string): void;
    newBook(): void;
    clearElements(): void;
    getElementComponent(): ElementComponent | null;
    setElementComponent(component: ElementComponent): void;
    addElement(element: FormElement): void;
    addTableElement(element: any, ind: any): void;
    updateElement(index: number, updates: Partial<FormElement>): void;
    updateTitle(event: any): void;
    setSelectedElement(index: number): void;
    setSelectedTableElement(index: any, event: any): void;
    removeSelectedTableElement(index: number, event: any): void;
    getSelectTableColumn(): any;
    selectHeading(event: any): void;
    getElements(): FormElement[];
    sortElementsByOrder(): void;
    getBook(): any;
    downloadElement(): any;
    updateElementsOrder(updatedElements: FormElement[]): void;
    removeElementComponent(id: any): void;
    elementUpdate(index: any, element: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormBuilderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FormBuilderService>;
}
export {};
