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 GetAttemptsRequest = {
    /**
     * The sourcedId of the student
     */
    student: string;
    /**
     * The sourcedId of the lesson (ComponentResource)
     */
    lesson: string;
};
/**
 * The status of this attempt
 */
export declare const GetAttemptsScoreStatus: {
    readonly Exempt: "exempt";
    readonly FullyGraded: "fully graded";
    readonly NotSubmitted: "not submitted";
    readonly PartiallyGraded: "partially graded";
    readonly Submitted: "submitted";
};
/**
 * The status of this attempt
 */
export type GetAttemptsScoreStatus = ClosedEnum<typeof GetAttemptsScoreStatus>;
export type GetAttemptsAttempt = {
    /**
     * The attempt number
     */
    attempt: number | null;
    /**
     * The current score for this attempt
     */
    score: number;
    /**
     * The status of this attempt
     */
    scoreStatus: GetAttemptsScoreStatus;
    /**
     * When this attempt was started
     */
    startedAt: Date | null;
    /**
     * When this attempt was completed
     */
    completedAt: Date | null;
};
/**
 * Success
 */
export type GetAttemptsResponse = {
    attempts: Array<GetAttemptsAttempt>;
};
/** @internal */
export declare const GetAttemptsRequest$inboundSchema: z.ZodType<GetAttemptsRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAttemptsRequest$Outbound = {
    student: string;
    lesson: string;
};
/** @internal */
export declare const GetAttemptsRequest$outboundSchema: z.ZodType<GetAttemptsRequest$Outbound, z.ZodTypeDef, GetAttemptsRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAttemptsRequest$ {
    /** @deprecated use `GetAttemptsRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAttemptsRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAttemptsRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAttemptsRequest$Outbound, z.ZodTypeDef, GetAttemptsRequest>;
    /** @deprecated use `GetAttemptsRequest$Outbound` instead. */
    type Outbound = GetAttemptsRequest$Outbound;
}
export declare function getAttemptsRequestToJSON(getAttemptsRequest: GetAttemptsRequest): string;
export declare function getAttemptsRequestFromJSON(jsonString: string): SafeParseResult<GetAttemptsRequest, SDKValidationError>;
/** @internal */
export declare const GetAttemptsScoreStatus$inboundSchema: z.ZodNativeEnum<typeof GetAttemptsScoreStatus>;
/** @internal */
export declare const GetAttemptsScoreStatus$outboundSchema: z.ZodNativeEnum<typeof GetAttemptsScoreStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAttemptsScoreStatus$ {
    /** @deprecated use `GetAttemptsScoreStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Exempt: "exempt";
        readonly FullyGraded: "fully graded";
        readonly NotSubmitted: "not submitted";
        readonly PartiallyGraded: "partially graded";
        readonly Submitted: "submitted";
    }>;
    /** @deprecated use `GetAttemptsScoreStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Exempt: "exempt";
        readonly FullyGraded: "fully graded";
        readonly NotSubmitted: "not submitted";
        readonly PartiallyGraded: "partially graded";
        readonly Submitted: "submitted";
    }>;
}
/** @internal */
export declare const GetAttemptsAttempt$inboundSchema: z.ZodType<GetAttemptsAttempt, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAttemptsAttempt$Outbound = {
    attempt: number | null;
    score: number;
    scoreStatus: string;
    startedAt: string | null;
    completedAt: string | null;
};
/** @internal */
export declare const GetAttemptsAttempt$outboundSchema: z.ZodType<GetAttemptsAttempt$Outbound, z.ZodTypeDef, GetAttemptsAttempt>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAttemptsAttempt$ {
    /** @deprecated use `GetAttemptsAttempt$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAttemptsAttempt, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAttemptsAttempt$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAttemptsAttempt$Outbound, z.ZodTypeDef, GetAttemptsAttempt>;
    /** @deprecated use `GetAttemptsAttempt$Outbound` instead. */
    type Outbound = GetAttemptsAttempt$Outbound;
}
export declare function getAttemptsAttemptToJSON(getAttemptsAttempt: GetAttemptsAttempt): string;
export declare function getAttemptsAttemptFromJSON(jsonString: string): SafeParseResult<GetAttemptsAttempt, SDKValidationError>;
/** @internal */
export declare const GetAttemptsResponse$inboundSchema: z.ZodType<GetAttemptsResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAttemptsResponse$Outbound = {
    attempts: Array<GetAttemptsAttempt$Outbound>;
};
/** @internal */
export declare const GetAttemptsResponse$outboundSchema: z.ZodType<GetAttemptsResponse$Outbound, z.ZodTypeDef, GetAttemptsResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAttemptsResponse$ {
    /** @deprecated use `GetAttemptsResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAttemptsResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAttemptsResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAttemptsResponse$Outbound, z.ZodTypeDef, GetAttemptsResponse>;
    /** @deprecated use `GetAttemptsResponse$Outbound` instead. */
    type Outbound = GetAttemptsResponse$Outbound;
}
export declare function getAttemptsResponseToJSON(getAttemptsResponse: GetAttemptsResponse): string;
export declare function getAttemptsResponseFromJSON(jsonString: string): SafeParseResult<GetAttemptsResponse, SDKValidationError>;
//# sourceMappingURL=getattempts.d.ts.map