/**
 * soccr.io API
 * An ASP.NET Core Web API for managing Soccer items
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { CommonResult } from '../model/models';
import { ContextQuizAnswer } from '../model/models';
import { ContextQuizAnswerMode } from '../model/models';
import { ContextQuizCompletion } from '../model/models';
import { ContextQuizDifficultyLevel } from '../model/models';
import { ContextQuizKeyCheckAllResult } from '../model/models';
import { ContextQuizKeyCheckResult } from '../model/models';
import { ContextQuizPlacement } from '../model/models';
import { ContextQuizQuestion } from '../model/models';
import { ContextQuizQuestionUpdate } from '../model/models';
import { ContextQuizResultGradeDetail } from '../model/models';
import { ContextQuizSeries } from '../model/models';
import { QuizQuestionCertificationUpdate } from '../model/models';
import { Configuration } from '../configuration';
export interface ContextQuizServiceInterface {
    defaultHeaders: HttpHeaders;
    configuration: Configuration;
    /**
     *
     *
     * @param AnswerThreshold
     * @param DuplicateThreshold
     */
    contextQuestionReview(AnswerThreshold?: number, DuplicateThreshold?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizQuestion>>;
    /**
     *
     *
     * @param ContextAnswerID
     */
    quizAnswerDeleteItem(ContextAnswerID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param ContextQuestionID
     */
    quizAnswerDeleteQuestion(ContextQuestionID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     */
    quizAnswerModesSelectAll(extraHttpRequestParams?: any): Observable<Array<ContextQuizAnswerMode>>;
    /**
     *
     *
     * @param ContextQuizAnswer
     */
    quizAnswersInsert(ContextQuizAnswer?: ContextQuizAnswer, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param ContextAnswerID
     */
    quizAnswersSelectItem(ContextAnswerID?: number, extraHttpRequestParams?: any): Observable<ContextQuizAnswer>;
    /**
     *
     *
     * @param ContextQuestionID
     */
    quizAnswersSelectQuestion(ContextQuestionID?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizAnswer>>;
    /**
     *
     *
     * @param ContextQuizAnswer
     */
    quizAnswersUpdate(ContextQuizAnswer?: ContextQuizAnswer, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param Context
     * @param ContextKey1
     * @param ContextKey2
     */
    quizCheckContextHasQuiz(Context?: string, ContextKey1?: number, ContextKey2?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueTypeID
     * @param TSID
     * @param TechniqueID
     */
    quizCheckItemHasQuizWithKey(TechniqueTypeID?: number, TSID?: number, TechniqueID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueTypeID
     * @param TSID
     * @param TechniqueID
     */
    quizCheckItemHasQuizWithKeyAll(TechniqueTypeID?: number, TSID?: number, TechniqueID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckAllResult>;
    /**
     *
     *
     * @param PracticePlanID
     */
    quizCheckPracticePlanHasQuiz(PracticePlanID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueTypeID
     * @param TSID
     */
    quizCheckTechniqueApplicationSeriesHasQuiz(TechniqueTypeID?: number, TSID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueClassID
     */
    quizCheckTechniqueClassHasQuiz(TechniqueClassID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueID
     */
    quizCheckTechniqueHasQuiz(TechniqueID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param TechniqueTypeID
     */
    quizCheckTechniqueTypeHasQuiz(TechniqueTypeID?: number, extraHttpRequestParams?: any): Observable<ContextQuizKeyCheckResult>;
    /**
     *
     *
     * @param ContextQuizCompletion
     */
    quizCompletionInsert(ContextQuizCompletion?: ContextQuizCompletion, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param ContextQuizCompletion
     */
    quizCompletionUpdate(ContextQuizCompletion?: ContextQuizCompletion, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     */
    quizCompletionsClear(extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param EmailAddress
     */
    quizCompletionsDeleteEmailAddress(EmailAddress?: string, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param RangeBeg
     * @param RangeEnd
     */
    quizCompletionsDeleteRange(RangeBeg?: Date, RangeEnd?: Date, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param UserID
     */
    quizCompletionsDeleteUserID(UserID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param EmailAddress
     * @param RangeBeg
     * @param RangeEnd
     */
    quizCompletionsEmailAddressDeleteRange(EmailAddress?: string, RangeBeg?: Date, RangeEnd?: Date, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param QuizCompletionID
     * @param Top
     */
    quizCompletionsPlacement(QuizCompletionID?: number, Top?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizPlacement>>;
    /**
     *
     *
     * @param QuizCompletionID
     * @param Top
     */
    quizCompletionsResult(QuizCompletionID?: number, Top?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizPlacement>>;
    /**
     *
     *
     * @param RangeBeg
     * @param RangeEnd
     */
    quizCompletionsSelectDateRange(RangeBeg?: Date, RangeEnd?: Date, extraHttpRequestParams?: any): Observable<Array<ContextQuizCompletion>>;
    /**
     *
     *
     * @param EmailAddress
     */
    quizCompletionsSelectEmailAddress(EmailAddress?: string, extraHttpRequestParams?: any): Observable<Array<ContextQuizCompletion>>;
    /**
     *
     *
     * @param EmailAddress
     * @param RangeBeg
     * @param RangeEnd
     */
    quizCompletionsSelectEmailAddressDateRange(EmailAddress?: string, RangeBeg?: Date, RangeEnd?: Date, extraHttpRequestParams?: any): Observable<Array<ContextQuizCompletion>>;
    /**
     *
     *
     * @param QuizCompletionsID
     */
    quizCompletionsSelectItem(QuizCompletionsID?: number, extraHttpRequestParams?: any): Observable<ContextQuizCompletion>;
    /**
     *
     *
     * @param UserID
     */
    quizCompletionsSelectUserID(UserID?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizCompletion>>;
    /**
     *
     *
     */
    quizDifficultySelectAll(extraHttpRequestParams?: any): Observable<Array<ContextQuizDifficultyLevel>>;
    /**
     *
     *
     * @param QuizQuestionCertificationUpdate
     */
    quizQuestionCertify(QuizQuestionCertificationUpdate?: QuizQuestionCertificationUpdate, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param Context
     * @param ContextKey
     */
    quizQuestionDeleteForContext(Context?: string, ContextKey?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param ContextQuestionID
     */
    quizQuestionDeleteItem(ContextQuestionID?: number, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param ContextQuizQuestionUpdate
     */
    quizQuestionInsert(ContextQuizQuestionUpdate?: ContextQuizQuestionUpdate, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param Context
     * @param ContextKey
     */
    quizQuestionSelectContext(Context?: string, ContextKey?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizQuestion>>;
    /**
     *
     *
     * @param Context
     * @param ContextKey
     */
    quizQuestionSelectContextAsQuiz(Context?: string, ContextKey?: number, extraHttpRequestParams?: any): Observable<ContextQuizSeries>;
    /**
     *
     *
     * @param ContextQuestionID
     */
    quizQuestionSelectItem(ContextQuestionID?: number, extraHttpRequestParams?: any): Observable<ContextQuizQuestion>;
    /**
     *
     *
     * @param PracticePlanID
     */
    quizQuestionSelectPracticePlan(PracticePlanID?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizQuestion>>;
    /**
     *
     *
     * @param PracticePlanID
     */
    quizQuestionSelectPracticePlanAsQuiz(PracticePlanID?: number, extraHttpRequestParams?: any): Observable<ContextQuizSeries>;
    /**
     *
     *
     * @param Context
     * @param ContextKey1
     * @param ContextKey2
     */
    quizQuestionSelectQuiz(Context?: string, ContextKey1?: number, ContextKey2?: number, extraHttpRequestParams?: any): Observable<ContextQuizSeries>;
    /**
     *
     *
     * @param TechniqueTypeID
     * @param TSID
     */
    quizQuestionSelectTechniqueApplicationSeries(TechniqueTypeID?: number, TSID?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizQuestion>>;
    /**
     *
     *
     * @param TechniqueTypeID
     * @param TSID
     */
    quizQuestionSelectTechniqueApplicationSeriesAsQuiz(TechniqueTypeID?: number, TSID?: number, extraHttpRequestParams?: any): Observable<ContextQuizSeries>;
    /**
     *
     *
     * @param TechniqueType
     */
    quizQuestionSelectTechniqueType(TechniqueType?: number, extraHttpRequestParams?: any): Observable<Array<ContextQuizQuestion>>;
    /**
     *
     *
     * @param TechniqueTypeID
     */
    quizQuestionSelectTechniqueTypeAsQuiz(TechniqueTypeID?: number, extraHttpRequestParams?: any): Observable<ContextQuizSeries>;
    /**
     *
     *
     * @param ContextQuizQuestionUpdate
     */
    quizQuestionUpdate(ContextQuizQuestionUpdate?: ContextQuizQuestionUpdate, extraHttpRequestParams?: any): Observable<CommonResult>;
    /**
     *
     *
     * @param Pct
     */
    quizResultGrade(Pct?: number, extraHttpRequestParams?: any): Observable<ContextQuizResultGradeDetail>;
    /**
     *
     *
     */
    quizResultList(extraHttpRequestParams?: any): Observable<Array<ContextQuizResultGradeDetail>>;
}
