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 LineItemStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type LineItemStatus = ClosedEnum<typeof LineItemStatus>;
export type LineItemClass = {
    sourcedId: string;
};
export type LineItemSchool = {
    sourcedId: string;
};
export type LineItemCategory = {
    sourcedId: string;
};
export type GradingPeriod = {
    sourcedId: string;
};
export type LineItemAcademicSession = {
    sourcedId: string;
};
export type LineItemScoreScale = {
    sourcedId: string;
};
export type LineItemLearningObjectiveId = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
export type LineItemLearningObjectiveSet = {
    source: string;
    learningObjectiveIds: Array<LineItemLearningObjectiveId>;
};
/**
 * Represents a line item.
 */
export type LineItem = {
    sourcedId?: string | undefined;
    status: LineItemStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    description?: string | null | undefined;
    assignDate: Date;
    dueDate: Date;
    class: LineItemClass;
    school: LineItemSchool;
    category: LineItemCategory;
    gradingPeriod?: GradingPeriod | null | undefined;
    academicSession?: LineItemAcademicSession | null | undefined;
    scoreScale?: LineItemScoreScale | null | undefined;
    resultValueMin?: number | null | undefined;
    resultValueMax?: number | null | undefined;
    learningObjectiveSet?: Array<LineItemLearningObjectiveSet> | null | undefined;
};
/** @internal */
export declare const LineItemStatus$inboundSchema: z.ZodNativeEnum<typeof LineItemStatus>;
/** @internal */
export declare const LineItemStatus$outboundSchema: z.ZodNativeEnum<typeof LineItemStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemStatus$ {
    /** @deprecated use `LineItemStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `LineItemStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const LineItemClass$inboundSchema: z.ZodType<LineItemClass, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemClass$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const LineItemClass$outboundSchema: z.ZodType<LineItemClass$Outbound, z.ZodTypeDef, LineItemClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemClass$ {
    /** @deprecated use `LineItemClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemClass$Outbound, z.ZodTypeDef, LineItemClass>;
    /** @deprecated use `LineItemClass$Outbound` instead. */
    type Outbound = LineItemClass$Outbound;
}
export declare function lineItemClassToJSON(lineItemClass: LineItemClass): string;
export declare function lineItemClassFromJSON(jsonString: string): SafeParseResult<LineItemClass, SDKValidationError>;
/** @internal */
export declare const LineItemSchool$inboundSchema: z.ZodType<LineItemSchool, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemSchool$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const LineItemSchool$outboundSchema: z.ZodType<LineItemSchool$Outbound, z.ZodTypeDef, LineItemSchool>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemSchool$ {
    /** @deprecated use `LineItemSchool$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemSchool, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemSchool$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemSchool$Outbound, z.ZodTypeDef, LineItemSchool>;
    /** @deprecated use `LineItemSchool$Outbound` instead. */
    type Outbound = LineItemSchool$Outbound;
}
export declare function lineItemSchoolToJSON(lineItemSchool: LineItemSchool): string;
export declare function lineItemSchoolFromJSON(jsonString: string): SafeParseResult<LineItemSchool, SDKValidationError>;
/** @internal */
export declare const LineItemCategory$inboundSchema: z.ZodType<LineItemCategory, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemCategory$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const LineItemCategory$outboundSchema: z.ZodType<LineItemCategory$Outbound, z.ZodTypeDef, LineItemCategory>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemCategory$ {
    /** @deprecated use `LineItemCategory$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemCategory, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemCategory$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemCategory$Outbound, z.ZodTypeDef, LineItemCategory>;
    /** @deprecated use `LineItemCategory$Outbound` instead. */
    type Outbound = LineItemCategory$Outbound;
}
export declare function lineItemCategoryToJSON(lineItemCategory: LineItemCategory): string;
export declare function lineItemCategoryFromJSON(jsonString: string): SafeParseResult<LineItemCategory, SDKValidationError>;
/** @internal */
export declare const GradingPeriod$inboundSchema: z.ZodType<GradingPeriod, z.ZodTypeDef, unknown>;
/** @internal */
export type GradingPeriod$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const GradingPeriod$outboundSchema: z.ZodType<GradingPeriod$Outbound, z.ZodTypeDef, GradingPeriod>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GradingPeriod$ {
    /** @deprecated use `GradingPeriod$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GradingPeriod, z.ZodTypeDef, unknown>;
    /** @deprecated use `GradingPeriod$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GradingPeriod$Outbound, z.ZodTypeDef, GradingPeriod>;
    /** @deprecated use `GradingPeriod$Outbound` instead. */
    type Outbound = GradingPeriod$Outbound;
}
export declare function gradingPeriodToJSON(gradingPeriod: GradingPeriod): string;
export declare function gradingPeriodFromJSON(jsonString: string): SafeParseResult<GradingPeriod, SDKValidationError>;
/** @internal */
export declare const LineItemAcademicSession$inboundSchema: z.ZodType<LineItemAcademicSession, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemAcademicSession$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const LineItemAcademicSession$outboundSchema: z.ZodType<LineItemAcademicSession$Outbound, z.ZodTypeDef, LineItemAcademicSession>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemAcademicSession$ {
    /** @deprecated use `LineItemAcademicSession$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemAcademicSession, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemAcademicSession$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemAcademicSession$Outbound, z.ZodTypeDef, LineItemAcademicSession>;
    /** @deprecated use `LineItemAcademicSession$Outbound` instead. */
    type Outbound = LineItemAcademicSession$Outbound;
}
export declare function lineItemAcademicSessionToJSON(lineItemAcademicSession: LineItemAcademicSession): string;
export declare function lineItemAcademicSessionFromJSON(jsonString: string): SafeParseResult<LineItemAcademicSession, SDKValidationError>;
/** @internal */
export declare const LineItemScoreScale$inboundSchema: z.ZodType<LineItemScoreScale, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemScoreScale$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const LineItemScoreScale$outboundSchema: z.ZodType<LineItemScoreScale$Outbound, z.ZodTypeDef, LineItemScoreScale>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemScoreScale$ {
    /** @deprecated use `LineItemScoreScale$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemScoreScale, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemScoreScale$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemScoreScale$Outbound, z.ZodTypeDef, LineItemScoreScale>;
    /** @deprecated use `LineItemScoreScale$Outbound` instead. */
    type Outbound = LineItemScoreScale$Outbound;
}
export declare function lineItemScoreScaleToJSON(lineItemScoreScale: LineItemScoreScale): string;
export declare function lineItemScoreScaleFromJSON(jsonString: string): SafeParseResult<LineItemScoreScale, SDKValidationError>;
/** @internal */
export declare const LineItemLearningObjectiveId$inboundSchema: z.ZodType<LineItemLearningObjectiveId, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemLearningObjectiveId$Outbound = {
    learningObjectiveId: string;
    score?: number | undefined;
    textScore?: string | undefined;
};
/** @internal */
export declare const LineItemLearningObjectiveId$outboundSchema: z.ZodType<LineItemLearningObjectiveId$Outbound, z.ZodTypeDef, LineItemLearningObjectiveId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemLearningObjectiveId$ {
    /** @deprecated use `LineItemLearningObjectiveId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemLearningObjectiveId, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemLearningObjectiveId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemLearningObjectiveId$Outbound, z.ZodTypeDef, LineItemLearningObjectiveId>;
    /** @deprecated use `LineItemLearningObjectiveId$Outbound` instead. */
    type Outbound = LineItemLearningObjectiveId$Outbound;
}
export declare function lineItemLearningObjectiveIdToJSON(lineItemLearningObjectiveId: LineItemLearningObjectiveId): string;
export declare function lineItemLearningObjectiveIdFromJSON(jsonString: string): SafeParseResult<LineItemLearningObjectiveId, SDKValidationError>;
/** @internal */
export declare const LineItemLearningObjectiveSet$inboundSchema: z.ZodType<LineItemLearningObjectiveSet, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItemLearningObjectiveSet$Outbound = {
    source: string;
    learningObjectiveIds: Array<LineItemLearningObjectiveId$Outbound>;
};
/** @internal */
export declare const LineItemLearningObjectiveSet$outboundSchema: z.ZodType<LineItemLearningObjectiveSet$Outbound, z.ZodTypeDef, LineItemLearningObjectiveSet>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItemLearningObjectiveSet$ {
    /** @deprecated use `LineItemLearningObjectiveSet$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItemLearningObjectiveSet, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItemLearningObjectiveSet$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItemLearningObjectiveSet$Outbound, z.ZodTypeDef, LineItemLearningObjectiveSet>;
    /** @deprecated use `LineItemLearningObjectiveSet$Outbound` instead. */
    type Outbound = LineItemLearningObjectiveSet$Outbound;
}
export declare function lineItemLearningObjectiveSetToJSON(lineItemLearningObjectiveSet: LineItemLearningObjectiveSet): string;
export declare function lineItemLearningObjectiveSetFromJSON(jsonString: string): SafeParseResult<LineItemLearningObjectiveSet, SDKValidationError>;
/** @internal */
export declare const LineItem$inboundSchema: z.ZodType<LineItem, z.ZodTypeDef, unknown>;
/** @internal */
export type LineItem$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    description?: string | null | undefined;
    assignDate: string;
    dueDate: string;
    class: LineItemClass$Outbound;
    school: LineItemSchool$Outbound;
    category: LineItemCategory$Outbound;
    gradingPeriod?: GradingPeriod$Outbound | null | undefined;
    academicSession?: LineItemAcademicSession$Outbound | null | undefined;
    scoreScale?: LineItemScoreScale$Outbound | null | undefined;
    resultValueMin?: number | null | undefined;
    resultValueMax?: number | null | undefined;
    learningObjectiveSet?: Array<LineItemLearningObjectiveSet$Outbound> | null | undefined;
};
/** @internal */
export declare const LineItem$outboundSchema: z.ZodType<LineItem$Outbound, z.ZodTypeDef, LineItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LineItem$ {
    /** @deprecated use `LineItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LineItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `LineItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LineItem$Outbound, z.ZodTypeDef, LineItem>;
    /** @deprecated use `LineItem$Outbound` instead. */
    type Outbound = LineItem$Outbound;
}
export declare function lineItemToJSON(lineItem: LineItem): string;
export declare function lineItemFromJSON(jsonString: string): SafeParseResult<LineItem, SDKValidationError>;
//# sourceMappingURL=lineitem.d.ts.map