import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type RemainingQuestionsPerDifficulty = {
    easy: number;
    medium: number;
    hard: number;
};
/**
 * The difficulty of the question
 */
export declare const PowerPath100ProgressResultDifficulty: {
    readonly Easy: "easy";
    readonly Medium: "medium";
    readonly Hard: "hard";
};
/**
 * The difficulty of the question
 */
export type PowerPath100ProgressResultDifficulty = ClosedEnum<typeof PowerPath100ProgressResultDifficulty>;
/**
 * The QTI content of the question
 */
export type PowerPath100ProgressResultContent = {
    /**
     * The type of the question
     */
    type?: string | undefined;
    /**
     * The raw XML question in QTI format
     */
    rawXml: string;
};
/**
 * The student's response to the question
 */
export type PowerPath100ProgressResultResponse = string | Array<string>;
/**
 * The result of the question
 */
export type PowerPath100ProgressResultResult = {
    /**
     * The score assigned to the question, considering the student's response
     */
    score: number;
    /**
     * The feedback for the question
     */
    feedback: string;
};
/**
 * A PowerPath Test Question
 */
export type SeenQuestion = {
    /**
     * The ID that represents the question in the test
     */
    id: string;
    /**
     * The index of the question in the test
     */
    index: number;
    /**
     * The title of the question
     */
    title: string;
    /**
     * The URL of the QTI question
     */
    url: string;
    /**
     * The difficulty of the question
     */
    difficulty?: PowerPath100ProgressResultDifficulty | undefined;
    /**
     * The QTI content of the question
     */
    content?: PowerPath100ProgressResultContent | undefined;
    /**
     * The student's response to the question
     */
    response: string | Array<string>;
    /**
     * Whether the student's response is correct
     */
    correct?: boolean | undefined;
    /**
     * The result of the question
     */
    result?: PowerPath100ProgressResultResult | undefined;
};
/**
 * Represents the progress of the student in the PowerPath100 lesson
 */
export type PowerPath100ProgressResult = {
    lessonType?: "powerpath-100" | undefined;
    remainingQuestionsPerDifficulty: RemainingQuestionsPerDifficulty;
    /**
     * The current score for this attempt
     */
    score: number;
    seenQuestions: Array<SeenQuestion>;
    /**
     * 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;
};
/** @internal */
export declare const RemainingQuestionsPerDifficulty$inboundSchema: z.ZodType<RemainingQuestionsPerDifficulty, z.ZodTypeDef, unknown>;
/** @internal */
export type RemainingQuestionsPerDifficulty$Outbound = {
    easy: number;
    medium: number;
    hard: number;
};
/** @internal */
export declare const RemainingQuestionsPerDifficulty$outboundSchema: z.ZodType<RemainingQuestionsPerDifficulty$Outbound, z.ZodTypeDef, RemainingQuestionsPerDifficulty>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RemainingQuestionsPerDifficulty$ {
    /** @deprecated use `RemainingQuestionsPerDifficulty$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RemainingQuestionsPerDifficulty, z.ZodTypeDef, unknown>;
    /** @deprecated use `RemainingQuestionsPerDifficulty$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RemainingQuestionsPerDifficulty$Outbound, z.ZodTypeDef, RemainingQuestionsPerDifficulty>;
    /** @deprecated use `RemainingQuestionsPerDifficulty$Outbound` instead. */
    type Outbound = RemainingQuestionsPerDifficulty$Outbound;
}
export declare function remainingQuestionsPerDifficultyToJSON(remainingQuestionsPerDifficulty: RemainingQuestionsPerDifficulty): string;
export declare function remainingQuestionsPerDifficultyFromJSON(jsonString: string): SafeParseResult<RemainingQuestionsPerDifficulty, SDKValidationError>;
/** @internal */
export declare const PowerPath100ProgressResultDifficulty$inboundSchema: z.ZodNativeEnum<typeof PowerPath100ProgressResultDifficulty>;
/** @internal */
export declare const PowerPath100ProgressResultDifficulty$outboundSchema: z.ZodNativeEnum<typeof PowerPath100ProgressResultDifficulty>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PowerPath100ProgressResultDifficulty$ {
    /** @deprecated use `PowerPath100ProgressResultDifficulty$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Easy: "easy";
        readonly Medium: "medium";
        readonly Hard: "hard";
    }>;
    /** @deprecated use `PowerPath100ProgressResultDifficulty$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Easy: "easy";
        readonly Medium: "medium";
        readonly Hard: "hard";
    }>;
}
/** @internal */
export declare const PowerPath100ProgressResultContent$inboundSchema: z.ZodType<PowerPath100ProgressResultContent, z.ZodTypeDef, unknown>;
/** @internal */
export type PowerPath100ProgressResultContent$Outbound = {
    type?: string | undefined;
    rawXml: string;
};
/** @internal */
export declare const PowerPath100ProgressResultContent$outboundSchema: z.ZodType<PowerPath100ProgressResultContent$Outbound, z.ZodTypeDef, PowerPath100ProgressResultContent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PowerPath100ProgressResultContent$ {
    /** @deprecated use `PowerPath100ProgressResultContent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PowerPath100ProgressResultContent, z.ZodTypeDef, unknown>;
    /** @deprecated use `PowerPath100ProgressResultContent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PowerPath100ProgressResultContent$Outbound, z.ZodTypeDef, PowerPath100ProgressResultContent>;
    /** @deprecated use `PowerPath100ProgressResultContent$Outbound` instead. */
    type Outbound = PowerPath100ProgressResultContent$Outbound;
}
export declare function powerPath100ProgressResultContentToJSON(powerPath100ProgressResultContent: PowerPath100ProgressResultContent): string;
export declare function powerPath100ProgressResultContentFromJSON(jsonString: string): SafeParseResult<PowerPath100ProgressResultContent, SDKValidationError>;
/** @internal */
export declare const PowerPath100ProgressResultResponse$inboundSchema: z.ZodType<PowerPath100ProgressResultResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type PowerPath100ProgressResultResponse$Outbound = string | Array<string>;
/** @internal */
export declare const PowerPath100ProgressResultResponse$outboundSchema: z.ZodType<PowerPath100ProgressResultResponse$Outbound, z.ZodTypeDef, PowerPath100ProgressResultResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PowerPath100ProgressResultResponse$ {
    /** @deprecated use `PowerPath100ProgressResultResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PowerPath100ProgressResultResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `PowerPath100ProgressResultResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PowerPath100ProgressResultResponse$Outbound, z.ZodTypeDef, PowerPath100ProgressResultResponse>;
    /** @deprecated use `PowerPath100ProgressResultResponse$Outbound` instead. */
    type Outbound = PowerPath100ProgressResultResponse$Outbound;
}
export declare function powerPath100ProgressResultResponseToJSON(powerPath100ProgressResultResponse: PowerPath100ProgressResultResponse): string;
export declare function powerPath100ProgressResultResponseFromJSON(jsonString: string): SafeParseResult<PowerPath100ProgressResultResponse, SDKValidationError>;
/** @internal */
export declare const PowerPath100ProgressResultResult$inboundSchema: z.ZodType<PowerPath100ProgressResultResult, z.ZodTypeDef, unknown>;
/** @internal */
export type PowerPath100ProgressResultResult$Outbound = {
    score: number;
    feedback: string;
};
/** @internal */
export declare const PowerPath100ProgressResultResult$outboundSchema: z.ZodType<PowerPath100ProgressResultResult$Outbound, z.ZodTypeDef, PowerPath100ProgressResultResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PowerPath100ProgressResultResult$ {
    /** @deprecated use `PowerPath100ProgressResultResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PowerPath100ProgressResultResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `PowerPath100ProgressResultResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PowerPath100ProgressResultResult$Outbound, z.ZodTypeDef, PowerPath100ProgressResultResult>;
    /** @deprecated use `PowerPath100ProgressResultResult$Outbound` instead. */
    type Outbound = PowerPath100ProgressResultResult$Outbound;
}
export declare function powerPath100ProgressResultResultToJSON(powerPath100ProgressResultResult: PowerPath100ProgressResultResult): string;
export declare function powerPath100ProgressResultResultFromJSON(jsonString: string): SafeParseResult<PowerPath100ProgressResultResult, SDKValidationError>;
/** @internal */
export declare const SeenQuestion$inboundSchema: z.ZodType<SeenQuestion, z.ZodTypeDef, unknown>;
/** @internal */
export type SeenQuestion$Outbound = {
    id: string;
    index: number;
    title: string;
    url: string;
    difficulty: string;
    content?: PowerPath100ProgressResultContent$Outbound | undefined;
    response: string | Array<string>;
    correct?: boolean | undefined;
    result?: PowerPath100ProgressResultResult$Outbound | undefined;
};
/** @internal */
export declare const SeenQuestion$outboundSchema: z.ZodType<SeenQuestion$Outbound, z.ZodTypeDef, SeenQuestion>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SeenQuestion$ {
    /** @deprecated use `SeenQuestion$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SeenQuestion, z.ZodTypeDef, unknown>;
    /** @deprecated use `SeenQuestion$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SeenQuestion$Outbound, z.ZodTypeDef, SeenQuestion>;
    /** @deprecated use `SeenQuestion$Outbound` instead. */
    type Outbound = SeenQuestion$Outbound;
}
export declare function seenQuestionToJSON(seenQuestion: SeenQuestion): string;
export declare function seenQuestionFromJSON(jsonString: string): SafeParseResult<SeenQuestion, SDKValidationError>;
/** @internal */
export declare const PowerPath100ProgressResult$inboundSchema: z.ZodType<PowerPath100ProgressResult, z.ZodTypeDef, unknown>;
/** @internal */
export type PowerPath100ProgressResult$Outbound = {
    lessonType: "powerpath-100";
    remainingQuestionsPerDifficulty: RemainingQuestionsPerDifficulty$Outbound;
    score: number;
    seenQuestions: Array<SeenQuestion$Outbound>;
    attempt: number;
    xp: number | null;
    multiplier: number | null;
    accuracy: number;
    correctQuestions: number;
    totalQuestions: number;
};
/** @internal */
export declare const PowerPath100ProgressResult$outboundSchema: z.ZodType<PowerPath100ProgressResult$Outbound, z.ZodTypeDef, PowerPath100ProgressResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PowerPath100ProgressResult$ {
    /** @deprecated use `PowerPath100ProgressResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PowerPath100ProgressResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `PowerPath100ProgressResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PowerPath100ProgressResult$Outbound, z.ZodTypeDef, PowerPath100ProgressResult>;
    /** @deprecated use `PowerPath100ProgressResult$Outbound` instead. */
    type Outbound = PowerPath100ProgressResult$Outbound;
}
export declare function powerPath100ProgressResultToJSON(powerPath100ProgressResult: PowerPath100ProgressResult): string;
export declare function powerPath100ProgressResultFromJSON(jsonString: string): SafeParseResult<PowerPath100ProgressResult, SDKValidationError>;
//# sourceMappingURL=powerpath100progressresult.d.ts.map