import { Observable } from 'rxjs';
import { BaseService } from './base.service';
import { QuizEntity, QuizFeedbackTypeEntity, QuizQuestionEntity, EntityBundleType, QuizQuestionRelationshipEntity, QuizResultEntity } from '../models';
import * as i0 from "@angular/core";
export declare class QuizService extends BaseService {
    /**
     * Implements /quiz/{quiz}: GET
     * Returns quiz entity
     * @param qid the quiz entity ID
     */
    get(qid: number): Observable<QuizEntity>;
    /**
     * Implements /entity/quiz: POST
     * Returns quiz created entity
     * @param quiz the quiz entity with updated values
     */
    create(quiz: QuizEntity): Observable<QuizEntity>;
    /**
     * Implements /quiz/{quiz}: PATCH
     * Returns quiz updated entity
     * @param qid the quiz entity ID
     * @param quiz the quiz entity with updated values
     */
    update(qid: number, quiz: QuizEntity): Observable<QuizEntity>;
    /**
     * Implements /quiz/{quiz}: DELETE
     * @param qid the quiz entity ID
     */
    delete(qid: number): Observable<null>;
    /**
     * Implements /entity/quiz_type/{quiz_type}: GET
     * Returns quiz type
     * @param quizMachineName the quiz type machine name
     */
    getType(quizMachineName: string): Observable<EntityBundleType>;
    /**
     * Implements /entity/quiz_feedback_type/{quiz_feedback_type}: GET
     * Returns quiz feedback type
     * @param feedbackMachineName the feedback type machine name
     */
    getFeedbackType(feedbackMachineName: string): Observable<QuizFeedbackTypeEntity>;
    /**
     * Implements /quiz-question/{quiz_question}: GET
     * Returns quiz question entity
     * @param qqid the quiz question entity ID
     */
    getQuestion(qqid: number): Observable<QuizQuestionEntity>;
    /**
     * Implements /entity/quiz_question: POST
     * Returns question created entity
     * @param question the quiz question entity to create
     */
    createQuestion(question: QuizQuestionEntity): Observable<QuizQuestionEntity>;
    /**
     * Implements /quiz-question/{quiz_question}: PATCH
     * Returns question updated entity
     * @param qqid the quiz question entity ID
     * @param question the quiz question entity with updated values
     */
    updateQuestion(qqid: number, question: QuizQuestionEntity): Observable<QuizQuestionEntity>;
    /**
     * Implements /quiz-question/{quiz_question}: DELETE
     * @param qqid the question entity ID
     */
    deleteQuestion(qqid: number): Observable<null>;
    /**
     * Implements /entity/quiz_question_type/{quiz_question_type}: GET
     * Returns quiz question type
     * @param feedbackMachineName the type machine name
     */
    getQuestionType(typeMachineName: string): Observable<EntityBundleType>;
    /**
     * Implements /quiz-question-relationship/{quiz_question_relationship}: GET
     * Returns quiz question relationship entity
     * @param qqrid the quiz question relationship entity ID 'question id'
     */
    getQuestionRelationship(qqrid: number): Observable<QuizQuestionRelationshipEntity>;
    /**
     * Implements /quiz-question-relationship/{quiz_question_relationship}: POST
     * Returns quiz question relationship created entity
     * @param questionRelationship the quiz question relationship entity to create
     */
    createQuestionRelationship(questionRelationship: QuizQuestionRelationshipEntity): Observable<QuizQuestionRelationshipEntity>;
    /**
     * Implements /quiz-question-relationship/{quiz_question_relationship}: PATCH
     * Returns quiz question relationship updated entity
     * @param qqrid the quiz question relationship entity ID 'question id'
     * @param questionRelationship the quiz question relationship updated entity
     */
    updateQuestionRelationship(qqrid: number, questionRelationship: QuizQuestionRelationshipEntity): Observable<QuizQuestionRelationshipEntity>;
    /**
     * Implements /quiz-question-relationship/{quiz_question_relationship}: DELETE
     * @param qqrid the quiz question relationship entity ID 'question id'
     */
    deleteQuestionRelationship(qqrid: number): Observable<null>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}: GET
     * Returns quiz result entity
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     */
    getResult(qid: number, qrid: number): Observable<QuizResultEntity>;
    /**
     * Implements /entity/quiz_result: POST
     * Returns quiz result created entity
     * @param result the quiz result entity
     */
    createResult(result: QuizResultEntity): Observable<QuizResultEntity>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}: PATCH
     * Returns quiz result updated entity
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     * @param result the quiz result updated entity
     */
    updateResult(qid: number, qrid: number, result: QuizResultEntity): Observable<QuizResultEntity>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}: DELETE
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     */
    deleteResult(qid: number, qrid: number): Observable<null>;
    /**
     * Implements /entity/quiz_result_type/{quiz_result_type}: GET
     * Returns quiz result type
     * @param resultMachineName the type machine name
     */
    getResultType(resultMachineName: string): Observable<EntityBundleType>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: GET
     * Returns quiz result answer entity
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     * @param qrid the quiz result answer entity ID
     */
    getResultAnswer(qid: number, qrid: number, raid: number): Observable<any>;
    /**
     * Implements /entity/quiz_result_answer: POST
     * Returns quiz result answer created entity
     * @param answer the quiz result answer entity
     */
    createResultAnswer(answer: any): Observable<any>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: PATCH
     * Returns quiz result updated entity
     * Returns quiz result answer entity
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     * @param qrid the quiz result answer entity ID
     * @param answer the quiz result answer entity
     */
    updateResultAnswer(qid: number, qrid: number, raid: number, answer: any): Observable<any>;
    /**
     * Implements /quiz/{quiz}/result/{quiz_result}/answer/{quiz_result_answer}: DELETE
     * @param qid the quiz entity ID
     * @param qrid the quiz result entity ID
     * @param qrid the quiz result answer entity ID
     */
    deleteResultAnswer(qid: number, qrid: number, raid: number): Observable<null>;
    /**
       * Implements /entity/quiz_result_answer_type/{quiz_result_answer_type}: GET
       * Returns quiz answer result type
       * @param resultMachineName the type machine name
       */
    getResultAnswerType(resultAnswerMachineName: string): Observable<EntityBundleType>;
    static ɵfac: i0.ɵɵFactoryDeclaration<QuizService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<QuizService>;
}
