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 GetAllCourseComponentsOrderBy: {
    readonly Asc: "asc";
    readonly Desc: "desc";
};
/**
 * The order to sort the response by
 */
export type GetAllCourseComponentsOrderBy = ClosedEnum<typeof GetAllCourseComponentsOrderBy>;
export type GetAllCourseComponentsRequest = {
    /**
     * 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?: GetAllCourseComponentsOrderBy | 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 GetAllCourseComponentsStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetAllCourseComponentsStatus = ClosedEnum<typeof GetAllCourseComponentsStatus>;
export type GetAllCourseComponentsCourse = {
    sourcedId: string;
};
export type GetAllCourseComponentsCourseComponentCourseComponent = {
    sourcedId: string;
};
export type GetAllCourseComponentsParent = {
    sourcedId: string;
};
/**
 * Represents a component of a course.
 */
export type GetAllCourseComponentsCourseComponent = {
    sourcedId?: string | undefined;
    status: GetAllCourseComponentsStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    course: GetAllCourseComponentsCourse;
    courseComponent?: GetAllCourseComponentsCourseComponentCourseComponent | null | undefined;
    parent?: GetAllCourseComponentsParent | null | undefined;
    title: string;
    sortOrder: number;
    prerequisites?: Array<string> | null | undefined;
    prerequisiteCriteria?: string | null | undefined;
    /**
     * The date the component is unlocked for the student
     */
    unlockDate: string;
};
/**
 * Collection of Course Components
 */
export type GetAllCourseComponentsResponseBody = {
    courseComponents: Array<GetAllCourseComponentsCourseComponent>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
export type GetAllCourseComponentsResponse = {
    result: GetAllCourseComponentsResponseBody;
};
/** @internal */
export declare const GetAllCourseComponentsOrderBy$inboundSchema: z.ZodNativeEnum<typeof GetAllCourseComponentsOrderBy>;
/** @internal */
export declare const GetAllCourseComponentsOrderBy$outboundSchema: z.ZodNativeEnum<typeof GetAllCourseComponentsOrderBy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsOrderBy$ {
    /** @deprecated use `GetAllCourseComponentsOrderBy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
    /** @deprecated use `GetAllCourseComponentsOrderBy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Asc: "asc";
        readonly Desc: "desc";
    }>;
}
/** @internal */
export declare const GetAllCourseComponentsRequest$inboundSchema: z.ZodType<GetAllCourseComponentsRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsRequest$Outbound = {
    fields?: string | undefined;
    limit: number;
    offset: number;
    sort?: string | undefined;
    orderBy?: string | undefined;
    filter?: string | undefined;
    search?: string | undefined;
};
/** @internal */
export declare const GetAllCourseComponentsRequest$outboundSchema: z.ZodType<GetAllCourseComponentsRequest$Outbound, z.ZodTypeDef, GetAllCourseComponentsRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsRequest$ {
    /** @deprecated use `GetAllCourseComponentsRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsRequest$Outbound, z.ZodTypeDef, GetAllCourseComponentsRequest>;
    /** @deprecated use `GetAllCourseComponentsRequest$Outbound` instead. */
    type Outbound = GetAllCourseComponentsRequest$Outbound;
}
export declare function getAllCourseComponentsRequestToJSON(getAllCourseComponentsRequest: GetAllCourseComponentsRequest): string;
export declare function getAllCourseComponentsRequestFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsRequest, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsStatus$inboundSchema: z.ZodNativeEnum<typeof GetAllCourseComponentsStatus>;
/** @internal */
export declare const GetAllCourseComponentsStatus$outboundSchema: z.ZodNativeEnum<typeof GetAllCourseComponentsStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsStatus$ {
    /** @deprecated use `GetAllCourseComponentsStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetAllCourseComponentsStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetAllCourseComponentsCourse$inboundSchema: z.ZodType<GetAllCourseComponentsCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsCourse$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetAllCourseComponentsCourse$outboundSchema: z.ZodType<GetAllCourseComponentsCourse$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsCourse$ {
    /** @deprecated use `GetAllCourseComponentsCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsCourse$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourse>;
    /** @deprecated use `GetAllCourseComponentsCourse$Outbound` instead. */
    type Outbound = GetAllCourseComponentsCourse$Outbound;
}
export declare function getAllCourseComponentsCourseToJSON(getAllCourseComponentsCourse: GetAllCourseComponentsCourse): string;
export declare function getAllCourseComponentsCourseFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsCourse, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsCourseComponentCourseComponent$inboundSchema: z.ZodType<GetAllCourseComponentsCourseComponentCourseComponent, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsCourseComponentCourseComponent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetAllCourseComponentsCourseComponentCourseComponent$outboundSchema: z.ZodType<GetAllCourseComponentsCourseComponentCourseComponent$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourseComponentCourseComponent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsCourseComponentCourseComponent$ {
    /** @deprecated use `GetAllCourseComponentsCourseComponentCourseComponent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsCourseComponentCourseComponent, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsCourseComponentCourseComponent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsCourseComponentCourseComponent$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourseComponentCourseComponent>;
    /** @deprecated use `GetAllCourseComponentsCourseComponentCourseComponent$Outbound` instead. */
    type Outbound = GetAllCourseComponentsCourseComponentCourseComponent$Outbound;
}
export declare function getAllCourseComponentsCourseComponentCourseComponentToJSON(getAllCourseComponentsCourseComponentCourseComponent: GetAllCourseComponentsCourseComponentCourseComponent): string;
export declare function getAllCourseComponentsCourseComponentCourseComponentFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsCourseComponentCourseComponent, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsParent$inboundSchema: z.ZodType<GetAllCourseComponentsParent, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetAllCourseComponentsParent$outboundSchema: z.ZodType<GetAllCourseComponentsParent$Outbound, z.ZodTypeDef, GetAllCourseComponentsParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsParent$ {
    /** @deprecated use `GetAllCourseComponentsParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsParent$Outbound, z.ZodTypeDef, GetAllCourseComponentsParent>;
    /** @deprecated use `GetAllCourseComponentsParent$Outbound` instead. */
    type Outbound = GetAllCourseComponentsParent$Outbound;
}
export declare function getAllCourseComponentsParentToJSON(getAllCourseComponentsParent: GetAllCourseComponentsParent): string;
export declare function getAllCourseComponentsParentFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsParent, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsCourseComponent$inboundSchema: z.ZodType<GetAllCourseComponentsCourseComponent, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsCourseComponent$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    course: GetAllCourseComponentsCourse$Outbound;
    courseComponent?: GetAllCourseComponentsCourseComponentCourseComponent$Outbound | null | undefined;
    parent?: GetAllCourseComponentsParent$Outbound | null | undefined;
    title: string;
    sortOrder: number;
    prerequisites?: Array<string> | null | undefined;
    prerequisiteCriteria?: string | null | undefined;
    unlockDate: string;
};
/** @internal */
export declare const GetAllCourseComponentsCourseComponent$outboundSchema: z.ZodType<GetAllCourseComponentsCourseComponent$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourseComponent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsCourseComponent$ {
    /** @deprecated use `GetAllCourseComponentsCourseComponent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsCourseComponent, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsCourseComponent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsCourseComponent$Outbound, z.ZodTypeDef, GetAllCourseComponentsCourseComponent>;
    /** @deprecated use `GetAllCourseComponentsCourseComponent$Outbound` instead. */
    type Outbound = GetAllCourseComponentsCourseComponent$Outbound;
}
export declare function getAllCourseComponentsCourseComponentToJSON(getAllCourseComponentsCourseComponent: GetAllCourseComponentsCourseComponent): string;
export declare function getAllCourseComponentsCourseComponentFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsCourseComponent, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsResponseBody$inboundSchema: z.ZodType<GetAllCourseComponentsResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsResponseBody$Outbound = {
    courseComponents: Array<GetAllCourseComponentsCourseComponent$Outbound>;
    totalCount: number;
    pageCount: number;
    pageNumber: number;
    offset: number;
    limit: number;
};
/** @internal */
export declare const GetAllCourseComponentsResponseBody$outboundSchema: z.ZodType<GetAllCourseComponentsResponseBody$Outbound, z.ZodTypeDef, GetAllCourseComponentsResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsResponseBody$ {
    /** @deprecated use `GetAllCourseComponentsResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsResponseBody$Outbound, z.ZodTypeDef, GetAllCourseComponentsResponseBody>;
    /** @deprecated use `GetAllCourseComponentsResponseBody$Outbound` instead. */
    type Outbound = GetAllCourseComponentsResponseBody$Outbound;
}
export declare function getAllCourseComponentsResponseBodyToJSON(getAllCourseComponentsResponseBody: GetAllCourseComponentsResponseBody): string;
export declare function getAllCourseComponentsResponseBodyFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsResponseBody, SDKValidationError>;
/** @internal */
export declare const GetAllCourseComponentsResponse$inboundSchema: z.ZodType<GetAllCourseComponentsResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetAllCourseComponentsResponse$Outbound = {
    Result: GetAllCourseComponentsResponseBody$Outbound;
};
/** @internal */
export declare const GetAllCourseComponentsResponse$outboundSchema: z.ZodType<GetAllCourseComponentsResponse$Outbound, z.ZodTypeDef, GetAllCourseComponentsResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetAllCourseComponentsResponse$ {
    /** @deprecated use `GetAllCourseComponentsResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetAllCourseComponentsResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetAllCourseComponentsResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetAllCourseComponentsResponse$Outbound, z.ZodTypeDef, GetAllCourseComponentsResponse>;
    /** @deprecated use `GetAllCourseComponentsResponse$Outbound` instead. */
    type Outbound = GetAllCourseComponentsResponse$Outbound;
}
export declare function getAllCourseComponentsResponseToJSON(getAllCourseComponentsResponse: GetAllCourseComponentsResponse): string;
export declare function getAllCourseComponentsResponseFromJSON(jsonString: string): SafeParseResult<GetAllCourseComponentsResponse, SDKValidationError>;
//# sourceMappingURL=getallcoursecomponents.d.ts.map