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 CreateEnrollmentStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type CreateEnrollmentStatus = ClosedEnum<typeof CreateEnrollmentStatus>;
export declare const CreateEnrollmentRole: {
    readonly Administrator: "administrator";
    readonly Proctor: "proctor";
    readonly Student: "student";
    readonly Teacher: "teacher";
};
export type CreateEnrollmentRole = ClosedEnum<typeof CreateEnrollmentRole>;
export type CreateEnrollmentUser = {
    sourcedId: string;
};
export type CreateEnrollmentClass = {
    sourcedId: string;
};
export type CreateEnrollmentEnrollment = {
    sourcedId?: string | undefined;
    status?: CreateEnrollmentStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    role: CreateEnrollmentRole;
    primary?: boolean | undefined;
    beginDate?: string | undefined;
    endDate?: string | undefined;
    user: CreateEnrollmentUser;
    class: CreateEnrollmentClass;
};
export type CreateEnrollmentRequest = {
    enrollment: CreateEnrollmentEnrollment;
};
export type CreateEnrollmentSourcedIdPairs = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/**
 * Successfully created
 */
export type CreateEnrollmentResponse = {
    sourcedIdPairs: CreateEnrollmentSourcedIdPairs;
};
/** @internal */
export declare const CreateEnrollmentStatus$inboundSchema: z.ZodNativeEnum<typeof CreateEnrollmentStatus>;
/** @internal */
export declare const CreateEnrollmentStatus$outboundSchema: z.ZodNativeEnum<typeof CreateEnrollmentStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentStatus$ {
    /** @deprecated use `CreateEnrollmentStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `CreateEnrollmentStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const CreateEnrollmentRole$inboundSchema: z.ZodNativeEnum<typeof CreateEnrollmentRole>;
/** @internal */
export declare const CreateEnrollmentRole$outboundSchema: z.ZodNativeEnum<typeof CreateEnrollmentRole>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentRole$ {
    /** @deprecated use `CreateEnrollmentRole$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Proctor: "proctor";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
    /** @deprecated use `CreateEnrollmentRole$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Proctor: "proctor";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
}
/** @internal */
export declare const CreateEnrollmentUser$inboundSchema: z.ZodType<CreateEnrollmentUser, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentUser$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateEnrollmentUser$outboundSchema: z.ZodType<CreateEnrollmentUser$Outbound, z.ZodTypeDef, CreateEnrollmentUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentUser$ {
    /** @deprecated use `CreateEnrollmentUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentUser$Outbound, z.ZodTypeDef, CreateEnrollmentUser>;
    /** @deprecated use `CreateEnrollmentUser$Outbound` instead. */
    type Outbound = CreateEnrollmentUser$Outbound;
}
export declare function createEnrollmentUserToJSON(createEnrollmentUser: CreateEnrollmentUser): string;
export declare function createEnrollmentUserFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentUser, SDKValidationError>;
/** @internal */
export declare const CreateEnrollmentClass$inboundSchema: z.ZodType<CreateEnrollmentClass, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentClass$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateEnrollmentClass$outboundSchema: z.ZodType<CreateEnrollmentClass$Outbound, z.ZodTypeDef, CreateEnrollmentClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentClass$ {
    /** @deprecated use `CreateEnrollmentClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentClass$Outbound, z.ZodTypeDef, CreateEnrollmentClass>;
    /** @deprecated use `CreateEnrollmentClass$Outbound` instead. */
    type Outbound = CreateEnrollmentClass$Outbound;
}
export declare function createEnrollmentClassToJSON(createEnrollmentClass: CreateEnrollmentClass): string;
export declare function createEnrollmentClassFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentClass, SDKValidationError>;
/** @internal */
export declare const CreateEnrollmentEnrollment$inboundSchema: z.ZodType<CreateEnrollmentEnrollment, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentEnrollment$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    role: string;
    primary: boolean;
    beginDate?: string | undefined;
    endDate?: string | undefined;
    user: CreateEnrollmentUser$Outbound;
    class: CreateEnrollmentClass$Outbound;
};
/** @internal */
export declare const CreateEnrollmentEnrollment$outboundSchema: z.ZodType<CreateEnrollmentEnrollment$Outbound, z.ZodTypeDef, CreateEnrollmentEnrollment>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentEnrollment$ {
    /** @deprecated use `CreateEnrollmentEnrollment$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentEnrollment, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentEnrollment$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentEnrollment$Outbound, z.ZodTypeDef, CreateEnrollmentEnrollment>;
    /** @deprecated use `CreateEnrollmentEnrollment$Outbound` instead. */
    type Outbound = CreateEnrollmentEnrollment$Outbound;
}
export declare function createEnrollmentEnrollmentToJSON(createEnrollmentEnrollment: CreateEnrollmentEnrollment): string;
export declare function createEnrollmentEnrollmentFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentEnrollment, SDKValidationError>;
/** @internal */
export declare const CreateEnrollmentRequest$inboundSchema: z.ZodType<CreateEnrollmentRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentRequest$Outbound = {
    enrollment: CreateEnrollmentEnrollment$Outbound;
};
/** @internal */
export declare const CreateEnrollmentRequest$outboundSchema: z.ZodType<CreateEnrollmentRequest$Outbound, z.ZodTypeDef, CreateEnrollmentRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentRequest$ {
    /** @deprecated use `CreateEnrollmentRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentRequest$Outbound, z.ZodTypeDef, CreateEnrollmentRequest>;
    /** @deprecated use `CreateEnrollmentRequest$Outbound` instead. */
    type Outbound = CreateEnrollmentRequest$Outbound;
}
export declare function createEnrollmentRequestToJSON(createEnrollmentRequest: CreateEnrollmentRequest): string;
export declare function createEnrollmentRequestFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentRequest, SDKValidationError>;
/** @internal */
export declare const CreateEnrollmentSourcedIdPairs$inboundSchema: z.ZodType<CreateEnrollmentSourcedIdPairs, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentSourcedIdPairs$Outbound = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/** @internal */
export declare const CreateEnrollmentSourcedIdPairs$outboundSchema: z.ZodType<CreateEnrollmentSourcedIdPairs$Outbound, z.ZodTypeDef, CreateEnrollmentSourcedIdPairs>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentSourcedIdPairs$ {
    /** @deprecated use `CreateEnrollmentSourcedIdPairs$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentSourcedIdPairs, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentSourcedIdPairs$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentSourcedIdPairs$Outbound, z.ZodTypeDef, CreateEnrollmentSourcedIdPairs>;
    /** @deprecated use `CreateEnrollmentSourcedIdPairs$Outbound` instead. */
    type Outbound = CreateEnrollmentSourcedIdPairs$Outbound;
}
export declare function createEnrollmentSourcedIdPairsToJSON(createEnrollmentSourcedIdPairs: CreateEnrollmentSourcedIdPairs): string;
export declare function createEnrollmentSourcedIdPairsFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentSourcedIdPairs, SDKValidationError>;
/** @internal */
export declare const CreateEnrollmentResponse$inboundSchema: z.ZodType<CreateEnrollmentResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateEnrollmentResponse$Outbound = {
    sourcedIdPairs: CreateEnrollmentSourcedIdPairs$Outbound;
};
/** @internal */
export declare const CreateEnrollmentResponse$outboundSchema: z.ZodType<CreateEnrollmentResponse$Outbound, z.ZodTypeDef, CreateEnrollmentResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateEnrollmentResponse$ {
    /** @deprecated use `CreateEnrollmentResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateEnrollmentResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateEnrollmentResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateEnrollmentResponse$Outbound, z.ZodTypeDef, CreateEnrollmentResponse>;
    /** @deprecated use `CreateEnrollmentResponse$Outbound` instead. */
    type Outbound = CreateEnrollmentResponse$Outbound;
}
export declare function createEnrollmentResponseToJSON(createEnrollmentResponse: CreateEnrollmentResponse): string;
export declare function createEnrollmentResponseFromJSON(jsonString: string): SafeParseResult<CreateEnrollmentResponse, SDKValidationError>;
//# sourceMappingURL=createenrollment.d.ts.map