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 CreateGradingPeriodStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type CreateGradingPeriodStatus = ClosedEnum<typeof CreateGradingPeriodStatus>;
export type CreateGradingPeriodParent = {
    sourcedId: string;
};
export type CreateGradingPeriodOrg = {
    sourcedId: string;
};
export type CreateGradingPeriodAcademicSession = {
    sourcedId?: string | undefined;
    status?: CreateGradingPeriodStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type?: "gradingPeriod" | undefined;
    parent?: CreateGradingPeriodParent | null | undefined;
    schoolYear: string;
    org: CreateGradingPeriodOrg;
};
export type CreateGradingPeriodRequest = {
    academicSession: CreateGradingPeriodAcademicSession;
};
export type CreateGradingPeriodSourcedIdPairs = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/**
 * Grading period created successfully
 */
export type CreateGradingPeriodResponse = {
    sourcedIdPairs: CreateGradingPeriodSourcedIdPairs;
};
/** @internal */
export declare const CreateGradingPeriodStatus$inboundSchema: z.ZodNativeEnum<typeof CreateGradingPeriodStatus>;
/** @internal */
export declare const CreateGradingPeriodStatus$outboundSchema: z.ZodNativeEnum<typeof CreateGradingPeriodStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodStatus$ {
    /** @deprecated use `CreateGradingPeriodStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `CreateGradingPeriodStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const CreateGradingPeriodParent$inboundSchema: z.ZodType<CreateGradingPeriodParent, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateGradingPeriodParent$outboundSchema: z.ZodType<CreateGradingPeriodParent$Outbound, z.ZodTypeDef, CreateGradingPeriodParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodParent$ {
    /** @deprecated use `CreateGradingPeriodParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodParent$Outbound, z.ZodTypeDef, CreateGradingPeriodParent>;
    /** @deprecated use `CreateGradingPeriodParent$Outbound` instead. */
    type Outbound = CreateGradingPeriodParent$Outbound;
}
export declare function createGradingPeriodParentToJSON(createGradingPeriodParent: CreateGradingPeriodParent): string;
export declare function createGradingPeriodParentFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodParent, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodOrg$inboundSchema: z.ZodType<CreateGradingPeriodOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateGradingPeriodOrg$outboundSchema: z.ZodType<CreateGradingPeriodOrg$Outbound, z.ZodTypeDef, CreateGradingPeriodOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodOrg$ {
    /** @deprecated use `CreateGradingPeriodOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodOrg$Outbound, z.ZodTypeDef, CreateGradingPeriodOrg>;
    /** @deprecated use `CreateGradingPeriodOrg$Outbound` instead. */
    type Outbound = CreateGradingPeriodOrg$Outbound;
}
export declare function createGradingPeriodOrgToJSON(createGradingPeriodOrg: CreateGradingPeriodOrg): string;
export declare function createGradingPeriodOrgFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodOrg, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodAcademicSession$inboundSchema: z.ZodType<CreateGradingPeriodAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodAcademicSession$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: "gradingPeriod";
    parent?: CreateGradingPeriodParent$Outbound | null | undefined;
    schoolYear: string;
    org: CreateGradingPeriodOrg$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodAcademicSession$outboundSchema: z.ZodType<CreateGradingPeriodAcademicSession$Outbound, z.ZodTypeDef, CreateGradingPeriodAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodAcademicSession$ {
    /** @deprecated use `CreateGradingPeriodAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodAcademicSession$Outbound, z.ZodTypeDef, CreateGradingPeriodAcademicSession>;
    /** @deprecated use `CreateGradingPeriodAcademicSession$Outbound` instead. */
    type Outbound = CreateGradingPeriodAcademicSession$Outbound;
}
export declare function createGradingPeriodAcademicSessionToJSON(createGradingPeriodAcademicSession: CreateGradingPeriodAcademicSession): string;
export declare function createGradingPeriodAcademicSessionFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodAcademicSession, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodRequest$inboundSchema: z.ZodType<CreateGradingPeriodRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodRequest$Outbound = {
    academicSession: CreateGradingPeriodAcademicSession$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodRequest$outboundSchema: z.ZodType<CreateGradingPeriodRequest$Outbound, z.ZodTypeDef, CreateGradingPeriodRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodRequest$ {
    /** @deprecated use `CreateGradingPeriodRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodRequest$Outbound, z.ZodTypeDef, CreateGradingPeriodRequest>;
    /** @deprecated use `CreateGradingPeriodRequest$Outbound` instead. */
    type Outbound = CreateGradingPeriodRequest$Outbound;
}
export declare function createGradingPeriodRequestToJSON(createGradingPeriodRequest: CreateGradingPeriodRequest): string;
export declare function createGradingPeriodRequestFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodRequest, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodSourcedIdPairs$inboundSchema: z.ZodType<CreateGradingPeriodSourcedIdPairs, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodSourcedIdPairs$Outbound = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/** @internal */
export declare const CreateGradingPeriodSourcedIdPairs$outboundSchema: z.ZodType<CreateGradingPeriodSourcedIdPairs$Outbound, z.ZodTypeDef, CreateGradingPeriodSourcedIdPairs>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodSourcedIdPairs$ {
    /** @deprecated use `CreateGradingPeriodSourcedIdPairs$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodSourcedIdPairs, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodSourcedIdPairs$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodSourcedIdPairs$Outbound, z.ZodTypeDef, CreateGradingPeriodSourcedIdPairs>;
    /** @deprecated use `CreateGradingPeriodSourcedIdPairs$Outbound` instead. */
    type Outbound = CreateGradingPeriodSourcedIdPairs$Outbound;
}
export declare function createGradingPeriodSourcedIdPairsToJSON(createGradingPeriodSourcedIdPairs: CreateGradingPeriodSourcedIdPairs): string;
export declare function createGradingPeriodSourcedIdPairsFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodSourcedIdPairs, SDKValidationError>;
/** @internal */
export declare const CreateGradingPeriodResponse$inboundSchema: z.ZodType<CreateGradingPeriodResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateGradingPeriodResponse$Outbound = {
    sourcedIdPairs: CreateGradingPeriodSourcedIdPairs$Outbound;
};
/** @internal */
export declare const CreateGradingPeriodResponse$outboundSchema: z.ZodType<CreateGradingPeriodResponse$Outbound, z.ZodTypeDef, CreateGradingPeriodResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateGradingPeriodResponse$ {
    /** @deprecated use `CreateGradingPeriodResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateGradingPeriodResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateGradingPeriodResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateGradingPeriodResponse$Outbound, z.ZodTypeDef, CreateGradingPeriodResponse>;
    /** @deprecated use `CreateGradingPeriodResponse$Outbound` instead. */
    type Outbound = CreateGradingPeriodResponse$Outbound;
}
export declare function createGradingPeriodResponseToJSON(createGradingPeriodResponse: CreateGradingPeriodResponse): string;
export declare function createGradingPeriodResponseFromJSON(jsonString: string): SafeParseResult<CreateGradingPeriodResponse, SDKValidationError>;
//# sourceMappingURL=creategradingperiod.d.ts.map