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 GetStudentRequest = {
    /**
     * The sourcedId of the student
     */
    sourcedId: string;
};
export declare const GetStudentStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type GetStudentStatus = ClosedEnum<typeof GetStudentStatus>;
export type GetStudentUserId = {
    type: string;
    identifier: string;
};
export declare const GetStudentRoleType: {
    readonly Primary: "primary";
    readonly Secondary: "secondary";
};
export type GetStudentRoleType = ClosedEnum<typeof GetStudentRoleType>;
export declare const GetStudentRoleEnum: {
    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 GetStudentRoleEnum = ClosedEnum<typeof GetStudentRoleEnum>;
export type GetStudentOrg = {
    href: string;
    sourcedId: string;
    type: string;
};
export type GetStudentRole = {
    roleType: GetStudentRoleType;
    role: GetStudentRoleEnum;
    org: GetStudentOrg;
    userProfile?: string | undefined;
    beginDate: string | null;
    endDate: string | null;
};
export declare const GetStudentType: {
    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 GetStudentType = ClosedEnum<typeof GetStudentType>;
export type GetStudentAgent = {
    href: string;
    sourcedId: string;
    type: GetStudentType;
};
export type GetStudentPrimaryOrg = {
    href: string;
    sourcedId: string;
    type: string;
};
export type GetStudentUser = {
    sourcedId: string;
    status: GetStudentStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    userMasterIdentifier?: string | null | undefined;
    username?: string | null | undefined;
    userIds?: Array<GetStudentUserId> | undefined;
    enabledUser: boolean;
    givenName: string;
    familyName: string;
    middleName?: string | null | undefined;
    roles: Array<GetStudentRole>;
    agents: Array<GetStudentAgent>;
    primaryOrg?: GetStudentPrimaryOrg | 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 student
 */
export type GetStudentResponse = {
    user: GetStudentUser;
};
/** @internal */
export declare const GetStudentRequest$inboundSchema: z.ZodType<GetStudentRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentRequest$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GetStudentRequest$outboundSchema: z.ZodType<GetStudentRequest$Outbound, z.ZodTypeDef, GetStudentRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentRequest$ {
    /** @deprecated use `GetStudentRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentRequest$Outbound, z.ZodTypeDef, GetStudentRequest>;
    /** @deprecated use `GetStudentRequest$Outbound` instead. */
    type Outbound = GetStudentRequest$Outbound;
}
export declare function getStudentRequestToJSON(getStudentRequest: GetStudentRequest): string;
export declare function getStudentRequestFromJSON(jsonString: string): SafeParseResult<GetStudentRequest, SDKValidationError>;
/** @internal */
export declare const GetStudentStatus$inboundSchema: z.ZodNativeEnum<typeof GetStudentStatus>;
/** @internal */
export declare const GetStudentStatus$outboundSchema: z.ZodNativeEnum<typeof GetStudentStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentStatus$ {
    /** @deprecated use `GetStudentStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `GetStudentStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const GetStudentUserId$inboundSchema: z.ZodType<GetStudentUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentUserId$Outbound = {
    type: string;
    identifier: string;
};
/** @internal */
export declare const GetStudentUserId$outboundSchema: z.ZodType<GetStudentUserId$Outbound, z.ZodTypeDef, GetStudentUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentUserId$ {
    /** @deprecated use `GetStudentUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentUserId$Outbound, z.ZodTypeDef, GetStudentUserId>;
    /** @deprecated use `GetStudentUserId$Outbound` instead. */
    type Outbound = GetStudentUserId$Outbound;
}
export declare function getStudentUserIdToJSON(getStudentUserId: GetStudentUserId): string;
export declare function getStudentUserIdFromJSON(jsonString: string): SafeParseResult<GetStudentUserId, SDKValidationError>;
/** @internal */
export declare const GetStudentRoleType$inboundSchema: z.ZodNativeEnum<typeof GetStudentRoleType>;
/** @internal */
export declare const GetStudentRoleType$outboundSchema: z.ZodNativeEnum<typeof GetStudentRoleType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentRoleType$ {
    /** @deprecated use `GetStudentRoleType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Primary: "primary";
        readonly Secondary: "secondary";
    }>;
    /** @deprecated use `GetStudentRoleType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Primary: "primary";
        readonly Secondary: "secondary";
    }>;
}
/** @internal */
export declare const GetStudentRoleEnum$inboundSchema: z.ZodNativeEnum<typeof GetStudentRoleEnum>;
/** @internal */
export declare const GetStudentRoleEnum$outboundSchema: z.ZodNativeEnum<typeof GetStudentRoleEnum>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentRoleEnum$ {
    /** @deprecated use `GetStudentRoleEnum$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 `GetStudentRoleEnum$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 GetStudentOrg$inboundSchema: z.ZodType<GetStudentOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentOrg$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetStudentOrg$outboundSchema: z.ZodType<GetStudentOrg$Outbound, z.ZodTypeDef, GetStudentOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentOrg$ {
    /** @deprecated use `GetStudentOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentOrg$Outbound, z.ZodTypeDef, GetStudentOrg>;
    /** @deprecated use `GetStudentOrg$Outbound` instead. */
    type Outbound = GetStudentOrg$Outbound;
}
export declare function getStudentOrgToJSON(getStudentOrg: GetStudentOrg): string;
export declare function getStudentOrgFromJSON(jsonString: string): SafeParseResult<GetStudentOrg, SDKValidationError>;
/** @internal */
export declare const GetStudentRole$inboundSchema: z.ZodType<GetStudentRole, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentRole$Outbound = {
    roleType: string;
    role: string;
    org: GetStudentOrg$Outbound;
    userProfile?: string | undefined;
    beginDate: string | null;
    endDate: string | null;
};
/** @internal */
export declare const GetStudentRole$outboundSchema: z.ZodType<GetStudentRole$Outbound, z.ZodTypeDef, GetStudentRole>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentRole$ {
    /** @deprecated use `GetStudentRole$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentRole, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentRole$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentRole$Outbound, z.ZodTypeDef, GetStudentRole>;
    /** @deprecated use `GetStudentRole$Outbound` instead. */
    type Outbound = GetStudentRole$Outbound;
}
export declare function getStudentRoleToJSON(getStudentRole: GetStudentRole): string;
export declare function getStudentRoleFromJSON(jsonString: string): SafeParseResult<GetStudentRole, SDKValidationError>;
/** @internal */
export declare const GetStudentType$inboundSchema: z.ZodNativeEnum<typeof GetStudentType>;
/** @internal */
export declare const GetStudentType$outboundSchema: z.ZodNativeEnum<typeof GetStudentType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentType$ {
    /** @deprecated use `GetStudentType$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 `GetStudentType$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 GetStudentAgent$inboundSchema: z.ZodType<GetStudentAgent, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentAgent$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetStudentAgent$outboundSchema: z.ZodType<GetStudentAgent$Outbound, z.ZodTypeDef, GetStudentAgent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentAgent$ {
    /** @deprecated use `GetStudentAgent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentAgent, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentAgent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentAgent$Outbound, z.ZodTypeDef, GetStudentAgent>;
    /** @deprecated use `GetStudentAgent$Outbound` instead. */
    type Outbound = GetStudentAgent$Outbound;
}
export declare function getStudentAgentToJSON(getStudentAgent: GetStudentAgent): string;
export declare function getStudentAgentFromJSON(jsonString: string): SafeParseResult<GetStudentAgent, SDKValidationError>;
/** @internal */
export declare const GetStudentPrimaryOrg$inboundSchema: z.ZodType<GetStudentPrimaryOrg, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentPrimaryOrg$Outbound = {
    href: string;
    sourcedId: string;
    type: string;
};
/** @internal */
export declare const GetStudentPrimaryOrg$outboundSchema: z.ZodType<GetStudentPrimaryOrg$Outbound, z.ZodTypeDef, GetStudentPrimaryOrg>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentPrimaryOrg$ {
    /** @deprecated use `GetStudentPrimaryOrg$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentPrimaryOrg, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentPrimaryOrg$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentPrimaryOrg$Outbound, z.ZodTypeDef, GetStudentPrimaryOrg>;
    /** @deprecated use `GetStudentPrimaryOrg$Outbound` instead. */
    type Outbound = GetStudentPrimaryOrg$Outbound;
}
export declare function getStudentPrimaryOrgToJSON(getStudentPrimaryOrg: GetStudentPrimaryOrg): string;
export declare function getStudentPrimaryOrgFromJSON(jsonString: string): SafeParseResult<GetStudentPrimaryOrg, SDKValidationError>;
/** @internal */
export declare const GetStudentUser$inboundSchema: z.ZodType<GetStudentUser, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentUser$Outbound = {
    sourcedId: string;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    userMasterIdentifier?: string | null | undefined;
    username?: string | null | undefined;
    userIds?: Array<GetStudentUserId$Outbound> | undefined;
    enabledUser: boolean;
    givenName: string;
    familyName: string;
    middleName?: string | null | undefined;
    roles: Array<GetStudentRole$Outbound>;
    agents: Array<GetStudentAgent$Outbound>;
    primaryOrg?: GetStudentPrimaryOrg$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 GetStudentUser$outboundSchema: z.ZodType<GetStudentUser$Outbound, z.ZodTypeDef, GetStudentUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentUser$ {
    /** @deprecated use `GetStudentUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentUser$Outbound, z.ZodTypeDef, GetStudentUser>;
    /** @deprecated use `GetStudentUser$Outbound` instead. */
    type Outbound = GetStudentUser$Outbound;
}
export declare function getStudentUserToJSON(getStudentUser: GetStudentUser): string;
export declare function getStudentUserFromJSON(jsonString: string): SafeParseResult<GetStudentUser, SDKValidationError>;
/** @internal */
export declare const GetStudentResponse$inboundSchema: z.ZodType<GetStudentResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type GetStudentResponse$Outbound = {
    user: GetStudentUser$Outbound;
};
/** @internal */
export declare const GetStudentResponse$outboundSchema: z.ZodType<GetStudentResponse$Outbound, z.ZodTypeDef, GetStudentResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetStudentResponse$ {
    /** @deprecated use `GetStudentResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetStudentResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetStudentResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetStudentResponse$Outbound, z.ZodTypeDef, GetStudentResponse>;
    /** @deprecated use `GetStudentResponse$Outbound` instead. */
    type Outbound = GetStudentResponse$Outbound;
}
export declare function getStudentResponseToJSON(getStudentResponse: GetStudentResponse): string;
export declare function getStudentResponseFromJSON(jsonString: string): SafeParseResult<GetStudentResponse, SDKValidationError>;
//# sourceMappingURL=getstudent.d.ts.map