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 CreateCourseStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type CreateCourseStatus = ClosedEnum<typeof CreateCourseStatus>;
export type CreateCourseAcademicSession = {
    sourcedId: string;
};
export type CreateCourseOrg = {
    sourcedId: string;
};
/**
 * Represents a course.
 */
export type CreateCourseCourse = {
    sourcedId?: string | undefined;
    status: CreateCourseStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: CreateCourseAcademicSession | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: CreateCourseOrg;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
export type CreateCourseRequest = {
    /**
     * Represents a course.
     */
    course: CreateCourseCourse;
};
export type CreateCourseSourcedIdPairs = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/**
 * Created Course Successfully
 */
export type CreateCourseResponse = {
    sourcedIdPairs: CreateCourseSourcedIdPairs;
};
/** @internal */
export declare const CreateCourseStatus$inboundSchema: z.ZodNativeEnum<typeof CreateCourseStatus>;
/** @internal */
export declare const CreateCourseStatus$outboundSchema: z.ZodNativeEnum<typeof CreateCourseStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseStatus$ {
    /** @deprecated use `CreateCourseStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `CreateCourseStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const CreateCourseAcademicSession$inboundSchema: z.ZodType<CreateCourseAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseAcademicSession$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateCourseAcademicSession$outboundSchema: z.ZodType<CreateCourseAcademicSession$Outbound, z.ZodTypeDef, CreateCourseAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseAcademicSession$ {
    /** @deprecated use `CreateCourseAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseAcademicSession$Outbound, z.ZodTypeDef, CreateCourseAcademicSession>;
    /** @deprecated use `CreateCourseAcademicSession$Outbound` instead. */
    type Outbound = CreateCourseAcademicSession$Outbound;
}
export declare function createCourseAcademicSessionToJSON(createCourseAcademicSession: CreateCourseAcademicSession): string;
export declare function createCourseAcademicSessionFromJSON(jsonString: string): SafeParseResult<CreateCourseAcademicSession, SDKValidationError>;
/** @internal */
export declare const CreateCourseOrg$inboundSchema: z.ZodType<CreateCourseOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateCourseOrg$outboundSchema: z.ZodType<CreateCourseOrg$Outbound, z.ZodTypeDef, CreateCourseOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseOrg$ {
    /** @deprecated use `CreateCourseOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseOrg$Outbound, z.ZodTypeDef, CreateCourseOrg>;
    /** @deprecated use `CreateCourseOrg$Outbound` instead. */
    type Outbound = CreateCourseOrg$Outbound;
}
export declare function createCourseOrgToJSON(createCourseOrg: CreateCourseOrg): string;
export declare function createCourseOrgFromJSON(jsonString: string): SafeParseResult<CreateCourseOrg, SDKValidationError>;
/** @internal */
export declare const CreateCourseCourse$inboundSchema: z.ZodType<CreateCourseCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseCourse$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: CreateCourseAcademicSession$Outbound | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: CreateCourseOrg$Outbound;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/** @internal */
export declare const CreateCourseCourse$outboundSchema: z.ZodType<CreateCourseCourse$Outbound, z.ZodTypeDef, CreateCourseCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseCourse$ {
    /** @deprecated use `CreateCourseCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseCourse$Outbound, z.ZodTypeDef, CreateCourseCourse>;
    /** @deprecated use `CreateCourseCourse$Outbound` instead. */
    type Outbound = CreateCourseCourse$Outbound;
}
export declare function createCourseCourseToJSON(createCourseCourse: CreateCourseCourse): string;
export declare function createCourseCourseFromJSON(jsonString: string): SafeParseResult<CreateCourseCourse, SDKValidationError>;
/** @internal */
export declare const CreateCourseRequest$inboundSchema: z.ZodType<CreateCourseRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseRequest$Outbound = {
    course: CreateCourseCourse$Outbound;
};
/** @internal */
export declare const CreateCourseRequest$outboundSchema: z.ZodType<CreateCourseRequest$Outbound, z.ZodTypeDef, CreateCourseRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseRequest$ {
    /** @deprecated use `CreateCourseRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseRequest$Outbound, z.ZodTypeDef, CreateCourseRequest>;
    /** @deprecated use `CreateCourseRequest$Outbound` instead. */
    type Outbound = CreateCourseRequest$Outbound;
}
export declare function createCourseRequestToJSON(createCourseRequest: CreateCourseRequest): string;
export declare function createCourseRequestFromJSON(jsonString: string): SafeParseResult<CreateCourseRequest, SDKValidationError>;
/** @internal */
export declare const CreateCourseSourcedIdPairs$inboundSchema: z.ZodType<CreateCourseSourcedIdPairs, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseSourcedIdPairs$Outbound = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/** @internal */
export declare const CreateCourseSourcedIdPairs$outboundSchema: z.ZodType<CreateCourseSourcedIdPairs$Outbound, z.ZodTypeDef, CreateCourseSourcedIdPairs>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseSourcedIdPairs$ {
    /** @deprecated use `CreateCourseSourcedIdPairs$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseSourcedIdPairs, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseSourcedIdPairs$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseSourcedIdPairs$Outbound, z.ZodTypeDef, CreateCourseSourcedIdPairs>;
    /** @deprecated use `CreateCourseSourcedIdPairs$Outbound` instead. */
    type Outbound = CreateCourseSourcedIdPairs$Outbound;
}
export declare function createCourseSourcedIdPairsToJSON(createCourseSourcedIdPairs: CreateCourseSourcedIdPairs): string;
export declare function createCourseSourcedIdPairsFromJSON(jsonString: string): SafeParseResult<CreateCourseSourcedIdPairs, SDKValidationError>;
/** @internal */
export declare const CreateCourseResponse$inboundSchema: z.ZodType<CreateCourseResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateCourseResponse$Outbound = {
    sourcedIdPairs: CreateCourseSourcedIdPairs$Outbound;
};
/** @internal */
export declare const CreateCourseResponse$outboundSchema: z.ZodType<CreateCourseResponse$Outbound, z.ZodTypeDef, CreateCourseResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateCourseResponse$ {
    /** @deprecated use `CreateCourseResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateCourseResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateCourseResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateCourseResponse$Outbound, z.ZodTypeDef, CreateCourseResponse>;
    /** @deprecated use `CreateCourseResponse$Outbound` instead. */
    type Outbound = CreateCourseResponse$Outbound;
}
export declare function createCourseResponseToJSON(createCourseResponse: CreateCourseResponse): string;
export declare function createCourseResponseFromJSON(jsonString: string): SafeParseResult<CreateCourseResponse, SDKValidationError>;
//# sourceMappingURL=createcourse.d.ts.map