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 UpdateEnrollmentStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type UpdateEnrollmentStatus = ClosedEnum<typeof UpdateEnrollmentStatus>;
export declare const UpdateEnrollmentRole: {
    readonly Administrator: "administrator";
    readonly Proctor: "proctor";
    readonly Student: "student";
    readonly Teacher: "teacher";
};
export type UpdateEnrollmentRole = ClosedEnum<typeof UpdateEnrollmentRole>;
export type UpdateEnrollmentUser = {
    sourcedId: string;
};
export type UpdateEnrollmentClass = {
    sourcedId: string;
};
export type UpdateEnrollmentEnrollment = {
    sourcedId: string;
    status: UpdateEnrollmentStatus;
    metadata?: {
        [k: string]: any;
    } | undefined;
    role: UpdateEnrollmentRole;
    primary?: boolean | undefined;
    beginDate?: string | undefined;
    endDate?: string | undefined;
    user: UpdateEnrollmentUser;
    class: UpdateEnrollmentClass;
};
export type UpdateEnrollmentRequestBody = {
    enrollment: UpdateEnrollmentEnrollment;
};
export type UpdateEnrollmentRequest = {
    /**
     * The unique identifier for the enrollment to update
     */
    sourcedId: string;
    requestBody?: UpdateEnrollmentRequestBody | undefined;
};
/** @internal */
export declare const UpdateEnrollmentStatus$inboundSchema: z.ZodNativeEnum<typeof UpdateEnrollmentStatus>;
/** @internal */
export declare const UpdateEnrollmentStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateEnrollmentStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentStatus$ {
    /** @deprecated use `UpdateEnrollmentStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `UpdateEnrollmentStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const UpdateEnrollmentRole$inboundSchema: z.ZodNativeEnum<typeof UpdateEnrollmentRole>;
/** @internal */
export declare const UpdateEnrollmentRole$outboundSchema: z.ZodNativeEnum<typeof UpdateEnrollmentRole>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentRole$ {
    /** @deprecated use `UpdateEnrollmentRole$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Proctor: "proctor";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
    /** @deprecated use `UpdateEnrollmentRole$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Proctor: "proctor";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
}
/** @internal */
export declare const UpdateEnrollmentUser$inboundSchema: z.ZodType<UpdateEnrollmentUser, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateEnrollmentUser$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateEnrollmentUser$outboundSchema: z.ZodType<UpdateEnrollmentUser$Outbound, z.ZodTypeDef, UpdateEnrollmentUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentUser$ {
    /** @deprecated use `UpdateEnrollmentUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateEnrollmentUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateEnrollmentUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateEnrollmentUser$Outbound, z.ZodTypeDef, UpdateEnrollmentUser>;
    /** @deprecated use `UpdateEnrollmentUser$Outbound` instead. */
    type Outbound = UpdateEnrollmentUser$Outbound;
}
export declare function updateEnrollmentUserToJSON(updateEnrollmentUser: UpdateEnrollmentUser): string;
export declare function updateEnrollmentUserFromJSON(jsonString: string): SafeParseResult<UpdateEnrollmentUser, SDKValidationError>;
/** @internal */
export declare const UpdateEnrollmentClass$inboundSchema: z.ZodType<UpdateEnrollmentClass, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateEnrollmentClass$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateEnrollmentClass$outboundSchema: z.ZodType<UpdateEnrollmentClass$Outbound, z.ZodTypeDef, UpdateEnrollmentClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentClass$ {
    /** @deprecated use `UpdateEnrollmentClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateEnrollmentClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateEnrollmentClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateEnrollmentClass$Outbound, z.ZodTypeDef, UpdateEnrollmentClass>;
    /** @deprecated use `UpdateEnrollmentClass$Outbound` instead. */
    type Outbound = UpdateEnrollmentClass$Outbound;
}
export declare function updateEnrollmentClassToJSON(updateEnrollmentClass: UpdateEnrollmentClass): string;
export declare function updateEnrollmentClassFromJSON(jsonString: string): SafeParseResult<UpdateEnrollmentClass, SDKValidationError>;
/** @internal */
export declare const UpdateEnrollmentEnrollment$inboundSchema: z.ZodType<UpdateEnrollmentEnrollment, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateEnrollmentEnrollment$Outbound = {
    sourcedId: string;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    role: string;
    primary: boolean;
    beginDate?: string | undefined;
    endDate?: string | undefined;
    user: UpdateEnrollmentUser$Outbound;
    class: UpdateEnrollmentClass$Outbound;
};
/** @internal */
export declare const UpdateEnrollmentEnrollment$outboundSchema: z.ZodType<UpdateEnrollmentEnrollment$Outbound, z.ZodTypeDef, UpdateEnrollmentEnrollment>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentEnrollment$ {
    /** @deprecated use `UpdateEnrollmentEnrollment$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateEnrollmentEnrollment, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateEnrollmentEnrollment$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateEnrollmentEnrollment$Outbound, z.ZodTypeDef, UpdateEnrollmentEnrollment>;
    /** @deprecated use `UpdateEnrollmentEnrollment$Outbound` instead. */
    type Outbound = UpdateEnrollmentEnrollment$Outbound;
}
export declare function updateEnrollmentEnrollmentToJSON(updateEnrollmentEnrollment: UpdateEnrollmentEnrollment): string;
export declare function updateEnrollmentEnrollmentFromJSON(jsonString: string): SafeParseResult<UpdateEnrollmentEnrollment, SDKValidationError>;
/** @internal */
export declare const UpdateEnrollmentRequestBody$inboundSchema: z.ZodType<UpdateEnrollmentRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateEnrollmentRequestBody$Outbound = {
    enrollment: UpdateEnrollmentEnrollment$Outbound;
};
/** @internal */
export declare const UpdateEnrollmentRequestBody$outboundSchema: z.ZodType<UpdateEnrollmentRequestBody$Outbound, z.ZodTypeDef, UpdateEnrollmentRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentRequestBody$ {
    /** @deprecated use `UpdateEnrollmentRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateEnrollmentRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateEnrollmentRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateEnrollmentRequestBody$Outbound, z.ZodTypeDef, UpdateEnrollmentRequestBody>;
    /** @deprecated use `UpdateEnrollmentRequestBody$Outbound` instead. */
    type Outbound = UpdateEnrollmentRequestBody$Outbound;
}
export declare function updateEnrollmentRequestBodyToJSON(updateEnrollmentRequestBody: UpdateEnrollmentRequestBody): string;
export declare function updateEnrollmentRequestBodyFromJSON(jsonString: string): SafeParseResult<UpdateEnrollmentRequestBody, SDKValidationError>;
/** @internal */
export declare const UpdateEnrollmentRequest$inboundSchema: z.ZodType<UpdateEnrollmentRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateEnrollmentRequest$Outbound = {
    sourcedId: string;
    RequestBody?: UpdateEnrollmentRequestBody$Outbound | undefined;
};
/** @internal */
export declare const UpdateEnrollmentRequest$outboundSchema: z.ZodType<UpdateEnrollmentRequest$Outbound, z.ZodTypeDef, UpdateEnrollmentRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateEnrollmentRequest$ {
    /** @deprecated use `UpdateEnrollmentRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateEnrollmentRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateEnrollmentRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateEnrollmentRequest$Outbound, z.ZodTypeDef, UpdateEnrollmentRequest>;
    /** @deprecated use `UpdateEnrollmentRequest$Outbound` instead. */
    type Outbound = UpdateEnrollmentRequest$Outbound;
}
export declare function updateEnrollmentRequestToJSON(updateEnrollmentRequest: UpdateEnrollmentRequest): string;
export declare function updateEnrollmentRequestFromJSON(jsonString: string): SafeParseResult<UpdateEnrollmentRequest, SDKValidationError>;
//# sourceMappingURL=updateenrollment.d.ts.map