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 CreateNewAttemptRequest = {
    /**
     * The sourcedId of the student
     */
    student: string;
    /**
     * The sourcedId of the lesson (ComponentResource)
     */
    lesson: string;
};
/**
 * The status of this attempt
 */
export declare const CreateNewAttemptScoreStatus: {
    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 CreateNewAttemptScoreStatus = ClosedEnum<typeof CreateNewAttemptScoreStatus>;
export type CreateNewAttemptAttempt = {
    /**
     * The attempt number
     */
    attempt: number | null;
    /**
     * The current score for this attempt
     */
    score: number;
    /**
     * The status of this attempt
     */
    scoreStatus: CreateNewAttemptScoreStatus;
    /**
     * When this attempt was started
     */
    startedAt: Date | null;
    /**
     * When this attempt was completed
     */
    completedAt: Date | null;
};
/**
 * Success
 */
export type CreateNewAttemptResponse = {
    attempt: CreateNewAttemptAttempt;
};
/** @internal */
export declare const CreateNewAttemptRequest$inboundSchema: z.ZodType<CreateNewAttemptRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateNewAttemptRequest$Outbound = {
    student: string;
    lesson: string;
};
/** @internal */
export declare const CreateNewAttemptRequest$outboundSchema: z.ZodType<CreateNewAttemptRequest$Outbound, z.ZodTypeDef, CreateNewAttemptRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateNewAttemptRequest$ {
    /** @deprecated use `CreateNewAttemptRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateNewAttemptRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateNewAttemptRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateNewAttemptRequest$Outbound, z.ZodTypeDef, CreateNewAttemptRequest>;
    /** @deprecated use `CreateNewAttemptRequest$Outbound` instead. */
    type Outbound = CreateNewAttemptRequest$Outbound;
}
export declare function createNewAttemptRequestToJSON(createNewAttemptRequest: CreateNewAttemptRequest): string;
export declare function createNewAttemptRequestFromJSON(jsonString: string): SafeParseResult<CreateNewAttemptRequest, SDKValidationError>;
/** @internal */
export declare const CreateNewAttemptScoreStatus$inboundSchema: z.ZodNativeEnum<typeof CreateNewAttemptScoreStatus>;
/** @internal */
export declare const CreateNewAttemptScoreStatus$outboundSchema: z.ZodNativeEnum<typeof CreateNewAttemptScoreStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateNewAttemptScoreStatus$ {
    /** @deprecated use `CreateNewAttemptScoreStatus$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 `CreateNewAttemptScoreStatus$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 CreateNewAttemptAttempt$inboundSchema: z.ZodType<CreateNewAttemptAttempt, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateNewAttemptAttempt$Outbound = {
    attempt: number | null;
    score: number;
    scoreStatus: string;
    startedAt: string | null;
    completedAt: string | null;
};
/** @internal */
export declare const CreateNewAttemptAttempt$outboundSchema: z.ZodType<CreateNewAttemptAttempt$Outbound, z.ZodTypeDef, CreateNewAttemptAttempt>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateNewAttemptAttempt$ {
    /** @deprecated use `CreateNewAttemptAttempt$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateNewAttemptAttempt, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateNewAttemptAttempt$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateNewAttemptAttempt$Outbound, z.ZodTypeDef, CreateNewAttemptAttempt>;
    /** @deprecated use `CreateNewAttemptAttempt$Outbound` instead. */
    type Outbound = CreateNewAttemptAttempt$Outbound;
}
export declare function createNewAttemptAttemptToJSON(createNewAttemptAttempt: CreateNewAttemptAttempt): string;
export declare function createNewAttemptAttemptFromJSON(jsonString: string): SafeParseResult<CreateNewAttemptAttempt, SDKValidationError>;
/** @internal */
export declare const CreateNewAttemptResponse$inboundSchema: z.ZodType<CreateNewAttemptResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateNewAttemptResponse$Outbound = {
    attempt: CreateNewAttemptAttempt$Outbound;
};
/** @internal */
export declare const CreateNewAttemptResponse$outboundSchema: z.ZodType<CreateNewAttemptResponse$Outbound, z.ZodTypeDef, CreateNewAttemptResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateNewAttemptResponse$ {
    /** @deprecated use `CreateNewAttemptResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateNewAttemptResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateNewAttemptResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateNewAttemptResponse$Outbound, z.ZodTypeDef, CreateNewAttemptResponse>;
    /** @deprecated use `CreateNewAttemptResponse$Outbound` instead. */
    type Outbound = CreateNewAttemptResponse$Outbound;
}
export declare function createNewAttemptResponseToJSON(createNewAttemptResponse: CreateNewAttemptResponse): string;
export declare function createNewAttemptResponseFromJSON(jsonString: string): SafeParseResult<CreateNewAttemptResponse, SDKValidationError>;
//# sourceMappingURL=createnewattempt.d.ts.map