import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import * as operations from "../models/operations/index.js";
export declare class Lessons extends ClientSDK {
    /**
     * Create new attempt
     *
     * @remarks
     * Creates a new attempt for a student in a lesson if the current attempt is completed.
     *
     * For Assessment Bank lessons:
     * - This will also update the state for the student, creating a new entry to associate the new attempt number with a different sub-resource of the test bank.
     * - If the lesson is taken again by the student, a different test may be served, considering the new resource it points to configures a different test.
     * - The sub-test is determined using round-robin logic over the sub-resources of the lesson's Assessment Bank Resource object.
     *
     *   - So for example, if a lesson configures 2 sub-tests, the first attempt serves test 1, the second attempt serves test 2, the third attempt serves test 1 again, and so on.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object associated with it.
     */
    createAttempt(request?: operations.CreateNewAttemptRequest | undefined, options?: RequestOptions): Promise<operations.CreateNewAttemptResponse>;
    /**
     * Finalize a test assessments
     *
     * @remarks
     * Finalize a lesson of type `quiz`, `test-out`, or `placement` after all questions have been answered:
     * - Evaluates answered questions, attribute scores for each question, and overall lesson score.
     * - Checks the correctness of the response using the QTI question's `<qti-response-declaration>` element and update the score accordingly.
     * - Creates/updates the AssessmentLineItem and AssessmentResult objects for the student/question pair if it doesn't exist yet.
     *
     * Not supported for external test lessons as the 3rd party tool is responsible for finalizing the test. Use the **importExternalTestAssignmentResults** endpoint instead.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object with metadata.lessonType = "quiz", "test-out", or "placement" associated with it.
     */
    finalizeResponse(request?: operations.FinalStudentAssessmentResponseRequest | undefined, options?: RequestOptions): Promise<operations.FinalStudentAssessmentResponseResponse>;
    /**
     * Get assessment progress
     *
     * @remarks
     * Returns the progress the student has made in the given PowerPath lesson.
     *
     * A 'Lesson' in this context is a ComponentResource object paired with a Resource object representing an activity.
     */
    getProgress(request: operations.GetAssessmentProgressRequest, options?: RequestOptions): Promise<operations.GetAssessmentProgressResponse>;
    /**
     * Get all attempts
     *
     * @remarks
     * Returns a list of all attempts for a student in a lesson
     *
     * For Assessment Bank lessons, each attempt may represent a different sub test of the bank. Review results with care.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object associated with it.
     */
    getAttempts(request: operations.GetAttemptsRequest, options?: RequestOptions): Promise<operations.GetAttemptsResponse>;
    /**
     * Get next question
     *
     * @remarks
     * Returns the next question in the given PowerPath component resource.
     *
     * Works only with lessons of type 'powerpath-100'.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object associated with it.
     */
    getNextQuestion(request: operations.GetNextQuestionRequest, options?: RequestOptions): Promise<operations.GetNextQuestionResponse>;
    /**
     * Reset attempt
     *
     * @remarks
     * Resets the attempt for the given PowerPath lesson of a student:
     * - Soft-deletes all previous question responses, resets the test score to 0, and updates its 'scoreStatus' to "not submitted".
     * - If the lesson is an external test, only resets the test score to 0.
     *
     * For Assessment Bank lessons, this will keep the user state in the same bank test for the current attempt.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object associated with it.
     */
    resetAttempt(request?: operations.ResetAttemptRequest | undefined, options?: RequestOptions): Promise<operations.ResetAttemptResponse>;
    /**
     * Update student question response
     *
     * @remarks
     * Updates the student's response to a question and returns the updated PowerPath score:
     * - Checks the correctness of the response using the QTI question `<qti-response-declaration>` element and update the score accordingly.
     * - Creates/updates the AssessmentLineItem and AssessmentResult objects for the student/question pair if it doesn't exist yet.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object associated with it.
     */
    updateStudentResponse(request?: components.UpdateStudentQuestionResponseInput | undefined, options?: RequestOptions): Promise<operations.UpdateStudentQuestionResponseResponse>;
}
//# sourceMappingURL=lessons.d.ts.map