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 PostAcademicSessionStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type PostAcademicSessionStatus = ClosedEnum<typeof PostAcademicSessionStatus>;
export declare const PostAcademicSessionType: {
    readonly GradingPeriod: "gradingPeriod";
    readonly Semester: "semester";
    readonly SchoolYear: "schoolYear";
    readonly Term: "term";
};
export type PostAcademicSessionType = ClosedEnum<typeof PostAcademicSessionType>;
export type PostAcademicSessionParent = {
    sourcedId: string;
};
export type PostAcademicSessionOrg = {
    sourcedId: string;
};
export type PostAcademicSessionAcademicSession = {
    sourcedId?: string | undefined;
    status?: PostAcademicSessionStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: PostAcademicSessionType;
    parent?: PostAcademicSessionParent | null | undefined;
    schoolYear: string;
    org: PostAcademicSessionOrg;
};
export type PostAcademicSessionRequest = {
    academicSession: PostAcademicSessionAcademicSession;
};
export type PostAcademicSessionSourcedIdPairs = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/**
 * Academic session created
 */
export type PostAcademicSessionResponse = {
    sourcedIdPairs: PostAcademicSessionSourcedIdPairs;
};
/** @internal */
export declare const PostAcademicSessionStatus$inboundSchema: z.ZodNativeEnum<typeof PostAcademicSessionStatus>;
/** @internal */
export declare const PostAcademicSessionStatus$outboundSchema: z.ZodNativeEnum<typeof PostAcademicSessionStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionStatus$ {
    /** @deprecated use `PostAcademicSessionStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `PostAcademicSessionStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const PostAcademicSessionType$inboundSchema: z.ZodNativeEnum<typeof PostAcademicSessionType>;
/** @internal */
export declare const PostAcademicSessionType$outboundSchema: z.ZodNativeEnum<typeof PostAcademicSessionType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionType$ {
    /** @deprecated use `PostAcademicSessionType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly GradingPeriod: "gradingPeriod";
        readonly Semester: "semester";
        readonly SchoolYear: "schoolYear";
        readonly Term: "term";
    }>;
    /** @deprecated use `PostAcademicSessionType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly GradingPeriod: "gradingPeriod";
        readonly Semester: "semester";
        readonly SchoolYear: "schoolYear";
        readonly Term: "term";
    }>;
}
/** @internal */
export declare const PostAcademicSessionParent$inboundSchema: z.ZodType<PostAcademicSessionParent, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PostAcademicSessionParent$outboundSchema: z.ZodType<PostAcademicSessionParent$Outbound, z.ZodTypeDef, PostAcademicSessionParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionParent$ {
    /** @deprecated use `PostAcademicSessionParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionParent$Outbound, z.ZodTypeDef, PostAcademicSessionParent>;
    /** @deprecated use `PostAcademicSessionParent$Outbound` instead. */
    type Outbound = PostAcademicSessionParent$Outbound;
}
export declare function postAcademicSessionParentToJSON(postAcademicSessionParent: PostAcademicSessionParent): string;
export declare function postAcademicSessionParentFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionParent, SDKValidationError>;
/** @internal */
export declare const PostAcademicSessionOrg$inboundSchema: z.ZodType<PostAcademicSessionOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PostAcademicSessionOrg$outboundSchema: z.ZodType<PostAcademicSessionOrg$Outbound, z.ZodTypeDef, PostAcademicSessionOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionOrg$ {
    /** @deprecated use `PostAcademicSessionOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionOrg$Outbound, z.ZodTypeDef, PostAcademicSessionOrg>;
    /** @deprecated use `PostAcademicSessionOrg$Outbound` instead. */
    type Outbound = PostAcademicSessionOrg$Outbound;
}
export declare function postAcademicSessionOrgToJSON(postAcademicSessionOrg: PostAcademicSessionOrg): string;
export declare function postAcademicSessionOrgFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionOrg, SDKValidationError>;
/** @internal */
export declare const PostAcademicSessionAcademicSession$inboundSchema: z.ZodType<PostAcademicSessionAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionAcademicSession$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    startDate: string;
    endDate: string;
    type: string;
    parent?: PostAcademicSessionParent$Outbound | null | undefined;
    schoolYear: string;
    org: PostAcademicSessionOrg$Outbound;
};
/** @internal */
export declare const PostAcademicSessionAcademicSession$outboundSchema: z.ZodType<PostAcademicSessionAcademicSession$Outbound, z.ZodTypeDef, PostAcademicSessionAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionAcademicSession$ {
    /** @deprecated use `PostAcademicSessionAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionAcademicSession$Outbound, z.ZodTypeDef, PostAcademicSessionAcademicSession>;
    /** @deprecated use `PostAcademicSessionAcademicSession$Outbound` instead. */
    type Outbound = PostAcademicSessionAcademicSession$Outbound;
}
export declare function postAcademicSessionAcademicSessionToJSON(postAcademicSessionAcademicSession: PostAcademicSessionAcademicSession): string;
export declare function postAcademicSessionAcademicSessionFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionAcademicSession, SDKValidationError>;
/** @internal */
export declare const PostAcademicSessionRequest$inboundSchema: z.ZodType<PostAcademicSessionRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionRequest$Outbound = {
    academicSession: PostAcademicSessionAcademicSession$Outbound;
};
/** @internal */
export declare const PostAcademicSessionRequest$outboundSchema: z.ZodType<PostAcademicSessionRequest$Outbound, z.ZodTypeDef, PostAcademicSessionRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionRequest$ {
    /** @deprecated use `PostAcademicSessionRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionRequest$Outbound, z.ZodTypeDef, PostAcademicSessionRequest>;
    /** @deprecated use `PostAcademicSessionRequest$Outbound` instead. */
    type Outbound = PostAcademicSessionRequest$Outbound;
}
export declare function postAcademicSessionRequestToJSON(postAcademicSessionRequest: PostAcademicSessionRequest): string;
export declare function postAcademicSessionRequestFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionRequest, SDKValidationError>;
/** @internal */
export declare const PostAcademicSessionSourcedIdPairs$inboundSchema: z.ZodType<PostAcademicSessionSourcedIdPairs, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionSourcedIdPairs$Outbound = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/** @internal */
export declare const PostAcademicSessionSourcedIdPairs$outboundSchema: z.ZodType<PostAcademicSessionSourcedIdPairs$Outbound, z.ZodTypeDef, PostAcademicSessionSourcedIdPairs>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionSourcedIdPairs$ {
    /** @deprecated use `PostAcademicSessionSourcedIdPairs$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionSourcedIdPairs, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionSourcedIdPairs$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionSourcedIdPairs$Outbound, z.ZodTypeDef, PostAcademicSessionSourcedIdPairs>;
    /** @deprecated use `PostAcademicSessionSourcedIdPairs$Outbound` instead. */
    type Outbound = PostAcademicSessionSourcedIdPairs$Outbound;
}
export declare function postAcademicSessionSourcedIdPairsToJSON(postAcademicSessionSourcedIdPairs: PostAcademicSessionSourcedIdPairs): string;
export declare function postAcademicSessionSourcedIdPairsFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionSourcedIdPairs, SDKValidationError>;
/** @internal */
export declare const PostAcademicSessionResponse$inboundSchema: z.ZodType<PostAcademicSessionResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type PostAcademicSessionResponse$Outbound = {
    sourcedIdPairs: PostAcademicSessionSourcedIdPairs$Outbound;
};
/** @internal */
export declare const PostAcademicSessionResponse$outboundSchema: z.ZodType<PostAcademicSessionResponse$Outbound, z.ZodTypeDef, PostAcademicSessionResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PostAcademicSessionResponse$ {
    /** @deprecated use `PostAcademicSessionResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PostAcademicSessionResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `PostAcademicSessionResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PostAcademicSessionResponse$Outbound, z.ZodTypeDef, PostAcademicSessionResponse>;
    /** @deprecated use `PostAcademicSessionResponse$Outbound` instead. */
    type Outbound = PostAcademicSessionResponse$Outbound;
}
export declare function postAcademicSessionResponseToJSON(postAcademicSessionResponse: PostAcademicSessionResponse): string;
export declare function postAcademicSessionResponseFromJSON(jsonString: string): SafeParseResult<PostAcademicSessionResponse, SDKValidationError>;
//# sourceMappingURL=postacademicsession.d.ts.map