import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type GetAssessmentProgressRequest = {
    /**
     * The sourcedId of the student who is answering the question
     */
    student: string;
    /**
     * The sourcedId of the lesson (ComponentResource)
     */
    lesson: string;
    /**
     * The attempt number of the lesson that the student is answering
     */
    attempt?: string | undefined;
};
export declare const GetAssessmentProgressLessonType: {
    readonly Quiz: "quiz";
    readonly TestOut: "test-out";
    readonly Placement: "placement";
};
export type GetAssessmentProgressLessonType = ClosedEnum<typeof GetAssessmentProgressLessonType>;
export type ResponseBody = {
    lessonType: GetAssessmentProgressLessonType;
    /**
     * Whether the lesson has been finalized in the current attempt
     */
    finalized: boolean;
    /**
     * The current score for this attempt
     */
    score?: number | undefined;
    questions: Array<components.PowerPathTestQuestion>;
    /**
     * The tool provider of the lesson if external
     */
    toolProvider: string | null;
    /**
     * The attempt number
     */
    attempt: number;
    /**
     * The XP the student has earned in the lesson
     */
    xp: number | null;
    /**
     * The multiplier for the student's XP
     */
    multiplier: number | null;
    /**
     * The accuracy of the student's attempted questions
     */
    accuracy: number;
    /**
     * The number of correct questions the student has answered in the lesson
     */
    correctQuestions: number;
    /**
     * The total number of questions in the lesson
     */
    totalQuestions: number;
};
/**
 * Success
 */
export type GetAssessmentProgressResponse = components.PowerPath100ProgressResult | ResponseBody;
/** @internal */
export declare const GetAssessmentProgressRequest$inboundSchema: z.ZodType<GetAssessmentProgressRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAssessmentProgressRequest$Outbound = {
    student: string;
    lesson: string;
    attempt?: string | undefined;
};
/** @internal */
export declare const GetAssessmentProgressRequest$outboundSchema: z.ZodType<GetAssessmentProgressRequest$Outbound, z.ZodTypeDef, GetAssessmentProgressRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAssessmentProgressRequest$ {
    /** @deprecated use `GetAssessmentProgressRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAssessmentProgressRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAssessmentProgressRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAssessmentProgressRequest$Outbound, z.ZodTypeDef, GetAssessmentProgressRequest>;
    /** @deprecated use `GetAssessmentProgressRequest$Outbound` instead. */
    type Outbound = GetAssessmentProgressRequest$Outbound;
}
export declare function getAssessmentProgressRequestToJSON(getAssessmentProgressRequest: GetAssessmentProgressRequest): string;
export declare function getAssessmentProgressRequestFromJSON(jsonString: string): SafeParseResult<GetAssessmentProgressRequest, SDKValidationError>;
/** @internal */
export declare const GetAssessmentProgressLessonType$inboundSchema: z.ZodNativeEnum<typeof GetAssessmentProgressLessonType>;
/** @internal */
export declare const GetAssessmentProgressLessonType$outboundSchema: z.ZodNativeEnum<typeof GetAssessmentProgressLessonType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAssessmentProgressLessonType$ {
    /** @deprecated use `GetAssessmentProgressLessonType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Quiz: "quiz";
        readonly TestOut: "test-out";
        readonly Placement: "placement";
    }>;
    /** @deprecated use `GetAssessmentProgressLessonType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Quiz: "quiz";
        readonly TestOut: "test-out";
        readonly Placement: "placement";
    }>;
}
/** @internal */
export declare const ResponseBody$inboundSchema: z.ZodType<ResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type ResponseBody$Outbound = {
    lessonType: string;
    finalized: boolean;
    score?: number | undefined;
    questions: Array<components.PowerPathTestQuestion$Outbound>;
    toolProvider: string | null;
    attempt: number;
    xp: number | null;
    multiplier: number | null;
    accuracy: number;
    correctQuestions: number;
    totalQuestions: number;
};
/** @internal */
export declare const ResponseBody$outboundSchema: z.ZodType<ResponseBody$Outbound, z.ZodTypeDef, ResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResponseBody$ {
    /** @deprecated use `ResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResponseBody$Outbound, z.ZodTypeDef, ResponseBody>;
    /** @deprecated use `ResponseBody$Outbound` instead. */
    type Outbound = ResponseBody$Outbound;
}
export declare function responseBodyToJSON(responseBody: ResponseBody): string;
export declare function responseBodyFromJSON(jsonString: string): SafeParseResult<ResponseBody, SDKValidationError>;
/** @internal */
export declare const GetAssessmentProgressResponse$inboundSchema: z.ZodType<GetAssessmentProgressResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAssessmentProgressResponse$Outbound = components.PowerPath100ProgressResult$Outbound | ResponseBody$Outbound;
/** @internal */
export declare const GetAssessmentProgressResponse$outboundSchema: z.ZodType<GetAssessmentProgressResponse$Outbound, z.ZodTypeDef, GetAssessmentProgressResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAssessmentProgressResponse$ {
    /** @deprecated use `GetAssessmentProgressResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAssessmentProgressResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAssessmentProgressResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAssessmentProgressResponse$Outbound, z.ZodTypeDef, GetAssessmentProgressResponse>;
    /** @deprecated use `GetAssessmentProgressResponse$Outbound` instead. */
    type Outbound = GetAssessmentProgressResponse$Outbound;
}
export declare function getAssessmentProgressResponseToJSON(getAssessmentProgressResponse: GetAssessmentProgressResponse): string;
export declare function getAssessmentProgressResponseFromJSON(jsonString: string): SafeParseResult<GetAssessmentProgressResponse, SDKValidationError>;
//# sourceMappingURL=getassessmentprogress.d.ts.map