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 CreateGradingPeriodForTermStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type CreateGradingPeriodForTermStatus = ClosedEnum<typeof CreateGradingPeriodForTermStatus>;
export type CreateGradingPeriodForTermParent = {
    sourcedId: string;
};
export type CreateGradingPeriodForTermOrg = {
    sourcedId: string;
};
export type CreateGradingPeriodForTermAcademicSession = {
    sourcedId?: string | undefined;
    status?: CreateGradingPeriodForTermStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type?: "gradingPeriod" | undefined;
    parent?: CreateGradingPeriodForTermParent | null | undefined;
    schoolYear: string;
    org: CreateGradingPeriodForTermOrg;
};
export type CreateGradingPeriodForTermRequestBody = {
    academicSession: CreateGradingPeriodForTermAcademicSession;
};
export type CreateGradingPeriodForTermRequest = {
    /**
     * The sourcedId of the term
     */
    termSourcedId: string;
    requestBody: CreateGradingPeriodForTermRequestBody;
};
/**
 * Grading period successfully created
 */
export type CreateGradingPeriodForTermResponse = {
    /**
     * Represents an academic session.
     */
    academicSession: components.AcademicSession;
};
/** @internal */
export declare const CreateGradingPeriodForTermStatus$inboundSchema: z.ZodNativeEnum<typeof CreateGradingPeriodForTermStatus>;
/** @internal */
export declare const CreateGradingPeriodForTermStatus$outboundSchema: z.ZodNativeEnum<typeof CreateGradingPeriodForTermStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermStatus$ {
    /** @deprecated use `CreateGradingPeriodForTermStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `CreateGradingPeriodForTermStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const CreateGradingPeriodForTermParent$inboundSchema: z.ZodType<CreateGradingPeriodForTermParent, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateGradingPeriodForTermParent$outboundSchema: z.ZodType<CreateGradingPeriodForTermParent$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermParent$ {
    /** @deprecated use `CreateGradingPeriodForTermParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermParent$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermParent>;
    /** @deprecated use `CreateGradingPeriodForTermParent$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermParent$Outbound;
}
export declare function createGradingPeriodForTermParentToJSON(createGradingPeriodForTermParent: CreateGradingPeriodForTermParent): string;
export declare function createGradingPeriodForTermParentFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermParent, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodForTermOrg$inboundSchema: z.ZodType<CreateGradingPeriodForTermOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateGradingPeriodForTermOrg$outboundSchema: z.ZodType<CreateGradingPeriodForTermOrg$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermOrg$ {
    /** @deprecated use `CreateGradingPeriodForTermOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermOrg$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermOrg>;
    /** @deprecated use `CreateGradingPeriodForTermOrg$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermOrg$Outbound;
}
export declare function createGradingPeriodForTermOrgToJSON(createGradingPeriodForTermOrg: CreateGradingPeriodForTermOrg): string;
export declare function createGradingPeriodForTermOrgFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermOrg, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodForTermAcademicSession$inboundSchema: z.ZodType<CreateGradingPeriodForTermAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermAcademicSession$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: "gradingPeriod";
    parent?: CreateGradingPeriodForTermParent$Outbound | null | undefined;
    schoolYear: string;
    org: CreateGradingPeriodForTermOrg$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodForTermAcademicSession$outboundSchema: z.ZodType<CreateGradingPeriodForTermAcademicSession$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermAcademicSession$ {
    /** @deprecated use `CreateGradingPeriodForTermAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermAcademicSession$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermAcademicSession>;
    /** @deprecated use `CreateGradingPeriodForTermAcademicSession$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermAcademicSession$Outbound;
}
export declare function createGradingPeriodForTermAcademicSessionToJSON(createGradingPeriodForTermAcademicSession: CreateGradingPeriodForTermAcademicSession): string;
export declare function createGradingPeriodForTermAcademicSessionFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermAcademicSession, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodForTermRequestBody$inboundSchema: z.ZodType<CreateGradingPeriodForTermRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermRequestBody$Outbound = {
    academicSession: CreateGradingPeriodForTermAcademicSession$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodForTermRequestBody$outboundSchema: z.ZodType<CreateGradingPeriodForTermRequestBody$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermRequestBody$ {
    /** @deprecated use `CreateGradingPeriodForTermRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermRequestBody$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermRequestBody>;
    /** @deprecated use `CreateGradingPeriodForTermRequestBody$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermRequestBody$Outbound;
}
export declare function createGradingPeriodForTermRequestBodyToJSON(createGradingPeriodForTermRequestBody: CreateGradingPeriodForTermRequestBody): string;
export declare function createGradingPeriodForTermRequestBodyFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermRequestBody, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodForTermRequest$inboundSchema: z.ZodType<CreateGradingPeriodForTermRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermRequest$Outbound = {
    termSourcedId: string;
    RequestBody: CreateGradingPeriodForTermRequestBody$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodForTermRequest$outboundSchema: z.ZodType<CreateGradingPeriodForTermRequest$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermRequest$ {
    /** @deprecated use `CreateGradingPeriodForTermRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermRequest$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermRequest>;
    /** @deprecated use `CreateGradingPeriodForTermRequest$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermRequest$Outbound;
}
export declare function createGradingPeriodForTermRequestToJSON(createGradingPeriodForTermRequest: CreateGradingPeriodForTermRequest): string;
export declare function createGradingPeriodForTermRequestFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermRequest, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodForTermResponse$inboundSchema: z.ZodType<CreateGradingPeriodForTermResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodForTermResponse$Outbound = {
    academicSession: components.AcademicSession$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodForTermResponse$outboundSchema: z.ZodType<CreateGradingPeriodForTermResponse$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodForTermResponse$ {
    /** @deprecated use `CreateGradingPeriodForTermResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodForTermResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodForTermResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodForTermResponse$Outbound, z.ZodTypeDef, CreateGradingPeriodForTermResponse>;
    /** @deprecated use `CreateGradingPeriodForTermResponse$Outbound` instead. */
    type Outbound = CreateGradingPeriodForTermResponse$Outbound;
}
export declare function createGradingPeriodForTermResponseToJSON(createGradingPeriodForTermResponse: CreateGradingPeriodForTermResponse): string;
export declare function createGradingPeriodForTermResponseFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodForTermResponse, SDKValidationError>;
//# sourceMappingURL=creategradingperiodforterm.d.ts.map