import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type GetTreeRequest = {
    /**
     * Course Sourced ID
     */
    courseId: string;
    /**
     * User Sourced ID
     */
    userId: string;
};
export declare const GetTreeStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetTreeStatus = ClosedEnum<typeof GetTreeStatus>;
export type GetTreeAcademicSession = {
    sourcedId: string;
};
export type GetTreeOrg = {
    sourcedId: string;
};
/**
 * Represents a course.
 */
export type GetTreeCourse = {
    sourcedId?: string | undefined;
    status: GetTreeStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetTreeAcademicSession | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetTreeOrg;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
export type GetTreeLessonPlanLessonPlan = {
    /**
     * Represents a course.
     */
    course: GetTreeCourse;
    subComponents: Array<components.LessonPlanTreeComponent>;
};
export type GetTreeLessonPlan = {
    lessonPlan: GetTreeLessonPlanLessonPlan;
};
export type GetTreeResponse = {
    lessonPlan: GetTreeLessonPlan;
};
/** @internal */
export declare const GetTreeRequest$inboundSchema: z.ZodType<GetTreeRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeRequest$Outbound = {
    courseId: string;
    userId: string;
};
/** @internal */
export declare const GetTreeRequest$outboundSchema: z.ZodType<GetTreeRequest$Outbound, z.ZodTypeDef, GetTreeRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeRequest$ {
    /** @deprecated use `GetTreeRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeRequest$Outbound, z.ZodTypeDef, GetTreeRequest>;
    /** @deprecated use `GetTreeRequest$Outbound` instead. */
    type Outbound = GetTreeRequest$Outbound;
}
export declare function getTreeRequestToJSON(getTreeRequest: GetTreeRequest): string;
export declare function getTreeRequestFromJSON(jsonString: string): SafeParseResult<GetTreeRequest, SDKValidationError>;
/** @internal */
export declare const GetTreeStatus$inboundSchema: z.ZodNativeEnum<typeof GetTreeStatus>;
/** @internal */
export declare const GetTreeStatus$outboundSchema: z.ZodNativeEnum<typeof GetTreeStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeStatus$ {
    /** @deprecated use `GetTreeStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetTreeStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetTreeAcademicSession$inboundSchema: z.ZodType<GetTreeAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeAcademicSession$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetTreeAcademicSession$outboundSchema: z.ZodType<GetTreeAcademicSession$Outbound, z.ZodTypeDef, GetTreeAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeAcademicSession$ {
    /** @deprecated use `GetTreeAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeAcademicSession$Outbound, z.ZodTypeDef, GetTreeAcademicSession>;
    /** @deprecated use `GetTreeAcademicSession$Outbound` instead. */
    type Outbound = GetTreeAcademicSession$Outbound;
}
export declare function getTreeAcademicSessionToJSON(getTreeAcademicSession: GetTreeAcademicSession): string;
export declare function getTreeAcademicSessionFromJSON(jsonString: string): SafeParseResult<GetTreeAcademicSession, SDKValidationError>;
/** @internal */
export declare const GetTreeOrg$inboundSchema: z.ZodType<GetTreeOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetTreeOrg$outboundSchema: z.ZodType<GetTreeOrg$Outbound, z.ZodTypeDef, GetTreeOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeOrg$ {
    /** @deprecated use `GetTreeOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeOrg$Outbound, z.ZodTypeDef, GetTreeOrg>;
    /** @deprecated use `GetTreeOrg$Outbound` instead. */
    type Outbound = GetTreeOrg$Outbound;
}
export declare function getTreeOrgToJSON(getTreeOrg: GetTreeOrg): string;
export declare function getTreeOrgFromJSON(jsonString: string): SafeParseResult<GetTreeOrg, SDKValidationError>;
/** @internal */
export declare const GetTreeCourse$inboundSchema: z.ZodType<GetTreeCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeCourse$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    academicSession?: GetTreeAcademicSession$Outbound | null | undefined;
    courseCode?: string | null | undefined;
    grades?: Array<string> | null | undefined;
    subjects?: Array<string> | null | undefined;
    subjectCodes?: Array<string> | null | undefined;
    org: GetTreeOrg$Outbound;
    level?: string | null | undefined;
    gradingScheme?: string | null | undefined;
};
/** @internal */
export declare const GetTreeCourse$outboundSchema: z.ZodType<GetTreeCourse$Outbound, z.ZodTypeDef, GetTreeCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeCourse$ {
    /** @deprecated use `GetTreeCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeCourse$Outbound, z.ZodTypeDef, GetTreeCourse>;
    /** @deprecated use `GetTreeCourse$Outbound` instead. */
    type Outbound = GetTreeCourse$Outbound;
}
export declare function getTreeCourseToJSON(getTreeCourse: GetTreeCourse): string;
export declare function getTreeCourseFromJSON(jsonString: string): SafeParseResult<GetTreeCourse, SDKValidationError>;
/** @internal */
export declare const GetTreeLessonPlanLessonPlan$inboundSchema: z.ZodType<GetTreeLessonPlanLessonPlan, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeLessonPlanLessonPlan$Outbound = {
    course: GetTreeCourse$Outbound;
    subComponents: Array<components.LessonPlanTreeComponent$Outbound>;
};
/** @internal */
export declare const GetTreeLessonPlanLessonPlan$outboundSchema: z.ZodType<GetTreeLessonPlanLessonPlan$Outbound, z.ZodTypeDef, GetTreeLessonPlanLessonPlan>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeLessonPlanLessonPlan$ {
    /** @deprecated use `GetTreeLessonPlanLessonPlan$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeLessonPlanLessonPlan, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeLessonPlanLessonPlan$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeLessonPlanLessonPlan$Outbound, z.ZodTypeDef, GetTreeLessonPlanLessonPlan>;
    /** @deprecated use `GetTreeLessonPlanLessonPlan$Outbound` instead. */
    type Outbound = GetTreeLessonPlanLessonPlan$Outbound;
}
export declare function getTreeLessonPlanLessonPlanToJSON(getTreeLessonPlanLessonPlan: GetTreeLessonPlanLessonPlan): string;
export declare function getTreeLessonPlanLessonPlanFromJSON(jsonString: string): SafeParseResult<GetTreeLessonPlanLessonPlan, SDKValidationError>;
/** @internal */
export declare const GetTreeLessonPlan$inboundSchema: z.ZodType<GetTreeLessonPlan, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeLessonPlan$Outbound = {
    lessonPlan: GetTreeLessonPlanLessonPlan$Outbound;
};
/** @internal */
export declare const GetTreeLessonPlan$outboundSchema: z.ZodType<GetTreeLessonPlan$Outbound, z.ZodTypeDef, GetTreeLessonPlan>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeLessonPlan$ {
    /** @deprecated use `GetTreeLessonPlan$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeLessonPlan, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeLessonPlan$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeLessonPlan$Outbound, z.ZodTypeDef, GetTreeLessonPlan>;
    /** @deprecated use `GetTreeLessonPlan$Outbound` instead. */
    type Outbound = GetTreeLessonPlan$Outbound;
}
export declare function getTreeLessonPlanToJSON(getTreeLessonPlan: GetTreeLessonPlan): string;
export declare function getTreeLessonPlanFromJSON(jsonString: string): SafeParseResult<GetTreeLessonPlan, SDKValidationError>;
/** @internal */
export declare const GetTreeResponse$inboundSchema: z.ZodType<GetTreeResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTreeResponse$Outbound = {
    lessonPlan: GetTreeLessonPlan$Outbound;
};
/** @internal */
export declare const GetTreeResponse$outboundSchema: z.ZodType<GetTreeResponse$Outbound, z.ZodTypeDef, GetTreeResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTreeResponse$ {
    /** @deprecated use `GetTreeResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTreeResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTreeResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTreeResponse$Outbound, z.ZodTypeDef, GetTreeResponse>;
    /** @deprecated use `GetTreeResponse$Outbound` instead. */
    type Outbound = GetTreeResponse$Outbound;
}
export declare function getTreeResponseToJSON(getTreeResponse: GetTreeResponse): string;
export declare function getTreeResponseFromJSON(jsonString: string): SafeParseResult<GetTreeResponse, SDKValidationError>;
//# sourceMappingURL=gettree.d.ts.map