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 GetAllCoursesOrderBy: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
/**
 * The order to sort the response by
 */
export type GetAllCoursesOrderBy = ClosedEnum<typeof GetAllCoursesOrderBy>;
export type GetAllCoursesRequest = {
    /**
     * 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?: GetAllCoursesOrderBy | 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 GetAllCoursesStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetAllCoursesStatus = ClosedEnum<typeof GetAllCoursesStatus>;
export type GetAllCoursesAcademicSession = {
    sourcedId: string;
};
export type GetAllCoursesOrg = {
    sourcedId: string;
};
/**
 * Represents a course.
 */
export type GetAllCoursesCourse = {
    sourcedId?: string | undefined;
    status: GetAllCoursesStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetAllCoursesAcademicSession | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetAllCoursesOrg;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/**
 * Collection of Courses
 */
export type GetAllCoursesResponseBody = {
    courses: Array<GetAllCoursesCourse>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
export type GetAllCoursesResponse = {
    result: GetAllCoursesResponseBody;
};
/** @internal */
export declare const GetAllCoursesOrderBy$inboundSchema: z.ZodNativeEnum<typeof GetAllCoursesOrderBy>;
/** @internal */
export declare const GetAllCoursesOrderBy$outboundSchema: z.ZodNativeEnum<typeof GetAllCoursesOrderBy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesOrderBy$ {
    /** @deprecated use `GetAllCoursesOrderBy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
    /** @deprecated use `GetAllCoursesOrderBy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
}
/** @internal */
export declare const GetAllCoursesRequest$inboundSchema: z.ZodType<GetAllCoursesRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesRequest$Outbound = {
    fields?: string | undefined;
    limit: number;
    offset: number;
    sort?: string | undefined;
    orderBy?: string | undefined;
    filter?: string | undefined;
    search?: string | undefined;
};
/** @internal */
export declare const GetAllCoursesRequest$outboundSchema: z.ZodType<GetAllCoursesRequest$Outbound, z.ZodTypeDef, GetAllCoursesRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesRequest$ {
    /** @deprecated use `GetAllCoursesRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesRequest$Outbound, z.ZodTypeDef, GetAllCoursesRequest>;
    /** @deprecated use `GetAllCoursesRequest$Outbound` instead. */
    type Outbound = GetAllCoursesRequest$Outbound;
}
export declare function getAllCoursesRequestToJSON(getAllCoursesRequest: GetAllCoursesRequest): string;
export declare function getAllCoursesRequestFromJSON(jsonString: string): SafeParseResult<GetAllCoursesRequest, SDKValidationError>;
/** @internal */
export declare const GetAllCoursesStatus$inboundSchema: z.ZodNativeEnum<typeof GetAllCoursesStatus>;
/** @internal */
export declare const GetAllCoursesStatus$outboundSchema: z.ZodNativeEnum<typeof GetAllCoursesStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesStatus$ {
    /** @deprecated use `GetAllCoursesStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetAllCoursesStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetAllCoursesAcademicSession$inboundSchema: z.ZodType<GetAllCoursesAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesAcademicSession$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetAllCoursesAcademicSession$outboundSchema: z.ZodType<GetAllCoursesAcademicSession$Outbound, z.ZodTypeDef, GetAllCoursesAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesAcademicSession$ {
    /** @deprecated use `GetAllCoursesAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesAcademicSession$Outbound, z.ZodTypeDef, GetAllCoursesAcademicSession>;
    /** @deprecated use `GetAllCoursesAcademicSession$Outbound` instead. */
    type Outbound = GetAllCoursesAcademicSession$Outbound;
}
export declare function getAllCoursesAcademicSessionToJSON(getAllCoursesAcademicSession: GetAllCoursesAcademicSession): string;
export declare function getAllCoursesAcademicSessionFromJSON(jsonString: string): SafeParseResult<GetAllCoursesAcademicSession, SDKValidationError>;
/** @internal */
export declare const GetAllCoursesOrg$inboundSchema: z.ZodType<GetAllCoursesOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetAllCoursesOrg$outboundSchema: z.ZodType<GetAllCoursesOrg$Outbound, z.ZodTypeDef, GetAllCoursesOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesOrg$ {
    /** @deprecated use `GetAllCoursesOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesOrg$Outbound, z.ZodTypeDef, GetAllCoursesOrg>;
    /** @deprecated use `GetAllCoursesOrg$Outbound` instead. */
    type Outbound = GetAllCoursesOrg$Outbound;
}
export declare function getAllCoursesOrgToJSON(getAllCoursesOrg: GetAllCoursesOrg): string;
export declare function getAllCoursesOrgFromJSON(jsonString: string): SafeParseResult<GetAllCoursesOrg, SDKValidationError>;
/** @internal */
export declare const GetAllCoursesCourse$inboundSchema: z.ZodType<GetAllCoursesCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesCourse$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetAllCoursesAcademicSession$Outbound | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetAllCoursesOrg$Outbound;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/** @internal */
export declare const GetAllCoursesCourse$outboundSchema: z.ZodType<GetAllCoursesCourse$Outbound, z.ZodTypeDef, GetAllCoursesCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesCourse$ {
    /** @deprecated use `GetAllCoursesCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesCourse$Outbound, z.ZodTypeDef, GetAllCoursesCourse>;
    /** @deprecated use `GetAllCoursesCourse$Outbound` instead. */
    type Outbound = GetAllCoursesCourse$Outbound;
}
export declare function getAllCoursesCourseToJSON(getAllCoursesCourse: GetAllCoursesCourse): string;
export declare function getAllCoursesCourseFromJSON(jsonString: string): SafeParseResult<GetAllCoursesCourse, SDKValidationError>;
/** @internal */
export declare const GetAllCoursesResponseBody$inboundSchema: z.ZodType<GetAllCoursesResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesResponseBody$Outbound = {
    courses: Array<GetAllCoursesCourse$Outbound>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
/** @internal */
export declare const GetAllCoursesResponseBody$outboundSchema: z.ZodType<GetAllCoursesResponseBody$Outbound, z.ZodTypeDef, GetAllCoursesResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesResponseBody$ {
    /** @deprecated use `GetAllCoursesResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesResponseBody$Outbound, z.ZodTypeDef, GetAllCoursesResponseBody>;
    /** @deprecated use `GetAllCoursesResponseBody$Outbound` instead. */
    type Outbound = GetAllCoursesResponseBody$Outbound;
}
export declare function getAllCoursesResponseBodyToJSON(getAllCoursesResponseBody: GetAllCoursesResponseBody): string;
export declare function getAllCoursesResponseBodyFromJSON(jsonString: string): SafeParseResult<GetAllCoursesResponseBody, SDKValidationError>;
/** @internal */
export declare const GetAllCoursesResponse$inboundSchema: z.ZodType<GetAllCoursesResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCoursesResponse$Outbound = {
    Result: GetAllCoursesResponseBody$Outbound;
};
/** @internal */
export declare const GetAllCoursesResponse$outboundSchema: z.ZodType<GetAllCoursesResponse$Outbound, z.ZodTypeDef, GetAllCoursesResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCoursesResponse$ {
    /** @deprecated use `GetAllCoursesResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCoursesResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCoursesResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCoursesResponse$Outbound, z.ZodTypeDef, GetAllCoursesResponse>;
    /** @deprecated use `GetAllCoursesResponse$Outbound` instead. */
    type Outbound = GetAllCoursesResponse$Outbound;
}
export declare function getAllCoursesResponseToJSON(getAllCoursesResponse: GetAllCoursesResponse): string;
export declare function getAllCoursesResponseFromJSON(jsonString: string): SafeParseResult<GetAllCoursesResponse, SDKValidationError>;
//# sourceMappingURL=getallcourses.d.ts.map