import { ChangeDetectorRef, EventEmitter, OnDestroy } from '@angular/core';
import { FormQuestionType } from '@colijnit/mainapi/build/enum/form-question.type';
import { TableName } from '@colijnit/mainapi/build/enum/table-name.enum';
import { Form } from '@colijnit/mainapi/build/model/form.bo';
import { FormResponse } from '@colijnit/mainapi/build/model/form-response.bo';
import { FormQuestion } from '@colijnit/mainapi/build/model/form-question.bo';
import { FormQuestionAnswer } from '@colijnit/mainapi/build/model/form-question-answer.bo';
import { FormQuestionResponse } from '@colijnit/mainapi/build/model/form-question-response.bo';
import { CoDocument } from '@colijnit/mainapi/build/model/co-document.bo';
import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
import { Icon } from '../../../enum/icon.enum';
import { IconCacheService } from '../../../service/icon-cache.service';
import { UserFormMode } from '../../../enum/user-form-mode.enum';
import { SharedConnectorService } from '../../../service/shared-connector.service';
import { FilesUploadComponent } from '../../files-upload/files-upload.component';
import { PromptService } from '@colijnit/corecomponents_v12';
export declare class FormBuilderUserFormComponent implements OnDestroy {
    private _detectorRef;
    private _boFactory;
    private _changeDetectorRef;
    private _sharedConnectorService;
    private _promptService;
    iconCacheService: IconCacheService;
    readonly formQuestionType: typeof FormQuestionType;
    readonly TableName: typeof TableName;
    readonly icons: typeof Icon;
    mode: UserFormMode;
    documents: CoDocument[];
    private _form;
    filesUploadComponent: FilesUploadComponent;
    showPopup: boolean;
    set form(form: Form);
    get form(): Form;
    userForm: FormResponse;
    table: TableName;
    key: string;
    readonly: boolean;
    enableQuestions: boolean;
    readonly cancelForm: EventEmitter<void>;
    readonly saveForm: EventEmitter<FormResponse>;
    readonly definitiveChange: EventEmitter<boolean>;
    readonly createNewFormResponse: EventEmitter<FormResponse>;
    cloneForm: Form;
    formResponse: FormResponse;
    activeQuestion: FormQuestion;
    gotoQuestion: number;
    showClass(): boolean;
    constructor(_detectorRef: ChangeDetectorRef, _boFactory: BusinessObjectFactory, _changeDetectorRef: ChangeDetectorRef, _sharedConnectorService: SharedConnectorService, _promptService: PromptService, iconCacheService: IconCacheService);
    ngOnDestroy(): void;
    enabledNextQuestion(question: FormQuestion, answer?: FormQuestionAnswer | number): void;
    onValid(): void;
    handleCancelForm(): void;
    changeMultipleOption(id: string, formResponse: FormQuestionResponse, add: boolean): void;
    changeLovOption(formResponse: FormQuestionResponse, value: FormQuestionAnswer): void;
    changeTime(formResponse: FormQuestionResponse, time: Date): void;
    handleDocumentDeleted(doc: CoDocument): void;
    handleDocumentChanged(doc: CoDocument): void;
    handleDocumentsAdded(docs: CoDocument[]): void;
    private _prepareNewForm;
    private _prepareExistingForm;
    private _enableQuestions;
    private _loadDocs;
    handleDefinitiveChange(definitive: boolean): void;
    commitUserForm(): void;
    handleOpenFilesUpload(): void;
}
