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 CreateClassStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type CreateClassStatus = ClosedEnum<typeof CreateClassStatus>;
export declare const CreateClassClassType: {
    readonly Homeroom: "homeroom";
    readonly Scheduled: "scheduled";
};
export type CreateClassClassType = ClosedEnum<typeof CreateClassClassType>;
export type CreateClassCourse = {
    sourcedId: string;
};
export type CreateClassOrg = {
    sourcedId: string;
};
export type CreateClassResource = {
    sourcedId: string;
};
export type CreateClassTerm = {
    sourcedId: string;
};
export type CreateClassClass = {
    sourcedId?: string | undefined;
    status?: CreateClassStatus | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    classCode?: string | undefined;
    classType?: CreateClassClassType | undefined;
    location?: string | undefined;
    grades?: Array<string> | undefined;
    subjects?: Array<string> | undefined;
    course: CreateClassCourse;
    org: CreateClassOrg;
    subjectCodes?: Array<string> | undefined;
    periods?: Array<string> | undefined;
    resources?: Array<CreateClassResource> | undefined;
    terms: Array<CreateClassTerm>;
};
export type CreateClassRequest = {
    class: CreateClassClass;
};
export type CreateClassSourcedIdPairs = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/**
 * Class successfully created
 */
export type CreateClassResponse = {
    sourcedIdPairs: CreateClassSourcedIdPairs;
};
/** @internal */
export declare const CreateClassStatus$inboundSchema: z.ZodNativeEnum<typeof CreateClassStatus>;
/** @internal */
export declare const CreateClassStatus$outboundSchema: z.ZodNativeEnum<typeof CreateClassStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassStatus$ {
    /** @deprecated use `CreateClassStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `CreateClassStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const CreateClassClassType$inboundSchema: z.ZodNativeEnum<typeof CreateClassClassType>;
/** @internal */
export declare const CreateClassClassType$outboundSchema: z.ZodNativeEnum<typeof CreateClassClassType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassClassType$ {
    /** @deprecated use `CreateClassClassType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Homeroom: "homeroom";
        readonly Scheduled: "scheduled";
    }>;
    /** @deprecated use `CreateClassClassType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Homeroom: "homeroom";
        readonly Scheduled: "scheduled";
    }>;
}
/** @internal */
export declare const CreateClassCourse$inboundSchema: z.ZodType<CreateClassCourse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassCourse$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateClassCourse$outboundSchema: z.ZodType<CreateClassCourse$Outbound, z.ZodTypeDef, CreateClassCourse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassCourse$ {
    /** @deprecated use `CreateClassCourse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassCourse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassCourse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassCourse$Outbound, z.ZodTypeDef, CreateClassCourse>;
    /** @deprecated use `CreateClassCourse$Outbound` instead. */
    type Outbound = CreateClassCourse$Outbound;
}
export declare function createClassCourseToJSON(createClassCourse: CreateClassCourse): string;
export declare function createClassCourseFromJSON(jsonString: string): SafeParseResult<CreateClassCourse, SDKValidationError>;
/** @internal */
export declare const CreateClassOrg$inboundSchema: z.ZodType<CreateClassOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassOrg$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateClassOrg$outboundSchema: z.ZodType<CreateClassOrg$Outbound, z.ZodTypeDef, CreateClassOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassOrg$ {
    /** @deprecated use `CreateClassOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassOrg$Outbound, z.ZodTypeDef, CreateClassOrg>;
    /** @deprecated use `CreateClassOrg$Outbound` instead. */
    type Outbound = CreateClassOrg$Outbound;
}
export declare function createClassOrgToJSON(createClassOrg: CreateClassOrg): string;
export declare function createClassOrgFromJSON(jsonString: string): SafeParseResult<CreateClassOrg, SDKValidationError>;
/** @internal */
export declare const CreateClassResource$inboundSchema: z.ZodType<CreateClassResource, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassResource$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateClassResource$outboundSchema: z.ZodType<CreateClassResource$Outbound, z.ZodTypeDef, CreateClassResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassResource$ {
    /** @deprecated use `CreateClassResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassResource$Outbound, z.ZodTypeDef, CreateClassResource>;
    /** @deprecated use `CreateClassResource$Outbound` instead. */
    type Outbound = CreateClassResource$Outbound;
}
export declare function createClassResourceToJSON(createClassResource: CreateClassResource): string;
export declare function createClassResourceFromJSON(jsonString: string): SafeParseResult<CreateClassResource, SDKValidationError>;
/** @internal */
export declare const CreateClassTerm$inboundSchema: z.ZodType<CreateClassTerm, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassTerm$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const CreateClassTerm$outboundSchema: z.ZodType<CreateClassTerm$Outbound, z.ZodTypeDef, CreateClassTerm>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassTerm$ {
    /** @deprecated use `CreateClassTerm$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassTerm, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassTerm$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassTerm$Outbound, z.ZodTypeDef, CreateClassTerm>;
    /** @deprecated use `CreateClassTerm$Outbound` instead. */
    type Outbound = CreateClassTerm$Outbound;
}
export declare function createClassTermToJSON(createClassTerm: CreateClassTerm): string;
export declare function createClassTermFromJSON(jsonString: string): SafeParseResult<CreateClassTerm, SDKValidationError>;
/** @internal */
export declare const CreateClassClass$inboundSchema: z.ZodType<CreateClassClass, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassClass$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    metadata?: {
        [k: string]: any;
    } | undefined;
    title: string;
    classCode?: string | undefined;
    classType?: string | undefined;
    location?: string | undefined;
    grades?: Array<string> | undefined;
    subjects?: Array<string> | undefined;
    course: CreateClassCourse$Outbound;
    org: CreateClassOrg$Outbound;
    subjectCodes?: Array<string> | undefined;
    periods?: Array<string> | undefined;
    resources?: Array<CreateClassResource$Outbound> | undefined;
    terms: Array<CreateClassTerm$Outbound>;
};
/** @internal */
export declare const CreateClassClass$outboundSchema: z.ZodType<CreateClassClass$Outbound, z.ZodTypeDef, CreateClassClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassClass$ {
    /** @deprecated use `CreateClassClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassClass$Outbound, z.ZodTypeDef, CreateClassClass>;
    /** @deprecated use `CreateClassClass$Outbound` instead. */
    type Outbound = CreateClassClass$Outbound;
}
export declare function createClassClassToJSON(createClassClass: CreateClassClass): string;
export declare function createClassClassFromJSON(jsonString: string): SafeParseResult<CreateClassClass, SDKValidationError>;
/** @internal */
export declare const CreateClassRequest$inboundSchema: z.ZodType<CreateClassRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassRequest$Outbound = {
    class: CreateClassClass$Outbound;
};
/** @internal */
export declare const CreateClassRequest$outboundSchema: z.ZodType<CreateClassRequest$Outbound, z.ZodTypeDef, CreateClassRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassRequest$ {
    /** @deprecated use `CreateClassRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassRequest$Outbound, z.ZodTypeDef, CreateClassRequest>;
    /** @deprecated use `CreateClassRequest$Outbound` instead. */
    type Outbound = CreateClassRequest$Outbound;
}
export declare function createClassRequestToJSON(createClassRequest: CreateClassRequest): string;
export declare function createClassRequestFromJSON(jsonString: string): SafeParseResult<CreateClassRequest, SDKValidationError>;
/** @internal */
export declare const CreateClassSourcedIdPairs$inboundSchema: z.ZodType<CreateClassSourcedIdPairs, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassSourcedIdPairs$Outbound = {
    suppliedSourcedId: string;
    allocatedSourcedId: string;
};
/** @internal */
export declare const CreateClassSourcedIdPairs$outboundSchema: z.ZodType<CreateClassSourcedIdPairs$Outbound, z.ZodTypeDef, CreateClassSourcedIdPairs>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassSourcedIdPairs$ {
    /** @deprecated use `CreateClassSourcedIdPairs$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassSourcedIdPairs, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassSourcedIdPairs$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassSourcedIdPairs$Outbound, z.ZodTypeDef, CreateClassSourcedIdPairs>;
    /** @deprecated use `CreateClassSourcedIdPairs$Outbound` instead. */
    type Outbound = CreateClassSourcedIdPairs$Outbound;
}
export declare function createClassSourcedIdPairsToJSON(createClassSourcedIdPairs: CreateClassSourcedIdPairs): string;
export declare function createClassSourcedIdPairsFromJSON(jsonString: string): SafeParseResult<CreateClassSourcedIdPairs, SDKValidationError>;
/** @internal */
export declare const CreateClassResponse$inboundSchema: z.ZodType<CreateClassResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateClassResponse$Outbound = {
    sourcedIdPairs: CreateClassSourcedIdPairs$Outbound;
};
/** @internal */
export declare const CreateClassResponse$outboundSchema: z.ZodType<CreateClassResponse$Outbound, z.ZodTypeDef, CreateClassResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateClassResponse$ {
    /** @deprecated use `CreateClassResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateClassResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateClassResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateClassResponse$Outbound, z.ZodTypeDef, CreateClassResponse>;
    /** @deprecated use `CreateClassResponse$Outbound` instead. */
    type Outbound = CreateClassResponse$Outbound;
}
export declare function createClassResponseToJSON(createClassResponse: CreateClassResponse): string;
export declare function createClassResponseFromJSON(jsonString: string): SafeParseResult<CreateClassResponse, SDKValidationError>;
//# sourceMappingURL=createclass.d.ts.map