import { HttpClient, HttpHeaders } from '@angular/common/http';
import { BehaviorSubject } from 'rxjs';
import { Configurations } from '../../../configurations';
import * as i0 from "@angular/core";
export declare class EditorService {
    private http;
    env: any;
    constructor(http: HttpClient, config?: Configurations);
    currentPageDetails: any;
    prefixForQuestionName: string;
    activeQuestionIndex: BehaviorSubject<number>;
    activeQuestionStream$: import("rxjs").Observable<number>;
    currentPageNumber: number;
    activeQuestion: number;
    showAddPageOption: boolean;
    showPageDetails: boolean;
    score: {
        defaultScore: number;
        negativeScore: number;
    };
    allPages: any;
    stepIdentifier: string;
    assessmentId: any;
    settings: any;
    formsPage: any;
    initializeEmptyResponseSegment(): {
        title: string;
        description: string;
        maxScore: number;
        segments: never[];
    };
    uploadHandler(formData: any, destination: any): import("rxjs").Observable<any>;
    addQuestion(evt: any, index?: number): void;
    setToPagefromWelcome(): void;
    /**
     * Check whether to display Page Details or Add Page tilte option
     */
    checkForPageDetails(): void;
    /**
     * Creates a question of type multiple choice
     * @param index Index at which question needs to be created
     */
    createMultipleChoice(index?: any): void;
    /**
     * Creates a question of type checkbox
     * @param index Index at which question needs to be created
     */
    createCheckbox(index?: any): void;
    /**
     * Creates a question of type star rating
     * @param index Index at which question needs to be created
     * [Note]: Rating label type can take 2 values 'specific'/'scale'
     */
    createStarRating(index?: any): void;
    /**
     * Creates a question of type single textbox
     * @param index Index at which question needs to be created
     */
    createSingleTextbox(index?: any): void;
    /**
     * Creates a question of type comment box
     * @param index Index at which question needs to be created
     */
    createCommentbox(index?: any): void;
    /**
     * Creates a question of type matrix of dropdown
     * @param index Index at which question needs to be created
     */
    createMatrixDropdown(index?: any): void;
    /**
     * Creates a question of type dropdown
     * @param index Index at which question needs to be created
     */
    createDropdown(index?: any): void;
    /**
     * Creates a question of type slider
     * @param index Index at which question needs to be created
     */
    createSlider(index?: any): void;
    /**
     * Creates a question of type matrix rating scale
     * @param index Index at which question needs to be created
     */
    createRatingScale(index?: any): void;
    /**
     * Creates a question of type ranking
     * @param index Index at which question needs to be created
     */
    createRanking(index?: any): void;
    /**
     * Creates a question of type multiple textbox
     * @param index Index at which question needs to be created
     */
    createMultipleTextbox(index?: any): void;
    /**
     * Creates a question of type date/time
     * @param index Index at which question needs to be created
     */
    createDateTime(index?: any): void;
    /**
     * Creates a question of type file upload
     * @param index Index at which question needs to be created
     */
    createFileUpload(index?: any): void;
    /**
     * Creates a question of type image choice
     * @param index Index at which question needs to be created
     */
    createImageChoice(index?: any): void;
    /**
   * Creates and adds the question to list of questions if a question's index is undefined
   * @param element Details of question to be created
   */
    operationOnCreateIfIndexUndefined(element: any): void;
    /**
     * Creates and adds the question to list of questions if a question's index is present
     * @param element Details of question to be created
     * @param index Index at which question should be created
     */
    operationOnCreateIfIndexDefined(element: any, index: any): void;
    /**
      * Sets the active question based on particular page
      */
    setActiveQuestionBasedOnPageLength(): void;
    /**
  * Sorts the questions based on page number
  */
    sortQuestion(): void;
    /**
     * Generates a unique question name for newly added question
     * @param questionIndex Index of question to be created
     */
    generateQuestionName(questionIndex: any): string;
    generateRandomColor(): string;
    /**
   * Sets the question as active based on the particular index
   * @param index Index of the question to be marked as active question
   */
    setactiveQuestion(index?: any): void;
    /**
   * Duplicates a question with particular index
   * @param index Index of question to be duplicated
   */
    copyQuestion(index: any): void;
    /**
     * Assigns a unique name to the duplicated question
     * @param elementsNames List of question names
     * @param COPY_ELEMENT Details of question duplicated
     */
    checkForSameName(elementsNames: any, COPY_ELEMENT: any): void;
    /**
   * Deletes the question on click of delete button
   * @param index Index of question to be deleted
   */
    deleteQuestion(index: any): void;
    /**
   * Removes the logic data for a particular question from other questions
   * @param index Index of question whose logic data needs to be removed from other questions
   */
    removeLogicFromDependentQuestion(index: any): void;
    /**
  * Adds a new page
  */
    addPage(): void;
    /**
    * Counts the number of pages in a survey/form
    */
    numberOfPages(): any;
    httpOptions: {
        headers: HttpHeaders;
    };
    fetchAssessmentData(id: string): import("rxjs").Observable<Object>;
    saveAssessment(id: any, payload: any): import("rxjs").Observable<Object>;
    getAuthorizationToken(): any;
    /**
    * Extracts the text from a particular html content
    * @param s html content from which text needs to be extracted
    */
    extract(s: string): string;
    /**
     * Moves Question to a particular index in an array
     * @param previous Index from which Question should be moved
     * @param next  Index before which Question should be moved
     */
    moveQuestion(previous: any, next: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditorService, [null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EditorService>;
}
