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 UpdateGradingPeriodStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type UpdateGradingPeriodStatus = ClosedEnum<typeof UpdateGradingPeriodStatus>;
export type UpdateGradingPeriodParent = {
    sourcedId: string;
};
export type UpdateGradingPeriodOrg = {
    sourcedId: string;
};
export type UpdateGradingPeriodAcademicSession = {
    sourcedId?: string | undefined;
    status?: UpdateGradingPeriodStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type?: "gradingPeriod" | undefined;
    parent?: UpdateGradingPeriodParent | null | undefined;
    schoolYear: string;
    org: UpdateGradingPeriodOrg;
};
export type UpdateGradingPeriodRequestBody = {
    academicSession: UpdateGradingPeriodAcademicSession;
};
export type UpdateGradingPeriodRequest = {
    /**
     * The sourcedId of the grading period to update
     */
    sourcedId: string;
    requestBody?: UpdateGradingPeriodRequestBody | undefined;
};
/** @internal */
export declare const UpdateGradingPeriodStatus$inboundSchema: z.ZodNativeEnum<typeof UpdateGradingPeriodStatus>;
/** @internal */
export declare const UpdateGradingPeriodStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateGradingPeriodStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodStatus$ {
    /** @deprecated use `UpdateGradingPeriodStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `UpdateGradingPeriodStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const UpdateGradingPeriodParent$inboundSchema: z.ZodType<UpdateGradingPeriodParent, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateGradingPeriodParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateGradingPeriodParent$outboundSchema: z.ZodType<UpdateGradingPeriodParent$Outbound, z.ZodTypeDef, UpdateGradingPeriodParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodParent$ {
    /** @deprecated use `UpdateGradingPeriodParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateGradingPeriodParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateGradingPeriodParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateGradingPeriodParent$Outbound, z.ZodTypeDef, UpdateGradingPeriodParent>;
    /** @deprecated use `UpdateGradingPeriodParent$Outbound` instead. */
    type Outbound = UpdateGradingPeriodParent$Outbound;
}
export declare function updateGradingPeriodParentToJSON(updateGradingPeriodParent: UpdateGradingPeriodParent): string;
export declare function updateGradingPeriodParentFromJSON(jsonString: string): SafeParseResult<UpdateGradingPeriodParent, SDKValidationError>;
/** @internal */
export declare const UpdateGradingPeriodOrg$inboundSchema: z.ZodType<UpdateGradingPeriodOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateGradingPeriodOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateGradingPeriodOrg$outboundSchema: z.ZodType<UpdateGradingPeriodOrg$Outbound, z.ZodTypeDef, UpdateGradingPeriodOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodOrg$ {
    /** @deprecated use `UpdateGradingPeriodOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateGradingPeriodOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateGradingPeriodOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateGradingPeriodOrg$Outbound, z.ZodTypeDef, UpdateGradingPeriodOrg>;
    /** @deprecated use `UpdateGradingPeriodOrg$Outbound` instead. */
    type Outbound = UpdateGradingPeriodOrg$Outbound;
}
export declare function updateGradingPeriodOrgToJSON(updateGradingPeriodOrg: UpdateGradingPeriodOrg): string;
export declare function updateGradingPeriodOrgFromJSON(jsonString: string): SafeParseResult<UpdateGradingPeriodOrg, SDKValidationError>;
/** @internal */
export declare const UpdateGradingPeriodAcademicSession$inboundSchema: z.ZodType<UpdateGradingPeriodAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateGradingPeriodAcademicSession$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: "gradingPeriod";
    parent?: UpdateGradingPeriodParent$Outbound | null | undefined;
    schoolYear: string;
    org: UpdateGradingPeriodOrg$Outbound;
};
/** @internal */
export declare const UpdateGradingPeriodAcademicSession$outboundSchema: z.ZodType<UpdateGradingPeriodAcademicSession$Outbound, z.ZodTypeDef, UpdateGradingPeriodAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodAcademicSession$ {
    /** @deprecated use `UpdateGradingPeriodAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateGradingPeriodAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateGradingPeriodAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateGradingPeriodAcademicSession$Outbound, z.ZodTypeDef, UpdateGradingPeriodAcademicSession>;
    /** @deprecated use `UpdateGradingPeriodAcademicSession$Outbound` instead. */
    type Outbound = UpdateGradingPeriodAcademicSession$Outbound;
}
export declare function updateGradingPeriodAcademicSessionToJSON(updateGradingPeriodAcademicSession: UpdateGradingPeriodAcademicSession): string;
export declare function updateGradingPeriodAcademicSessionFromJSON(jsonString: string): SafeParseResult<UpdateGradingPeriodAcademicSession, SDKValidationError>;
/** @internal */
export declare const UpdateGradingPeriodRequestBody$inboundSchema: z.ZodType<UpdateGradingPeriodRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateGradingPeriodRequestBody$Outbound = {
    academicSession: UpdateGradingPeriodAcademicSession$Outbound;
};
/** @internal */
export declare const UpdateGradingPeriodRequestBody$outboundSchema: z.ZodType<UpdateGradingPeriodRequestBody$Outbound, z.ZodTypeDef, UpdateGradingPeriodRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodRequestBody$ {
    /** @deprecated use `UpdateGradingPeriodRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateGradingPeriodRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateGradingPeriodRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateGradingPeriodRequestBody$Outbound, z.ZodTypeDef, UpdateGradingPeriodRequestBody>;
    /** @deprecated use `UpdateGradingPeriodRequestBody$Outbound` instead. */
    type Outbound = UpdateGradingPeriodRequestBody$Outbound;
}
export declare function updateGradingPeriodRequestBodyToJSON(updateGradingPeriodRequestBody: UpdateGradingPeriodRequestBody): string;
export declare function updateGradingPeriodRequestBodyFromJSON(jsonString: string): SafeParseResult<UpdateGradingPeriodRequestBody, SDKValidationError>;
/** @internal */
export declare const UpdateGradingPeriodRequest$inboundSchema: z.ZodType<UpdateGradingPeriodRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateGradingPeriodRequest$Outbound = {
    sourcedId: string;
    RequestBody?: UpdateGradingPeriodRequestBody$Outbound | undefined;
};
/** @internal */
export declare const UpdateGradingPeriodRequest$outboundSchema: z.ZodType<UpdateGradingPeriodRequest$Outbound, z.ZodTypeDef, UpdateGradingPeriodRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateGradingPeriodRequest$ {
    /** @deprecated use `UpdateGradingPeriodRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateGradingPeriodRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateGradingPeriodRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateGradingPeriodRequest$Outbound, z.ZodTypeDef, UpdateGradingPeriodRequest>;
    /** @deprecated use `UpdateGradingPeriodRequest$Outbound` instead. */
    type Outbound = UpdateGradingPeriodRequest$Outbound;
}
export declare function updateGradingPeriodRequestToJSON(updateGradingPeriodRequest: UpdateGradingPeriodRequest): string;
export declare function updateGradingPeriodRequestFromJSON(jsonString: string): SafeParseResult<UpdateGradingPeriodRequest, SDKValidationError>;
//# sourceMappingURL=updategradingperiod.d.ts.map