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 ResultStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type ResultStatus = ClosedEnum<typeof ResultStatus>;
export type ResultLineItem = {
    sourcedId: string;
};
export type ResultStudent = {
    sourcedId: string;
};
export type ResultClass = {
    sourcedId: string;
};
export type ResultScoreScale = {
    sourcedId: string;
};
export declare const ResultScoreStatus: {
    readonly Exempt: "exempt";
    readonly FullyGraded: "fully graded";
    readonly NotSubmitted: "not submitted";
    readonly PartiallyGraded: "partially graded";
    readonly Submitted: "submitted";
};
export type ResultScoreStatus = ClosedEnum<typeof ResultScoreStatus>;
export type ResultLearningObjectiveId = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
export type ResultLearningObjectiveSet = {
    source: string;
    learningObjectiveIds: Array<ResultLearningObjectiveId>;
};
/**
 * Represents a result.
 */
export type Result = {
    sourcedId?: string | undefined;
    status: ResultStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    lineItem: ResultLineItem;
    student: ResultStudent;
    class?: ResultClass | null | undefined;
    scoreScale?: ResultScoreScale | null | undefined;
    scoreStatus: ResultScoreStatus;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: Date;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<ResultLearningObjectiveSet> | null | undefined;
    inProgress?: string | undefined;
    incomplete?: string | undefined;
    late?: string | undefined;
    missing?: string | undefined;
};
/** @internal */
export declare const ResultStatus$inboundSchema: z.ZodNativeEnum<typeof ResultStatus>;
/** @internal */
export declare const ResultStatus$outboundSchema: z.ZodNativeEnum<typeof ResultStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultStatus$ {
    /** @deprecated use `ResultStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `ResultStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const ResultLineItem$inboundSchema: z.ZodType<ResultLineItem, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultLineItem$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ResultLineItem$outboundSchema: z.ZodType<ResultLineItem$Outbound, z.ZodTypeDef, ResultLineItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultLineItem$ {
    /** @deprecated use `ResultLineItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultLineItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultLineItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultLineItem$Outbound, z.ZodTypeDef, ResultLineItem>;
    /** @deprecated use `ResultLineItem$Outbound` instead. */
    type Outbound = ResultLineItem$Outbound;
}
export declare function resultLineItemToJSON(resultLineItem: ResultLineItem): string;
export declare function resultLineItemFromJSON(jsonString: string): SafeParseResult<ResultLineItem, SDKValidationError>;
/** @internal */
export declare const ResultStudent$inboundSchema: z.ZodType<ResultStudent, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultStudent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ResultStudent$outboundSchema: z.ZodType<ResultStudent$Outbound, z.ZodTypeDef, ResultStudent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultStudent$ {
    /** @deprecated use `ResultStudent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultStudent, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultStudent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultStudent$Outbound, z.ZodTypeDef, ResultStudent>;
    /** @deprecated use `ResultStudent$Outbound` instead. */
    type Outbound = ResultStudent$Outbound;
}
export declare function resultStudentToJSON(resultStudent: ResultStudent): string;
export declare function resultStudentFromJSON(jsonString: string): SafeParseResult<ResultStudent, SDKValidationError>;
/** @internal */
export declare const ResultClass$inboundSchema: z.ZodType<ResultClass, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultClass$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ResultClass$outboundSchema: z.ZodType<ResultClass$Outbound, z.ZodTypeDef, ResultClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultClass$ {
    /** @deprecated use `ResultClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultClass$Outbound, z.ZodTypeDef, ResultClass>;
    /** @deprecated use `ResultClass$Outbound` instead. */
    type Outbound = ResultClass$Outbound;
}
export declare function resultClassToJSON(resultClass: ResultClass): string;
export declare function resultClassFromJSON(jsonString: string): SafeParseResult<ResultClass, SDKValidationError>;
/** @internal */
export declare const ResultScoreScale$inboundSchema: z.ZodType<ResultScoreScale, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultScoreScale$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ResultScoreScale$outboundSchema: z.ZodType<ResultScoreScale$Outbound, z.ZodTypeDef, ResultScoreScale>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultScoreScale$ {
    /** @deprecated use `ResultScoreScale$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultScoreScale, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultScoreScale$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultScoreScale$Outbound, z.ZodTypeDef, ResultScoreScale>;
    /** @deprecated use `ResultScoreScale$Outbound` instead. */
    type Outbound = ResultScoreScale$Outbound;
}
export declare function resultScoreScaleToJSON(resultScoreScale: ResultScoreScale): string;
export declare function resultScoreScaleFromJSON(jsonString: string): SafeParseResult<ResultScoreScale, SDKValidationError>;
/** @internal */
export declare const ResultScoreStatus$inboundSchema: z.ZodNativeEnum<typeof ResultScoreStatus>;
/** @internal */
export declare const ResultScoreStatus$outboundSchema: z.ZodNativeEnum<typeof ResultScoreStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultScoreStatus$ {
    /** @deprecated use `ResultScoreStatus$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 `ResultScoreStatus$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 ResultLearningObjectiveId$inboundSchema: z.ZodType<ResultLearningObjectiveId, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultLearningObjectiveId$Outbound = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
/** @internal */
export declare const ResultLearningObjectiveId$outboundSchema: z.ZodType<ResultLearningObjectiveId$Outbound, z.ZodTypeDef, ResultLearningObjectiveId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultLearningObjectiveId$ {
    /** @deprecated use `ResultLearningObjectiveId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultLearningObjectiveId, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultLearningObjectiveId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultLearningObjectiveId$Outbound, z.ZodTypeDef, ResultLearningObjectiveId>;
    /** @deprecated use `ResultLearningObjectiveId$Outbound` instead. */
    type Outbound = ResultLearningObjectiveId$Outbound;
}
export declare function resultLearningObjectiveIdToJSON(resultLearningObjectiveId: ResultLearningObjectiveId): string;
export declare function resultLearningObjectiveIdFromJSON(jsonString: string): SafeParseResult<ResultLearningObjectiveId, SDKValidationError>;
/** @internal */
export declare const ResultLearningObjectiveSet$inboundSchema: z.ZodType<ResultLearningObjectiveSet, z.ZodTypeDef, unknown>;
/** @internal */
export type ResultLearningObjectiveSet$Outbound = {
    source: string;
    learningObjectiveIds: Array<ResultLearningObjectiveId$Outbound>;
};
/** @internal */
export declare const ResultLearningObjectiveSet$outboundSchema: z.ZodType<ResultLearningObjectiveSet$Outbound, z.ZodTypeDef, ResultLearningObjectiveSet>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ResultLearningObjectiveSet$ {
    /** @deprecated use `ResultLearningObjectiveSet$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ResultLearningObjectiveSet, z.ZodTypeDef, unknown>;
    /** @deprecated use `ResultLearningObjectiveSet$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ResultLearningObjectiveSet$Outbound, z.ZodTypeDef, ResultLearningObjectiveSet>;
    /** @deprecated use `ResultLearningObjectiveSet$Outbound` instead. */
    type Outbound = ResultLearningObjectiveSet$Outbound;
}
export declare function resultLearningObjectiveSetToJSON(resultLearningObjectiveSet: ResultLearningObjectiveSet): string;
export declare function resultLearningObjectiveSetFromJSON(jsonString: string): SafeParseResult<ResultLearningObjectiveSet, SDKValidationError>;
/** @internal */
export declare const Result$inboundSchema: z.ZodType<Result, z.ZodTypeDef, unknown>;
/** @internal */
export type Result$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    lineItem: ResultLineItem$Outbound;
    student: ResultStudent$Outbound;
    class?: ResultClass$Outbound | null | undefined;
    scoreScale?: ResultScoreScale$Outbound | null | undefined;
    scoreStatus: string;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: string;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<ResultLearningObjectiveSet$Outbound> | null | undefined;
    inProgress?: string | undefined;
    incomplete?: string | undefined;
    late?: string | undefined;
    missing?: string | undefined;
};
/** @internal */
export declare const Result$outboundSchema: z.ZodType<Result$Outbound, z.ZodTypeDef, Result>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Result$ {
    /** @deprecated use `Result$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Result, z.ZodTypeDef, unknown>;
    /** @deprecated use `Result$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Result$Outbound, z.ZodTypeDef, Result>;
    /** @deprecated use `Result$Outbound` instead. */
    type Outbound = Result$Outbound;
}
export declare function resultToJSON(result: Result): string;
export declare function resultFromJSON(jsonString: string): SafeParseResult<Result, SDKValidationError>;
//# sourceMappingURL=result.d.ts.map