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 PutAcademicSessionStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type PutAcademicSessionStatus = ClosedEnum<typeof PutAcademicSessionStatus>;
export declare const PutAcademicSessionType: {
    readonly GradingPeriod: "gradingPeriod";
    readonly Semester: "semester";
    readonly SchoolYear: "schoolYear";
    readonly Term: "term";
};
export type PutAcademicSessionType = ClosedEnum<typeof PutAcademicSessionType>;
export type PutAcademicSessionParent = {
    sourcedId: string;
};
export type PutAcademicSessionOrg = {
    sourcedId: string;
};
export type PutAcademicSessionAcademicSession = {
    sourcedId?: string | undefined;
    status?: PutAcademicSessionStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: PutAcademicSessionType;
    parent?: PutAcademicSessionParent | null | undefined;
    schoolYear: string;
    org: PutAcademicSessionOrg;
};
export type PutAcademicSessionRequestBody = {
    academicSession: PutAcademicSessionAcademicSession;
};
export type PutAcademicSessionRequest = {
    /**
     * The sourcedId of the academic session to update
     */
    sourcedId: string;
    requestBody?: PutAcademicSessionRequestBody | undefined;
};
/** @internal */
export declare const PutAcademicSessionStatus$inboundSchema: z.ZodNativeEnum<typeof PutAcademicSessionStatus>;
/** @internal */
export declare const PutAcademicSessionStatus$outboundSchema: z.ZodNativeEnum<typeof PutAcademicSessionStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionStatus$ {
    /** @deprecated use `PutAcademicSessionStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `PutAcademicSessionStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const PutAcademicSessionType$inboundSchema: z.ZodNativeEnum<typeof PutAcademicSessionType>;
/** @internal */
export declare const PutAcademicSessionType$outboundSchema: z.ZodNativeEnum<typeof PutAcademicSessionType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionType$ {
    /** @deprecated use `PutAcademicSessionType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly GradingPeriod: "gradingPeriod";
        readonly Semester: "semester";
        readonly SchoolYear: "schoolYear";
        readonly Term: "term";
    }>;
    /** @deprecated use `PutAcademicSessionType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly GradingPeriod: "gradingPeriod";
        readonly Semester: "semester";
        readonly SchoolYear: "schoolYear";
        readonly Term: "term";
    }>;
}
/** @internal */
export declare const PutAcademicSessionParent$inboundSchema: z.ZodType<PutAcademicSessionParent, z.ZodTypeDef, unknown>;
/** @internal */
export type PutAcademicSessionParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PutAcademicSessionParent$outboundSchema: z.ZodType<PutAcademicSessionParent$Outbound, z.ZodTypeDef, PutAcademicSessionParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionParent$ {
    /** @deprecated use `PutAcademicSessionParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutAcademicSessionParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutAcademicSessionParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutAcademicSessionParent$Outbound, z.ZodTypeDef, PutAcademicSessionParent>;
    /** @deprecated use `PutAcademicSessionParent$Outbound` instead. */
    type Outbound = PutAcademicSessionParent$Outbound;
}
export declare function putAcademicSessionParentToJSON(putAcademicSessionParent: PutAcademicSessionParent): string;
export declare function putAcademicSessionParentFromJSON(jsonString: string): SafeParseResult<PutAcademicSessionParent, SDKValidationError>;
/** @internal */
export declare const PutAcademicSessionOrg$inboundSchema: z.ZodType<PutAcademicSessionOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type PutAcademicSessionOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PutAcademicSessionOrg$outboundSchema: z.ZodType<PutAcademicSessionOrg$Outbound, z.ZodTypeDef, PutAcademicSessionOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionOrg$ {
    /** @deprecated use `PutAcademicSessionOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutAcademicSessionOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutAcademicSessionOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutAcademicSessionOrg$Outbound, z.ZodTypeDef, PutAcademicSessionOrg>;
    /** @deprecated use `PutAcademicSessionOrg$Outbound` instead. */
    type Outbound = PutAcademicSessionOrg$Outbound;
}
export declare function putAcademicSessionOrgToJSON(putAcademicSessionOrg: PutAcademicSessionOrg): string;
export declare function putAcademicSessionOrgFromJSON(jsonString: string): SafeParseResult<PutAcademicSessionOrg, SDKValidationError>;
/** @internal */
export declare const PutAcademicSessionAcademicSession$inboundSchema: z.ZodType<PutAcademicSessionAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type PutAcademicSessionAcademicSession$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: string;
    parent?: PutAcademicSessionParent$Outbound | null | undefined;
    schoolYear: string;
    org: PutAcademicSessionOrg$Outbound;
};
/** @internal */
export declare const PutAcademicSessionAcademicSession$outboundSchema: z.ZodType<PutAcademicSessionAcademicSession$Outbound, z.ZodTypeDef, PutAcademicSessionAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionAcademicSession$ {
    /** @deprecated use `PutAcademicSessionAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutAcademicSessionAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutAcademicSessionAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutAcademicSessionAcademicSession$Outbound, z.ZodTypeDef, PutAcademicSessionAcademicSession>;
    /** @deprecated use `PutAcademicSessionAcademicSession$Outbound` instead. */
    type Outbound = PutAcademicSessionAcademicSession$Outbound;
}
export declare function putAcademicSessionAcademicSessionToJSON(putAcademicSessionAcademicSession: PutAcademicSessionAcademicSession): string;
export declare function putAcademicSessionAcademicSessionFromJSON(jsonString: string): SafeParseResult<PutAcademicSessionAcademicSession, SDKValidationError>;
/** @internal */
export declare const PutAcademicSessionRequestBody$inboundSchema: z.ZodType<PutAcademicSessionRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type PutAcademicSessionRequestBody$Outbound = {
    academicSession: PutAcademicSessionAcademicSession$Outbound;
};
/** @internal */
export declare const PutAcademicSessionRequestBody$outboundSchema: z.ZodType<PutAcademicSessionRequestBody$Outbound, z.ZodTypeDef, PutAcademicSessionRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionRequestBody$ {
    /** @deprecated use `PutAcademicSessionRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutAcademicSessionRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutAcademicSessionRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutAcademicSessionRequestBody$Outbound, z.ZodTypeDef, PutAcademicSessionRequestBody>;
    /** @deprecated use `PutAcademicSessionRequestBody$Outbound` instead. */
    type Outbound = PutAcademicSessionRequestBody$Outbound;
}
export declare function putAcademicSessionRequestBodyToJSON(putAcademicSessionRequestBody: PutAcademicSessionRequestBody): string;
export declare function putAcademicSessionRequestBodyFromJSON(jsonString: string): SafeParseResult<PutAcademicSessionRequestBody, SDKValidationError>;
/** @internal */
export declare const PutAcademicSessionRequest$inboundSchema: z.ZodType<PutAcademicSessionRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type PutAcademicSessionRequest$Outbound = {
    sourcedId: string;
    RequestBody?: PutAcademicSessionRequestBody$Outbound | undefined;
};
/** @internal */
export declare const PutAcademicSessionRequest$outboundSchema: z.ZodType<PutAcademicSessionRequest$Outbound, z.ZodTypeDef, PutAcademicSessionRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutAcademicSessionRequest$ {
    /** @deprecated use `PutAcademicSessionRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutAcademicSessionRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutAcademicSessionRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutAcademicSessionRequest$Outbound, z.ZodTypeDef, PutAcademicSessionRequest>;
    /** @deprecated use `PutAcademicSessionRequest$Outbound` instead. */
    type Outbound = PutAcademicSessionRequest$Outbound;
}
export declare function putAcademicSessionRequestToJSON(putAcademicSessionRequest: PutAcademicSessionRequest): string;
export declare function putAcademicSessionRequestFromJSON(jsonString: string): SafeParseResult<PutAcademicSessionRequest, SDKValidationError>;
//# sourceMappingURL=putacademicsession.d.ts.map