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 declare const AssessmentResultStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type AssessmentResultStatus = ClosedEnum<typeof AssessmentResultStatus>;
export type AssessmentResultAssessmentLineItem = {
    sourcedId: string;
};
export type Student = {
    sourcedId: string;
};
export type AssessmentResultScoreScale = {
    sourcedId: string;
};
export declare const ScoreStatus: {
    readonly Exempt: "exempt";
    readonly FullyGraded: "fully graded";
    readonly NotSubmitted: "not submitted";
    readonly PartiallyGraded: "partially graded";
    readonly Submitted: "submitted";
};
export type ScoreStatus = ClosedEnum<typeof ScoreStatus>;
export type LearningObjectiveResult = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
export type AssessmentResultLearningObjectiveSet = {
    source: string;
    learningObjectiveResults: Array<LearningObjectiveResult>;
};
/**
 * Represents an assessment result.
 */
export type AssessmentResult = {
    sourcedId?: string | undefined;
    status: AssessmentResultStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    assessmentLineItem: AssessmentResultAssessmentLineItem;
    student: Student;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: Date;
    scoreScale?: AssessmentResultScoreScale | null | undefined;
    scorePercentile?: number | null | undefined;
    scoreStatus: ScoreStatus;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<AssessmentResultLearningObjectiveSet> | null | undefined;
    inProgress?: string | null | undefined;
    incomplete?: string | null | undefined;
    late?: string | null | undefined;
    missing?: string | null | undefined;
};
/** @internal */
export declare const AssessmentResultStatus$inboundSchema: z.ZodNativeEnum<typeof AssessmentResultStatus>;
/** @internal */
export declare const AssessmentResultStatus$outboundSchema: z.ZodNativeEnum<typeof AssessmentResultStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentResultStatus$ {
    /** @deprecated use `AssessmentResultStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `AssessmentResultStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const AssessmentResultAssessmentLineItem$inboundSchema: z.ZodType<AssessmentResultAssessmentLineItem, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentResultAssessmentLineItem$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentResultAssessmentLineItem$outboundSchema: z.ZodType<AssessmentResultAssessmentLineItem$Outbound, z.ZodTypeDef, AssessmentResultAssessmentLineItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentResultAssessmentLineItem$ {
    /** @deprecated use `AssessmentResultAssessmentLineItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentResultAssessmentLineItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentResultAssessmentLineItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentResultAssessmentLineItem$Outbound, z.ZodTypeDef, AssessmentResultAssessmentLineItem>;
    /** @deprecated use `AssessmentResultAssessmentLineItem$Outbound` instead. */
    type Outbound = AssessmentResultAssessmentLineItem$Outbound;
}
export declare function assessmentResultAssessmentLineItemToJSON(assessmentResultAssessmentLineItem: AssessmentResultAssessmentLineItem): string;
export declare function assessmentResultAssessmentLineItemFromJSON(jsonString: string): SafeParseResult<AssessmentResultAssessmentLineItem, SDKValidationError>;
/** @internal */
export declare const Student$inboundSchema: z.ZodType<Student, z.ZodTypeDef, unknown>;
/** @internal */
export type Student$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const Student$outboundSchema: z.ZodType<Student$Outbound, z.ZodTypeDef, Student>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Student$ {
    /** @deprecated use `Student$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Student, z.ZodTypeDef, unknown>;
    /** @deprecated use `Student$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Student$Outbound, z.ZodTypeDef, Student>;
    /** @deprecated use `Student$Outbound` instead. */
    type Outbound = Student$Outbound;
}
export declare function studentToJSON(student: Student): string;
export declare function studentFromJSON(jsonString: string): SafeParseResult<Student, SDKValidationError>;
/** @internal */
export declare const AssessmentResultScoreScale$inboundSchema: z.ZodType<AssessmentResultScoreScale, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentResultScoreScale$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentResultScoreScale$outboundSchema: z.ZodType<AssessmentResultScoreScale$Outbound, z.ZodTypeDef, AssessmentResultScoreScale>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentResultScoreScale$ {
    /** @deprecated use `AssessmentResultScoreScale$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentResultScoreScale, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentResultScoreScale$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentResultScoreScale$Outbound, z.ZodTypeDef, AssessmentResultScoreScale>;
    /** @deprecated use `AssessmentResultScoreScale$Outbound` instead. */
    type Outbound = AssessmentResultScoreScale$Outbound;
}
export declare function assessmentResultScoreScaleToJSON(assessmentResultScoreScale: AssessmentResultScoreScale): string;
export declare function assessmentResultScoreScaleFromJSON(jsonString: string): SafeParseResult<AssessmentResultScoreScale, SDKValidationError>;
/** @internal */
export declare const ScoreStatus$inboundSchema: z.ZodNativeEnum<typeof ScoreStatus>;
/** @internal */
export declare const ScoreStatus$outboundSchema: z.ZodNativeEnum<typeof ScoreStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ScoreStatus$ {
    /** @deprecated use `ScoreStatus$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 `ScoreStatus$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 LearningObjectiveResult$inboundSchema: z.ZodType<LearningObjectiveResult, z.ZodTypeDef, unknown>;
/** @internal */
export type LearningObjectiveResult$Outbound = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
/** @internal */
export declare const LearningObjectiveResult$outboundSchema: z.ZodType<LearningObjectiveResult$Outbound, z.ZodTypeDef, LearningObjectiveResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LearningObjectiveResult$ {
    /** @deprecated use `LearningObjectiveResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LearningObjectiveResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `LearningObjectiveResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LearningObjectiveResult$Outbound, z.ZodTypeDef, LearningObjectiveResult>;
    /** @deprecated use `LearningObjectiveResult$Outbound` instead. */
    type Outbound = LearningObjectiveResult$Outbound;
}
export declare function learningObjectiveResultToJSON(learningObjectiveResult: LearningObjectiveResult): string;
export declare function learningObjectiveResultFromJSON(jsonString: string): SafeParseResult<LearningObjectiveResult, SDKValidationError>;
/** @internal */
export declare const AssessmentResultLearningObjectiveSet$inboundSchema: z.ZodType<AssessmentResultLearningObjectiveSet, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentResultLearningObjectiveSet$Outbound = {
    source: string;
    learningObjectiveResults: Array<LearningObjectiveResult$Outbound>;
};
/** @internal */
export declare const AssessmentResultLearningObjectiveSet$outboundSchema: z.ZodType<AssessmentResultLearningObjectiveSet$Outbound, z.ZodTypeDef, AssessmentResultLearningObjectiveSet>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentResultLearningObjectiveSet$ {
    /** @deprecated use `AssessmentResultLearningObjectiveSet$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentResultLearningObjectiveSet, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentResultLearningObjectiveSet$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentResultLearningObjectiveSet$Outbound, z.ZodTypeDef, AssessmentResultLearningObjectiveSet>;
    /** @deprecated use `AssessmentResultLearningObjectiveSet$Outbound` instead. */
    type Outbound = AssessmentResultLearningObjectiveSet$Outbound;
}
export declare function assessmentResultLearningObjectiveSetToJSON(assessmentResultLearningObjectiveSet: AssessmentResultLearningObjectiveSet): string;
export declare function assessmentResultLearningObjectiveSetFromJSON(jsonString: string): SafeParseResult<AssessmentResultLearningObjectiveSet, SDKValidationError>;
/** @internal */
export declare const AssessmentResult$inboundSchema: z.ZodType<AssessmentResult, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentResult$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    assessmentLineItem: AssessmentResultAssessmentLineItem$Outbound;
    student: Student$Outbound;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: string;
    scoreScale?: AssessmentResultScoreScale$Outbound | null | undefined;
    scorePercentile?: number | null | undefined;
    scoreStatus: string;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<AssessmentResultLearningObjectiveSet$Outbound> | null | undefined;
    inProgress?: string | null | undefined;
    incomplete?: string | null | undefined;
    late?: string | null | undefined;
    missing?: string | null | undefined;
};
/** @internal */
export declare const AssessmentResult$outboundSchema: z.ZodType<AssessmentResult$Outbound, z.ZodTypeDef, AssessmentResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentResult$ {
    /** @deprecated use `AssessmentResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentResult$Outbound, z.ZodTypeDef, AssessmentResult>;
    /** @deprecated use `AssessmentResult$Outbound` instead. */
    type Outbound = AssessmentResult$Outbound;
}
export declare function assessmentResultToJSON(assessmentResult: AssessmentResult): string;
export declare function assessmentResultFromJSON(jsonString: string): SafeParseResult<AssessmentResult, SDKValidationError>;
//# sourceMappingURL=assessmentresult.d.ts.map