import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const UpdateStudentItemResponseStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type UpdateStudentItemResponseStatus = ClosedEnum<typeof UpdateStudentItemResponseStatus>;
export declare const UpdateStudentItemResponseScoreStatus: {
    readonly Exempt: "exempt";
    readonly FullyGraded: "fully graded";
    readonly NotSubmitted: "not submitted";
    readonly PartiallyGraded: "partially graded";
    readonly Submitted: "submitted";
};
export type UpdateStudentItemResponseScoreStatus = ClosedEnum<typeof UpdateStudentItemResponseScoreStatus>;
export type UpdateStudentItemResponseLearningObjectiveResult = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
export type UpdateStudentItemResponseLearningObjectiveSet = {
    source: string;
    learningObjectiveResults: Array<UpdateStudentItemResponseLearningObjectiveResult>;
};
/**
 * The student's result for the item, either a component or a componentResource
 */
export type UpdateStudentItemResponseResult = {
    status: UpdateStudentItemResponseStatus;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: Date;
    scorePercentile?: number | null | undefined;
    scoreStatus: UpdateStudentItemResponseScoreStatus;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<UpdateStudentItemResponseLearningObjectiveSet> | null | undefined;
    inProgress?: string | null | undefined;
    incomplete?: string | null | undefined;
    late?: string | null | undefined;
    missing?: string | null | undefined;
};
export type UpdateStudentItemResponseRequest = {
    studentId: string;
    componentResourceId: string;
    /**
     * The student's result for the item, either a component or a componentResource
     */
    result: UpdateStudentItemResponseResult;
};
/**
 * Student item response updated
 */
export type UpdateStudentItemResponseResponse = {
    /**
     * Represents an assessment line item.
     */
    componentResourceLineItem?: components.AssessmentLineItem | undefined;
    /**
     * Represents an assessment result.
     */
    componentResourceResult?: components.AssessmentResult | undefined;
};
/** @internal */
export declare const UpdateStudentItemResponseStatus$inboundSchema: z.ZodNativeEnum<typeof UpdateStudentItemResponseStatus>;
/** @internal */
export declare const UpdateStudentItemResponseStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateStudentItemResponseStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseStatus$ {
    /** @deprecated use `UpdateStudentItemResponseStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `UpdateStudentItemResponseStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const UpdateStudentItemResponseScoreStatus$inboundSchema: z.ZodNativeEnum<typeof UpdateStudentItemResponseScoreStatus>;
/** @internal */
export declare const UpdateStudentItemResponseScoreStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateStudentItemResponseScoreStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseScoreStatus$ {
    /** @deprecated use `UpdateStudentItemResponseScoreStatus$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 `UpdateStudentItemResponseScoreStatus$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 UpdateStudentItemResponseLearningObjectiveResult$inboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveResult, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateStudentItemResponseLearningObjectiveResult$Outbound = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
/** @internal */
export declare const UpdateStudentItemResponseLearningObjectiveResult$outboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveResult$Outbound, z.ZodTypeDef, UpdateStudentItemResponseLearningObjectiveResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseLearningObjectiveResult$ {
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveResult$Outbound, z.ZodTypeDef, UpdateStudentItemResponseLearningObjectiveResult>;
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveResult$Outbound` instead. */
    type Outbound = UpdateStudentItemResponseLearningObjectiveResult$Outbound;
}
export declare function updateStudentItemResponseLearningObjectiveResultToJSON(updateStudentItemResponseLearningObjectiveResult: UpdateStudentItemResponseLearningObjectiveResult): string;
export declare function updateStudentItemResponseLearningObjectiveResultFromJSON(jsonString: string): SafeParseResult<UpdateStudentItemResponseLearningObjectiveResult, SDKValidationError>;
/** @internal */
export declare const UpdateStudentItemResponseLearningObjectiveSet$inboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveSet, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateStudentItemResponseLearningObjectiveSet$Outbound = {
    source: string;
    learningObjectiveResults: Array<UpdateStudentItemResponseLearningObjectiveResult$Outbound>;
};
/** @internal */
export declare const UpdateStudentItemResponseLearningObjectiveSet$outboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveSet$Outbound, z.ZodTypeDef, UpdateStudentItemResponseLearningObjectiveSet>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseLearningObjectiveSet$ {
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveSet$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveSet, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveSet$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateStudentItemResponseLearningObjectiveSet$Outbound, z.ZodTypeDef, UpdateStudentItemResponseLearningObjectiveSet>;
    /** @deprecated use `UpdateStudentItemResponseLearningObjectiveSet$Outbound` instead. */
    type Outbound = UpdateStudentItemResponseLearningObjectiveSet$Outbound;
}
export declare function updateStudentItemResponseLearningObjectiveSetToJSON(updateStudentItemResponseLearningObjectiveSet: UpdateStudentItemResponseLearningObjectiveSet): string;
export declare function updateStudentItemResponseLearningObjectiveSetFromJSON(jsonString: string): SafeParseResult<UpdateStudentItemResponseLearningObjectiveSet, SDKValidationError>;
/** @internal */
export declare const UpdateStudentItemResponseResult$inboundSchema: z.ZodType<UpdateStudentItemResponseResult, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateStudentItemResponseResult$Outbound = {
    status: string;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    score?: number | null | undefined;
    textScore?: string | null | undefined;
    scoreDate: string;
    scorePercentile?: number | null | undefined;
    scoreStatus: string;
    comment?: string | null | undefined;
    learningObjectiveSet?: Array<UpdateStudentItemResponseLearningObjectiveSet$Outbound> | null | undefined;
    inProgress?: string | null | undefined;
    incomplete?: string | null | undefined;
    late?: string | null | undefined;
    missing?: string | null | undefined;
};
/** @internal */
export declare const UpdateStudentItemResponseResult$outboundSchema: z.ZodType<UpdateStudentItemResponseResult$Outbound, z.ZodTypeDef, UpdateStudentItemResponseResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseResult$ {
    /** @deprecated use `UpdateStudentItemResponseResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateStudentItemResponseResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateStudentItemResponseResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateStudentItemResponseResult$Outbound, z.ZodTypeDef, UpdateStudentItemResponseResult>;
    /** @deprecated use `UpdateStudentItemResponseResult$Outbound` instead. */
    type Outbound = UpdateStudentItemResponseResult$Outbound;
}
export declare function updateStudentItemResponseResultToJSON(updateStudentItemResponseResult: UpdateStudentItemResponseResult): string;
export declare function updateStudentItemResponseResultFromJSON(jsonString: string): SafeParseResult<UpdateStudentItemResponseResult, SDKValidationError>;
/** @internal */
export declare const UpdateStudentItemResponseRequest$inboundSchema: z.ZodType<UpdateStudentItemResponseRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateStudentItemResponseRequest$Outbound = {
    studentId: string;
    componentResourceId: string;
    result: UpdateStudentItemResponseResult$Outbound;
};
/** @internal */
export declare const UpdateStudentItemResponseRequest$outboundSchema: z.ZodType<UpdateStudentItemResponseRequest$Outbound, z.ZodTypeDef, UpdateStudentItemResponseRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseRequest$ {
    /** @deprecated use `UpdateStudentItemResponseRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateStudentItemResponseRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateStudentItemResponseRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateStudentItemResponseRequest$Outbound, z.ZodTypeDef, UpdateStudentItemResponseRequest>;
    /** @deprecated use `UpdateStudentItemResponseRequest$Outbound` instead. */
    type Outbound = UpdateStudentItemResponseRequest$Outbound;
}
export declare function updateStudentItemResponseRequestToJSON(updateStudentItemResponseRequest: UpdateStudentItemResponseRequest): string;
export declare function updateStudentItemResponseRequestFromJSON(jsonString: string): SafeParseResult<UpdateStudentItemResponseRequest, SDKValidationError>;
/** @internal */
export declare const UpdateStudentItemResponseResponse$inboundSchema: z.ZodType<UpdateStudentItemResponseResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateStudentItemResponseResponse$Outbound = {
    componentResourceLineItem?: components.AssessmentLineItem$Outbound | undefined;
    componentResourceResult?: components.AssessmentResult$Outbound | undefined;
};
/** @internal */
export declare const UpdateStudentItemResponseResponse$outboundSchema: z.ZodType<UpdateStudentItemResponseResponse$Outbound, z.ZodTypeDef, UpdateStudentItemResponseResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateStudentItemResponseResponse$ {
    /** @deprecated use `UpdateStudentItemResponseResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateStudentItemResponseResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateStudentItemResponseResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateStudentItemResponseResponse$Outbound, z.ZodTypeDef, UpdateStudentItemResponseResponse>;
    /** @deprecated use `UpdateStudentItemResponseResponse$Outbound` instead. */
    type Outbound = UpdateStudentItemResponseResponse$Outbound;
}
export declare function updateStudentItemResponseResponseToJSON(updateStudentItemResponseResponse: UpdateStudentItemResponseResponse): string;
export declare function updateStudentItemResponseResponseFromJSON(jsonString: string): SafeParseResult<UpdateStudentItemResponseResponse, SDKValidationError>;
//# sourceMappingURL=updatestudentitemresponse.d.ts.map