"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.PowerPathPlacement = void 0;
const powerPathPlacementGetAllPlacementTests_js_1 = require("../funcs/powerPathPlacementGetAllPlacementTests.js");
const powerPathPlacementGetCurrentLevel_js_1 = require("../funcs/powerPathPlacementGetCurrentLevel.js");
const powerPathPlacementGetNextPlacementTest_js_1 = require("../funcs/powerPathPlacementGetNextPlacementTest.js");
const powerPathPlacementGetSubjectProgress_js_1 = require("../funcs/powerPathPlacementGetSubjectProgress.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class PowerPathPlacement extends sdks_js_1.ClientSDK {
    /**
     * Get all placement tests
     *
     * @remarks
     * Returns all placement tests for a subject, including available results for each.
     *
     * A 'Lesson' (placement test) in this context is a ComponentResource object which has a Resource object with metadata.lessonType = "placement" associated with it.
     */
    async getAllPlacementTests(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, powerPathPlacementGetAllPlacementTests_js_1.powerPathPlacementGetAllPlacementTests)(this, request, options));
    }
    /**
     * Get current level
     *
     * @remarks
     * Returns the current level of the student in a placement process:
     * - The level is determined by the last completed placement test's grade level, starting from the lowest grade level available for the subject's placement tests.
     * - As the student completes placement tests and attains scores of 90 or greater, their level updates to the next level available for the subject.
     *
     * Also returns the 'onboarded' boolean that indicates if the student completed the onboarding process for the subject:
     * - A 'onboarded = true' means they either completed and passed all placement tests or they have gotten a score smaller than 90 in the last completed placement test.
     * - A 'onboarded = false' means they haven't completed placement tests yet or have achieved a score of 90 or greater in the last completed placement test and there are more tests to take.
     */
    async getCurrentLevel(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, powerPathPlacementGetCurrentLevel_js_1.powerPathPlacementGetCurrentLevel)(this, request, options));
    }
    /**
     * Get next placement test
     *
     * @remarks
     * Returns the next placement test for the student in a subject:
     * - If the student has completed all placement tests for the subject, the next test's lesson ID will be null. Tests will also be marked as exhausted.
     * - If the student hasn't completed a single placement test, returns the first placement test's lesson ID for the subject.
     * - If the student has completed some placement tests, it will return null for the next test's lesson ID if the last completed test had a score smaller than 90.
     * - Alternatively, it will return the next available placement test's lesson ID if the score was greater than or equal to 90.
     *
     * Also returns the 'onboarded' boolean that indicates if the student completed the onboarding process for the subject:
     * - A 'onboarded = true' means they either completed and passed all placement tests or they have gotten a score smaller than 90 in the last completed placement test.
     * - A 'onboarded = false' means they haven't completed placement tests yet or have achieved a score of 90 or greater in the last completed placement test and there are more tests to take.
     *
     * A 'Lesson' in this context is a ComponentResource object which has a Resource object with metadata.lessonType = "placement" associated with it.
     */
    async getNextPlacementTest(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, powerPathPlacementGetNextPlacementTest_js_1.powerPathPlacementGetNextPlacementTest)(this, request, options));
    }
    /**
     * Get subject progress
     *
     * @remarks
     * Returns the progress the student has made in the given subject
     */
    async getSubjectProgress(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, powerPathPlacementGetSubjectProgress_js_1.powerPathPlacementGetSubjectProgress)(this, request, options));
    }
}
exports.PowerPathPlacement = PowerPathPlacement;
//# sourceMappingURL=powerpathplacement.js.map