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 UpdateClassStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type UpdateClassStatus = ClosedEnum<typeof UpdateClassStatus>;
export declare const UpdateClassClassType: {
    readonly Homeroom: "homeroom";
    readonly Scheduled: "scheduled";
};
export type UpdateClassClassType = ClosedEnum<typeof UpdateClassClassType>;
export type UpdateClassResource = {
    sourcedId: string;
};
export type UpdateClassTerm = {
    sourcedId: string;
};
export type UpdateClassClass = {
    status?: UpdateClassStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title?: string | undefined;
    classCode?: string | undefined;
    classType?: UpdateClassClassType | undefined;
    location?: string | undefined;
    grades?: Array<string> | undefined;
    subjects?: Array<string> | undefined;
    subjectCodes?: Array<string> | undefined;
    periods?: Array<string> | undefined;
    resources?: Array<UpdateClassResource> | undefined;
    terms?: Array<UpdateClassTerm> | undefined;
};
export type UpdateClassRequestBody = {
    class: UpdateClassClass;
};
export type UpdateClassRequest = {
    /**
     * Class sourcedId
     */
    sourcedId: string;
    requestBody?: UpdateClassRequestBody | undefined;
};
/** @internal */
export declare const UpdateClassStatus$inboundSchema: z.ZodNativeEnum<typeof UpdateClassStatus>;
/** @internal */
export declare const UpdateClassStatus$outboundSchema: z.ZodNativeEnum<typeof UpdateClassStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassStatus$ {
    /** @deprecated use `UpdateClassStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `UpdateClassStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const UpdateClassClassType$inboundSchema: z.ZodNativeEnum<typeof UpdateClassClassType>;
/** @internal */
export declare const UpdateClassClassType$outboundSchema: z.ZodNativeEnum<typeof UpdateClassClassType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassClassType$ {
    /** @deprecated use `UpdateClassClassType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Homeroom: "homeroom";
        readonly Scheduled: "scheduled";
    }>;
    /** @deprecated use `UpdateClassClassType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Homeroom: "homeroom";
        readonly Scheduled: "scheduled";
    }>;
}
/** @internal */
export declare const UpdateClassResource$inboundSchema: z.ZodType<UpdateClassResource, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateClassResource$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateClassResource$outboundSchema: z.ZodType<UpdateClassResource$Outbound, z.ZodTypeDef, UpdateClassResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassResource$ {
    /** @deprecated use `UpdateClassResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateClassResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateClassResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateClassResource$Outbound, z.ZodTypeDef, UpdateClassResource>;
    /** @deprecated use `UpdateClassResource$Outbound` instead. */
    type Outbound = UpdateClassResource$Outbound;
}
export declare function updateClassResourceToJSON(updateClassResource: UpdateClassResource): string;
export declare function updateClassResourceFromJSON(jsonString: string): SafeParseResult<UpdateClassResource, SDKValidationError>;
/** @internal */
export declare const UpdateClassTerm$inboundSchema: z.ZodType<UpdateClassTerm, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateClassTerm$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const UpdateClassTerm$outboundSchema: z.ZodType<UpdateClassTerm$Outbound, z.ZodTypeDef, UpdateClassTerm>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassTerm$ {
    /** @deprecated use `UpdateClassTerm$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateClassTerm, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateClassTerm$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateClassTerm$Outbound, z.ZodTypeDef, UpdateClassTerm>;
    /** @deprecated use `UpdateClassTerm$Outbound` instead. */
    type Outbound = UpdateClassTerm$Outbound;
}
export declare function updateClassTermToJSON(updateClassTerm: UpdateClassTerm): string;
export declare function updateClassTermFromJSON(jsonString: string): SafeParseResult<UpdateClassTerm, SDKValidationError>;
/** @internal */
export declare const UpdateClassClass$inboundSchema: z.ZodType<UpdateClassClass, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateClassClass$Outbound = {
    status?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title?: string | undefined;
    classCode?: string | undefined;
    classType?: string | undefined;
    location?: string | undefined;
    grades?: Array<string> | undefined;
    subjects?: Array<string> | undefined;
    subjectCodes?: Array<string> | undefined;
    periods?: Array<string> | undefined;
    resources?: Array<UpdateClassResource$Outbound> | undefined;
    terms?: Array<UpdateClassTerm$Outbound> | undefined;
};
/** @internal */
export declare const UpdateClassClass$outboundSchema: z.ZodType<UpdateClassClass$Outbound, z.ZodTypeDef, UpdateClassClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassClass$ {
    /** @deprecated use `UpdateClassClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateClassClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateClassClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateClassClass$Outbound, z.ZodTypeDef, UpdateClassClass>;
    /** @deprecated use `UpdateClassClass$Outbound` instead. */
    type Outbound = UpdateClassClass$Outbound;
}
export declare function updateClassClassToJSON(updateClassClass: UpdateClassClass): string;
export declare function updateClassClassFromJSON(jsonString: string): SafeParseResult<UpdateClassClass, SDKValidationError>;
/** @internal */
export declare const UpdateClassRequestBody$inboundSchema: z.ZodType<UpdateClassRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateClassRequestBody$Outbound = {
    class: UpdateClassClass$Outbound;
};
/** @internal */
export declare const UpdateClassRequestBody$outboundSchema: z.ZodType<UpdateClassRequestBody$Outbound, z.ZodTypeDef, UpdateClassRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassRequestBody$ {
    /** @deprecated use `UpdateClassRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateClassRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateClassRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateClassRequestBody$Outbound, z.ZodTypeDef, UpdateClassRequestBody>;
    /** @deprecated use `UpdateClassRequestBody$Outbound` instead. */
    type Outbound = UpdateClassRequestBody$Outbound;
}
export declare function updateClassRequestBodyToJSON(updateClassRequestBody: UpdateClassRequestBody): string;
export declare function updateClassRequestBodyFromJSON(jsonString: string): SafeParseResult<UpdateClassRequestBody, SDKValidationError>;
/** @internal */
export declare const UpdateClassRequest$inboundSchema: z.ZodType<UpdateClassRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateClassRequest$Outbound = {
    sourcedId: string;
    RequestBody?: UpdateClassRequestBody$Outbound | undefined;
};
/** @internal */
export declare const UpdateClassRequest$outboundSchema: z.ZodType<UpdateClassRequest$Outbound, z.ZodTypeDef, UpdateClassRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateClassRequest$ {
    /** @deprecated use `UpdateClassRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateClassRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateClassRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateClassRequest$Outbound, z.ZodTypeDef, UpdateClassRequest>;
    /** @deprecated use `UpdateClassRequest$Outbound` instead. */
    type Outbound = UpdateClassRequest$Outbound;
}
export declare function updateClassRequestToJSON(updateClassRequest: UpdateClassRequest): string;
export declare function updateClassRequestFromJSON(jsonString: string): SafeParseResult<UpdateClassRequest, SDKValidationError>;
//# sourceMappingURL=updateclass.d.ts.map