import { PowerPathCore } from "../core.js";
import { RequestOptions } from "../lib/sdks.js";
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
import * as errors from "../models/errors/index.js";
import { PowerPathError } from "../models/errors/powerpatherror.js";
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
import * as operations from "../models/operations/index.js";
import { APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
 * 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.
 */
export declare function lessonsCreateAttempt(client: PowerPathCore, request?: operations.CreateNewAttemptRequest | undefined, options?: RequestOptions): APIPromise<Result<operations.CreateNewAttemptResponse, errors.BadRequestResponseError | errors.UnauthorizedRequestResponseError | errors.ForbiddenResponseError | errors.NotFoundResponseError | errors.UnprocessableEntityResponseError | errors.TooManyRequestsResponseError | errors.InternalServerErrorResponse | PowerPathError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
//# sourceMappingURL=lessonsCreateAttempt.d.ts.map