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 type GetTeacherRequest = {
    /**
     * The sourcedId of the teacher
     */
    sourcedId: string;
};
export declare const GetTeacherStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetTeacherStatus = ClosedEnum<typeof GetTeacherStatus>;
export type GetTeacherUserId = {
    type: string;
    identifier: string;
};
export declare const GetTeacherRoleType: {
    readonly Primary: "primary";
    readonly Secondary: "secondary";
};
export type GetTeacherRoleType = ClosedEnum<typeof GetTeacherRoleType>;
export declare const GetTeacherRoleEnum: {
    readonly Administrator: "administrator";
    readonly Aide: "aide";
    readonly Guardian: "guardian";
    readonly Parent: "parent";
    readonly Proctor: "proctor";
    readonly Relative: "relative";
    readonly Student: "student";
    readonly Teacher: "teacher";
};
export type GetTeacherRoleEnum = ClosedEnum<typeof GetTeacherRoleEnum>;
export type GetTeacherOrg = {
    href: string;
    sourcedId: string;
    type: string;
};
export type GetTeacherRole = {
    roleType: GetTeacherRoleType;
    role: GetTeacherRoleEnum;
    org: GetTeacherOrg;
    userProfile?: string | undefined;
    beginDate: string | null;
    endDate: string | null;
};
export declare const GetTeacherType: {
    readonly AcademicSession: "academicSession";
    readonly AssessmentLineItem: "assessmentLineItem";
    readonly Category: "category";
    readonly Class: "class";
    readonly Course: "course";
    readonly Demographics: "demographics";
    readonly Enrollment: "enrollment";
    readonly GradingPeriod: "gradingPeriod";
    readonly LineItem: "lineItem";
    readonly Org: "org";
    readonly Resource: "resource";
    readonly Result: "result";
    readonly ScoreScale: "scoreScale";
    readonly Student: "student";
    readonly Teacher: "teacher";
    readonly Term: "term";
    readonly User: "user";
    readonly ComponentResource: "componentResource";
    readonly CourseComponent: "courseComponent";
};
export type GetTeacherType = ClosedEnum<typeof GetTeacherType>;
export type GetTeacherAgent = {
    href: string;
    sourcedId: string;
    type: GetTeacherType;
};
export type GetTeacherPrimaryOrg = {
    href: string;
    sourcedId: string;
    type: string;
};
export type GetTeacherUser = {
    sourcedId: string;
    status: GetTeacherStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    userMasterIdentifier?: string | null | undefined;
    username?: string | null | undefined;
    userIds?: Array<GetTeacherUserId> | undefined;
    enabledUser: boolean;
    givenName: string;
    familyName: string;
    middleName?: string | null | undefined;
    roles: Array<GetTeacherRole>;
    agents: Array<GetTeacherAgent>;
    primaryOrg?: GetTeacherPrimaryOrg | undefined;
    email?: string | null | undefined;
    preferredFirstName?: string | null | undefined;
    preferredMiddleName?: string | null | undefined;
    preferredLastName?: string | null | undefined;
    pronouns?: string | null | undefined;
    grades?: Array<string> | undefined;
    password?: string | null | undefined;
    sms?: string | null | undefined;
    phone?: string | null | undefined;
};
/**
 * Successful response with the teacher
 */
export type GetTeacherResponse = {
    user: GetTeacherUser;
};
/** @internal */
export declare const GetTeacherRequest$inboundSchema: z.ZodType<GetTeacherRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherRequest$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetTeacherRequest$outboundSchema: z.ZodType<GetTeacherRequest$Outbound, z.ZodTypeDef, GetTeacherRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherRequest$ {
    /** @deprecated use `GetTeacherRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherRequest$Outbound, z.ZodTypeDef, GetTeacherRequest>;
    /** @deprecated use `GetTeacherRequest$Outbound` instead. */
    type Outbound = GetTeacherRequest$Outbound;
}
export declare function getTeacherRequestToJSON(getTeacherRequest: GetTeacherRequest): string;
export declare function getTeacherRequestFromJSON(jsonString: string): SafeParseResult<GetTeacherRequest, SDKValidationError>;
/** @internal */
export declare const GetTeacherStatus$inboundSchema: z.ZodNativeEnum<typeof GetTeacherStatus>;
/** @internal */
export declare const GetTeacherStatus$outboundSchema: z.ZodNativeEnum<typeof GetTeacherStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherStatus$ {
    /** @deprecated use `GetTeacherStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetTeacherStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetTeacherUserId$inboundSchema: z.ZodType<GetTeacherUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherUserId$Outbound = {
    type: string;
    identifier: string;
};
/** @internal */
export declare const GetTeacherUserId$outboundSchema: z.ZodType<GetTeacherUserId$Outbound, z.ZodTypeDef, GetTeacherUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherUserId$ {
    /** @deprecated use `GetTeacherUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherUserId$Outbound, z.ZodTypeDef, GetTeacherUserId>;
    /** @deprecated use `GetTeacherUserId$Outbound` instead. */
    type Outbound = GetTeacherUserId$Outbound;
}
export declare function getTeacherUserIdToJSON(getTeacherUserId: GetTeacherUserId): string;
export declare function getTeacherUserIdFromJSON(jsonString: string): SafeParseResult<GetTeacherUserId, SDKValidationError>;
/** @internal */
export declare const GetTeacherRoleType$inboundSchema: z.ZodNativeEnum<typeof GetTeacherRoleType>;
/** @internal */
export declare const GetTeacherRoleType$outboundSchema: z.ZodNativeEnum<typeof GetTeacherRoleType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherRoleType$ {
    /** @deprecated use `GetTeacherRoleType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Primary: "primary";
        readonly Secondary: "secondary";
    }>;
    /** @deprecated use `GetTeacherRoleType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Primary: "primary";
        readonly Secondary: "secondary";
    }>;
}
/** @internal */
export declare const GetTeacherRoleEnum$inboundSchema: z.ZodNativeEnum<typeof GetTeacherRoleEnum>;
/** @internal */
export declare const GetTeacherRoleEnum$outboundSchema: z.ZodNativeEnum<typeof GetTeacherRoleEnum>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherRoleEnum$ {
    /** @deprecated use `GetTeacherRoleEnum$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Aide: "aide";
        readonly Guardian: "guardian";
        readonly Parent: "parent";
        readonly Proctor: "proctor";
        readonly Relative: "relative";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
    /** @deprecated use `GetTeacherRoleEnum$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Administrator: "administrator";
        readonly Aide: "aide";
        readonly Guardian: "guardian";
        readonly Parent: "parent";
        readonly Proctor: "proctor";
        readonly Relative: "relative";
        readonly Student: "student";
        readonly Teacher: "teacher";
    }>;
}
/** @internal */
export declare const GetTeacherOrg$inboundSchema: z.ZodType<GetTeacherOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherOrg$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetTeacherOrg$outboundSchema: z.ZodType<GetTeacherOrg$Outbound, z.ZodTypeDef, GetTeacherOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherOrg$ {
    /** @deprecated use `GetTeacherOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherOrg$Outbound, z.ZodTypeDef, GetTeacherOrg>;
    /** @deprecated use `GetTeacherOrg$Outbound` instead. */
    type Outbound = GetTeacherOrg$Outbound;
}
export declare function getTeacherOrgToJSON(getTeacherOrg: GetTeacherOrg): string;
export declare function getTeacherOrgFromJSON(jsonString: string): SafeParseResult<GetTeacherOrg, SDKValidationError>;
/** @internal */
export declare const GetTeacherRole$inboundSchema: z.ZodType<GetTeacherRole, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherRole$Outbound = {
    roleType: string;
    role: string;
    org: GetTeacherOrg$Outbound;
    userProfile?: string | undefined;
    beginDate: string | null;
    endDate: string | null;
};
/** @internal */
export declare const GetTeacherRole$outboundSchema: z.ZodType<GetTeacherRole$Outbound, z.ZodTypeDef, GetTeacherRole>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherRole$ {
    /** @deprecated use `GetTeacherRole$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherRole, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherRole$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherRole$Outbound, z.ZodTypeDef, GetTeacherRole>;
    /** @deprecated use `GetTeacherRole$Outbound` instead. */
    type Outbound = GetTeacherRole$Outbound;
}
export declare function getTeacherRoleToJSON(getTeacherRole: GetTeacherRole): string;
export declare function getTeacherRoleFromJSON(jsonString: string): SafeParseResult<GetTeacherRole, SDKValidationError>;
/** @internal */
export declare const GetTeacherType$inboundSchema: z.ZodNativeEnum<typeof GetTeacherType>;
/** @internal */
export declare const GetTeacherType$outboundSchema: z.ZodNativeEnum<typeof GetTeacherType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherType$ {
    /** @deprecated use `GetTeacherType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly AcademicSession: "academicSession";
        readonly AssessmentLineItem: "assessmentLineItem";
        readonly Category: "category";
        readonly Class: "class";
        readonly Course: "course";
        readonly Demographics: "demographics";
        readonly Enrollment: "enrollment";
        readonly GradingPeriod: "gradingPeriod";
        readonly LineItem: "lineItem";
        readonly Org: "org";
        readonly Resource: "resource";
        readonly Result: "result";
        readonly ScoreScale: "scoreScale";
        readonly Student: "student";
        readonly Teacher: "teacher";
        readonly Term: "term";
        readonly User: "user";
        readonly ComponentResource: "componentResource";
        readonly CourseComponent: "courseComponent";
    }>;
    /** @deprecated use `GetTeacherType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly AcademicSession: "academicSession";
        readonly AssessmentLineItem: "assessmentLineItem";
        readonly Category: "category";
        readonly Class: "class";
        readonly Course: "course";
        readonly Demographics: "demographics";
        readonly Enrollment: "enrollment";
        readonly GradingPeriod: "gradingPeriod";
        readonly LineItem: "lineItem";
        readonly Org: "org";
        readonly Resource: "resource";
        readonly Result: "result";
        readonly ScoreScale: "scoreScale";
        readonly Student: "student";
        readonly Teacher: "teacher";
        readonly Term: "term";
        readonly User: "user";
        readonly ComponentResource: "componentResource";
        readonly CourseComponent: "courseComponent";
    }>;
}
/** @internal */
export declare const GetTeacherAgent$inboundSchema: z.ZodType<GetTeacherAgent, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherAgent$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetTeacherAgent$outboundSchema: z.ZodType<GetTeacherAgent$Outbound, z.ZodTypeDef, GetTeacherAgent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherAgent$ {
    /** @deprecated use `GetTeacherAgent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherAgent, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherAgent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherAgent$Outbound, z.ZodTypeDef, GetTeacherAgent>;
    /** @deprecated use `GetTeacherAgent$Outbound` instead. */
    type Outbound = GetTeacherAgent$Outbound;
}
export declare function getTeacherAgentToJSON(getTeacherAgent: GetTeacherAgent): string;
export declare function getTeacherAgentFromJSON(jsonString: string): SafeParseResult<GetTeacherAgent, SDKValidationError>;
/** @internal */
export declare const GetTeacherPrimaryOrg$inboundSchema: z.ZodType<GetTeacherPrimaryOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherPrimaryOrg$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetTeacherPrimaryOrg$outboundSchema: z.ZodType<GetTeacherPrimaryOrg$Outbound, z.ZodTypeDef, GetTeacherPrimaryOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherPrimaryOrg$ {
    /** @deprecated use `GetTeacherPrimaryOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherPrimaryOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherPrimaryOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherPrimaryOrg$Outbound, z.ZodTypeDef, GetTeacherPrimaryOrg>;
    /** @deprecated use `GetTeacherPrimaryOrg$Outbound` instead. */
    type Outbound = GetTeacherPrimaryOrg$Outbound;
}
export declare function getTeacherPrimaryOrgToJSON(getTeacherPrimaryOrg: GetTeacherPrimaryOrg): string;
export declare function getTeacherPrimaryOrgFromJSON(jsonString: string): SafeParseResult<GetTeacherPrimaryOrg, SDKValidationError>;
/** @internal */
export declare const GetTeacherUser$inboundSchema: z.ZodType<GetTeacherUser, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherUser$Outbound = {
    sourcedId: string;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    userMasterIdentifier?: string | null | undefined;
    username?: string | null | undefined;
    userIds?: Array<GetTeacherUserId$Outbound> | undefined;
    enabledUser: boolean;
    givenName: string;
    familyName: string;
    middleName?: string | null | undefined;
    roles: Array<GetTeacherRole$Outbound>;
    agents: Array<GetTeacherAgent$Outbound>;
    primaryOrg?: GetTeacherPrimaryOrg$Outbound | undefined;
    email?: string | null | undefined;
    preferredFirstName?: string | null | undefined;
    preferredMiddleName?: string | null | undefined;
    preferredLastName?: string | null | undefined;
    pronouns?: string | null | undefined;
    grades?: Array<string> | undefined;
    password?: string | null | undefined;
    sms?: string | null | undefined;
    phone?: string | null | undefined;
};
/** @internal */
export declare const GetTeacherUser$outboundSchema: z.ZodType<GetTeacherUser$Outbound, z.ZodTypeDef, GetTeacherUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherUser$ {
    /** @deprecated use `GetTeacherUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherUser$Outbound, z.ZodTypeDef, GetTeacherUser>;
    /** @deprecated use `GetTeacherUser$Outbound` instead. */
    type Outbound = GetTeacherUser$Outbound;
}
export declare function getTeacherUserToJSON(getTeacherUser: GetTeacherUser): string;
export declare function getTeacherUserFromJSON(jsonString: string): SafeParseResult<GetTeacherUser, SDKValidationError>;
/** @internal */
export declare const GetTeacherResponse$inboundSchema: z.ZodType<GetTeacherResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetTeacherResponse$Outbound = {
    user: GetTeacherUser$Outbound;
};
/** @internal */
export declare const GetTeacherResponse$outboundSchema: z.ZodType<GetTeacherResponse$Outbound, z.ZodTypeDef, GetTeacherResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetTeacherResponse$ {
    /** @deprecated use `GetTeacherResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetTeacherResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetTeacherResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetTeacherResponse$Outbound, z.ZodTypeDef, GetTeacherResponse>;
    /** @deprecated use `GetTeacherResponse$Outbound` instead. */
    type Outbound = GetTeacherResponse$Outbound;
}
export declare function getTeacherResponseToJSON(getTeacherResponse: GetTeacherResponse): string;
export declare function getTeacherResponseFromJSON(jsonString: string): SafeParseResult<GetTeacherResponse, SDKValidationError>;
//# sourceMappingURL=getteacher.d.ts.map