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";
/**
 * The order to sort the response by
 */
export declare const GetCoursesForSchoolOrderBy: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
/**
 * The order to sort the response by
 */
export type GetCoursesForSchoolOrderBy = ClosedEnum<typeof GetCoursesForSchoolOrderBy>;
export type GetCoursesForSchoolRequest = {
    /**
     * School sourced ID
     */
    schoolSourcedId: string;
    /**
     * Comma-separated list of fields to include in the response
     */
    fields?: string | undefined;
    /**
     * The maximum number of items to return in the paginated response
     */
    limit?: number | undefined;
    /**
     * The number of items to skip in the paginated response
     */
    offset?: number | undefined;
    /**
     * The field to sort the response by
     */
    sort?: string | undefined;
    /**
     * The order to sort the response by
     */
    orderBy?: GetCoursesForSchoolOrderBy | undefined;
    /**
     * The filter to apply to the response
     */
    filter?: string | undefined;
    /**
     * The search query to apply to the response
     */
    search?: string | undefined;
};
export declare const GetCoursesForSchoolStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetCoursesForSchoolStatus = ClosedEnum<typeof GetCoursesForSchoolStatus>;
export type GetCoursesForSchoolAcademicSession = {
    sourcedId: string;
};
export type GetCoursesForSchoolOrg = {
    sourcedId: string;
};
/**
 * Represents a course.
 */
export type GetCoursesForSchoolCourse = {
    sourcedId?: string | undefined;
    status: GetCoursesForSchoolStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetCoursesForSchoolAcademicSession | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetCoursesForSchoolOrg;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/**
 * Collection of courses successfully retrieved
 */
export type GetCoursesForSchoolResponseBody = {
    courses: Array<GetCoursesForSchoolCourse>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
export type GetCoursesForSchoolResponse = {
    result: GetCoursesForSchoolResponseBody;
};
/** @internal */
export declare const GetCoursesForSchoolOrderBy$inboundSchema: z.ZodNativeEnum<typeof GetCoursesForSchoolOrderBy>;
/** @internal */
export declare const GetCoursesForSchoolOrderBy$outboundSchema: z.ZodNativeEnum<typeof GetCoursesForSchoolOrderBy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolOrderBy$ {
    /** @deprecated use `GetCoursesForSchoolOrderBy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
    /** @deprecated use `GetCoursesForSchoolOrderBy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
}
/** @internal */
export declare const GetCoursesForSchoolRequest$inboundSchema: z.ZodType<GetCoursesForSchoolRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolRequest$Outbound = {
    schoolSourcedId: string;
    fields?: string | undefined;
    limit: number;
    offset: number;
    sort?: string | undefined;
    orderBy?: string | undefined;
    filter?: string | undefined;
    search?: string | undefined;
};
/** @internal */
export declare const GetCoursesForSchoolRequest$outboundSchema: z.ZodType<GetCoursesForSchoolRequest$Outbound, z.ZodTypeDef, GetCoursesForSchoolRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolRequest$ {
    /** @deprecated use `GetCoursesForSchoolRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolRequest$Outbound, z.ZodTypeDef, GetCoursesForSchoolRequest>;
    /** @deprecated use `GetCoursesForSchoolRequest$Outbound` instead. */
    type Outbound = GetCoursesForSchoolRequest$Outbound;
}
export declare function getCoursesForSchoolRequestToJSON(getCoursesForSchoolRequest: GetCoursesForSchoolRequest): string;
export declare function getCoursesForSchoolRequestFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolRequest, SDKValidationError>;
/** @internal */
export declare const GetCoursesForSchoolStatus$inboundSchema: z.ZodNativeEnum<typeof GetCoursesForSchoolStatus>;
/** @internal */
export declare const GetCoursesForSchoolStatus$outboundSchema: z.ZodNativeEnum<typeof GetCoursesForSchoolStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolStatus$ {
    /** @deprecated use `GetCoursesForSchoolStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetCoursesForSchoolStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetCoursesForSchoolAcademicSession$inboundSchema: z.ZodType<GetCoursesForSchoolAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolAcademicSession$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetCoursesForSchoolAcademicSession$outboundSchema: z.ZodType<GetCoursesForSchoolAcademicSession$Outbound, z.ZodTypeDef, GetCoursesForSchoolAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolAcademicSession$ {
    /** @deprecated use `GetCoursesForSchoolAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolAcademicSession$Outbound, z.ZodTypeDef, GetCoursesForSchoolAcademicSession>;
    /** @deprecated use `GetCoursesForSchoolAcademicSession$Outbound` instead. */
    type Outbound = GetCoursesForSchoolAcademicSession$Outbound;
}
export declare function getCoursesForSchoolAcademicSessionToJSON(getCoursesForSchoolAcademicSession: GetCoursesForSchoolAcademicSession): string;
export declare function getCoursesForSchoolAcademicSessionFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolAcademicSession, SDKValidationError>;
/** @internal */
export declare const GetCoursesForSchoolOrg$inboundSchema: z.ZodType<GetCoursesForSchoolOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetCoursesForSchoolOrg$outboundSchema: z.ZodType<GetCoursesForSchoolOrg$Outbound, z.ZodTypeDef, GetCoursesForSchoolOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolOrg$ {
    /** @deprecated use `GetCoursesForSchoolOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolOrg$Outbound, z.ZodTypeDef, GetCoursesForSchoolOrg>;
    /** @deprecated use `GetCoursesForSchoolOrg$Outbound` instead. */
    type Outbound = GetCoursesForSchoolOrg$Outbound;
}
export declare function getCoursesForSchoolOrgToJSON(getCoursesForSchoolOrg: GetCoursesForSchoolOrg): string;
export declare function getCoursesForSchoolOrgFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolOrg, SDKValidationError>;
/** @internal */
export declare const GetCoursesForSchoolCourse$inboundSchema: z.ZodType<GetCoursesForSchoolCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolCourse$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetCoursesForSchoolAcademicSession$Outbound | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetCoursesForSchoolOrg$Outbound;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/** @internal */
export declare const GetCoursesForSchoolCourse$outboundSchema: z.ZodType<GetCoursesForSchoolCourse$Outbound, z.ZodTypeDef, GetCoursesForSchoolCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolCourse$ {
    /** @deprecated use `GetCoursesForSchoolCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolCourse$Outbound, z.ZodTypeDef, GetCoursesForSchoolCourse>;
    /** @deprecated use `GetCoursesForSchoolCourse$Outbound` instead. */
    type Outbound = GetCoursesForSchoolCourse$Outbound;
}
export declare function getCoursesForSchoolCourseToJSON(getCoursesForSchoolCourse: GetCoursesForSchoolCourse): string;
export declare function getCoursesForSchoolCourseFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolCourse, SDKValidationError>;
/** @internal */
export declare const GetCoursesForSchoolResponseBody$inboundSchema: z.ZodType<GetCoursesForSchoolResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolResponseBody$Outbound = {
    courses: Array<GetCoursesForSchoolCourse$Outbound>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
/** @internal */
export declare const GetCoursesForSchoolResponseBody$outboundSchema: z.ZodType<GetCoursesForSchoolResponseBody$Outbound, z.ZodTypeDef, GetCoursesForSchoolResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolResponseBody$ {
    /** @deprecated use `GetCoursesForSchoolResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolResponseBody$Outbound, z.ZodTypeDef, GetCoursesForSchoolResponseBody>;
    /** @deprecated use `GetCoursesForSchoolResponseBody$Outbound` instead. */
    type Outbound = GetCoursesForSchoolResponseBody$Outbound;
}
export declare function getCoursesForSchoolResponseBodyToJSON(getCoursesForSchoolResponseBody: GetCoursesForSchoolResponseBody): string;
export declare function getCoursesForSchoolResponseBodyFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolResponseBody, SDKValidationError>;
/** @internal */
export declare const GetCoursesForSchoolResponse$inboundSchema: z.ZodType<GetCoursesForSchoolResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetCoursesForSchoolResponse$Outbound = {
    Result: GetCoursesForSchoolResponseBody$Outbound;
};
/** @internal */
export declare const GetCoursesForSchoolResponse$outboundSchema: z.ZodType<GetCoursesForSchoolResponse$Outbound, z.ZodTypeDef, GetCoursesForSchoolResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetCoursesForSchoolResponse$ {
    /** @deprecated use `GetCoursesForSchoolResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetCoursesForSchoolResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetCoursesForSchoolResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetCoursesForSchoolResponse$Outbound, z.ZodTypeDef, GetCoursesForSchoolResponse>;
    /** @deprecated use `GetCoursesForSchoolResponse$Outbound` instead. */
    type Outbound = GetCoursesForSchoolResponse$Outbound;
}
export declare function getCoursesForSchoolResponseToJSON(getCoursesForSchoolResponse: GetCoursesForSchoolResponse): string;
export declare function getCoursesForSchoolResponseFromJSON(jsonString: string): SafeParseResult<GetCoursesForSchoolResponse, SDKValidationError>;
//# sourceMappingURL=getcoursesforschool.d.ts.map