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";
import { LearningObjectiveSet, LearningObjectiveSet$Outbound } from "./learningobjectiveset.js";
export declare const AssessmentLineItemStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type AssessmentLineItemStatus = ClosedEnum<typeof AssessmentLineItemStatus>;
export type Class = {
    sourcedId: string;
};
/**
 * Represents a parent assessment line item.
 */
export type ParentAssessmentLineItem = {
    sourcedId: string;
};
/**
 * Represents a score scale.
 */
export type AssessmentLineItemScoreScale = {
    sourcedId: string;
};
/**
 * Reference to the Component that this assessment line item is associated with.
 */
export type Component = {
    sourcedId: string;
};
/**
 * Reference to the Component Resource that this assessment line item is associated with.
 */
export type AssessmentLineItemComponentResource = {
    sourcedId: string;
};
/**
 * Represents an assessment line item.
 */
export type AssessmentLineItem = {
    sourcedId?: string | undefined;
    status: AssessmentLineItemStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    description?: string | null | undefined;
    class?: Class | null | undefined;
    /**
     * Represents a parent assessment line item.
     */
    parentAssessmentLineItem?: ParentAssessmentLineItem | null | undefined;
    /**
     * Represents a score scale.
     */
    scoreScale?: AssessmentLineItemScoreScale | null | undefined;
    resultValueMin?: number | null | undefined;
    resultValueMax?: number | null | undefined;
    /**
     * Reference to the Component that this assessment line item is associated with.
     */
    component?: Component | null | undefined;
    /**
     * Reference to the Component Resource that this assessment line item is associated with.
     */
    componentResource?: AssessmentLineItemComponentResource | null | undefined;
    /**
     * Represents a learning objective set.
     */
    learningObjectiveSet?: Array<LearningObjectiveSet> | null | undefined;
};
/** @internal */
export declare const AssessmentLineItemStatus$inboundSchema: z.ZodNativeEnum<typeof AssessmentLineItemStatus>;
/** @internal */
export declare const AssessmentLineItemStatus$outboundSchema: z.ZodNativeEnum<typeof AssessmentLineItemStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItemStatus$ {
    /** @deprecated use `AssessmentLineItemStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `AssessmentLineItemStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const Class$inboundSchema: z.ZodType<Class, z.ZodTypeDef, unknown>;
/** @internal */
export type Class$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const Class$outboundSchema: z.ZodType<Class$Outbound, z.ZodTypeDef, Class>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Class$ {
    /** @deprecated use `Class$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Class, z.ZodTypeDef, unknown>;
    /** @deprecated use `Class$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Class$Outbound, z.ZodTypeDef, Class>;
    /** @deprecated use `Class$Outbound` instead. */
    type Outbound = Class$Outbound;
}
export declare function classToJSON(value: Class): string;
export declare function classFromJSON(jsonString: string): SafeParseResult<Class, SDKValidationError>;
/** @internal */
export declare const ParentAssessmentLineItem$inboundSchema: z.ZodType<ParentAssessmentLineItem, z.ZodTypeDef, unknown>;
/** @internal */
export type ParentAssessmentLineItem$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ParentAssessmentLineItem$outboundSchema: z.ZodType<ParentAssessmentLineItem$Outbound, z.ZodTypeDef, ParentAssessmentLineItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ParentAssessmentLineItem$ {
    /** @deprecated use `ParentAssessmentLineItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ParentAssessmentLineItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `ParentAssessmentLineItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ParentAssessmentLineItem$Outbound, z.ZodTypeDef, ParentAssessmentLineItem>;
    /** @deprecated use `ParentAssessmentLineItem$Outbound` instead. */
    type Outbound = ParentAssessmentLineItem$Outbound;
}
export declare function parentAssessmentLineItemToJSON(parentAssessmentLineItem: ParentAssessmentLineItem): string;
export declare function parentAssessmentLineItemFromJSON(jsonString: string): SafeParseResult<ParentAssessmentLineItem, SDKValidationError>;
/** @internal */
export declare const AssessmentLineItemScoreScale$inboundSchema: z.ZodType<AssessmentLineItemScoreScale, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentLineItemScoreScale$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentLineItemScoreScale$outboundSchema: z.ZodType<AssessmentLineItemScoreScale$Outbound, z.ZodTypeDef, AssessmentLineItemScoreScale>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItemScoreScale$ {
    /** @deprecated use `AssessmentLineItemScoreScale$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentLineItemScoreScale, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentLineItemScoreScale$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentLineItemScoreScale$Outbound, z.ZodTypeDef, AssessmentLineItemScoreScale>;
    /** @deprecated use `AssessmentLineItemScoreScale$Outbound` instead. */
    type Outbound = AssessmentLineItemScoreScale$Outbound;
}
export declare function assessmentLineItemScoreScaleToJSON(assessmentLineItemScoreScale: AssessmentLineItemScoreScale): string;
export declare function assessmentLineItemScoreScaleFromJSON(jsonString: string): SafeParseResult<AssessmentLineItemScoreScale, SDKValidationError>;
/** @internal */
export declare const Component$inboundSchema: z.ZodType<Component, z.ZodTypeDef, unknown>;
/** @internal */
export type Component$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const Component$outboundSchema: z.ZodType<Component$Outbound, z.ZodTypeDef, Component>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Component$ {
    /** @deprecated use `Component$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Component, z.ZodTypeDef, unknown>;
    /** @deprecated use `Component$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Component$Outbound, z.ZodTypeDef, Component>;
    /** @deprecated use `Component$Outbound` instead. */
    type Outbound = Component$Outbound;
}
export declare function componentToJSON(component: Component): string;
export declare function componentFromJSON(jsonString: string): SafeParseResult<Component, SDKValidationError>;
/** @internal */
export declare const AssessmentLineItemComponentResource$inboundSchema: z.ZodType<AssessmentLineItemComponentResource, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentLineItemComponentResource$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentLineItemComponentResource$outboundSchema: z.ZodType<AssessmentLineItemComponentResource$Outbound, z.ZodTypeDef, AssessmentLineItemComponentResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItemComponentResource$ {
    /** @deprecated use `AssessmentLineItemComponentResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentLineItemComponentResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentLineItemComponentResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentLineItemComponentResource$Outbound, z.ZodTypeDef, AssessmentLineItemComponentResource>;
    /** @deprecated use `AssessmentLineItemComponentResource$Outbound` instead. */
    type Outbound = AssessmentLineItemComponentResource$Outbound;
}
export declare function assessmentLineItemComponentResourceToJSON(assessmentLineItemComponentResource: AssessmentLineItemComponentResource): string;
export declare function assessmentLineItemComponentResourceFromJSON(jsonString: string): SafeParseResult<AssessmentLineItemComponentResource, SDKValidationError>;
/** @internal */
export declare const AssessmentLineItem$inboundSchema: z.ZodType<AssessmentLineItem, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentLineItem$Outbound = {
    sourcedId?: string | undefined;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    title: string;
    description?: string | null | undefined;
    class?: Class$Outbound | null | undefined;
    parentAssessmentLineItem?: ParentAssessmentLineItem$Outbound | null | undefined;
    scoreScale?: AssessmentLineItemScoreScale$Outbound | null | undefined;
    resultValueMin?: number | null | undefined;
    resultValueMax?: number | null | undefined;
    component?: Component$Outbound | null | undefined;
    componentResource?: AssessmentLineItemComponentResource$Outbound | null | undefined;
    learningObjectiveSet?: Array<LearningObjectiveSet$Outbound> | null | undefined;
};
/** @internal */
export declare const AssessmentLineItem$outboundSchema: z.ZodType<AssessmentLineItem$Outbound, z.ZodTypeDef, AssessmentLineItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItem$ {
    /** @deprecated use `AssessmentLineItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentLineItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentLineItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentLineItem$Outbound, z.ZodTypeDef, AssessmentLineItem>;
    /** @deprecated use `AssessmentLineItem$Outbound` instead. */
    type Outbound = AssessmentLineItem$Outbound;
}
export declare function assessmentLineItemToJSON(assessmentLineItem: AssessmentLineItem): string;
export declare function assessmentLineItemFromJSON(jsonString: string): SafeParseResult<AssessmentLineItem, SDKValidationError>;
//# sourceMappingURL=assessmentlineitem.d.ts.map