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 AssessmentLineItemClass = {
    sourcedId: string;
};
/**
 * Represents a parent assessment line item.
 */
export type AssessmentLineItemParent = {
    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 ComponentResource = {
    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?: AssessmentLineItemClass | null | undefined;
    /**
     * Represents a parent assessment line item.
     */
    parent?: AssessmentLineItemParent | 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?: ComponentResource | 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 AssessmentLineItemClass$inboundSchema: z.ZodType<AssessmentLineItemClass, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentLineItemClass$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentLineItemClass$outboundSchema: z.ZodType<AssessmentLineItemClass$Outbound, z.ZodTypeDef, AssessmentLineItemClass>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItemClass$ {
    /** @deprecated use `AssessmentLineItemClass$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentLineItemClass, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentLineItemClass$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentLineItemClass$Outbound, z.ZodTypeDef, AssessmentLineItemClass>;
    /** @deprecated use `AssessmentLineItemClass$Outbound` instead. */
    type Outbound = AssessmentLineItemClass$Outbound;
}
export declare function assessmentLineItemClassToJSON(assessmentLineItemClass: AssessmentLineItemClass): string;
export declare function assessmentLineItemClassFromJSON(jsonString: string): SafeParseResult<AssessmentLineItemClass, SDKValidationError>;
/** @internal */
export declare const AssessmentLineItemParent$inboundSchema: z.ZodType<AssessmentLineItemParent, z.ZodTypeDef, unknown>;
/** @internal */
export type AssessmentLineItemParent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const AssessmentLineItemParent$outboundSchema: z.ZodType<AssessmentLineItemParent$Outbound, z.ZodTypeDef, AssessmentLineItemParent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssessmentLineItemParent$ {
    /** @deprecated use `AssessmentLineItemParent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssessmentLineItemParent, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssessmentLineItemParent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssessmentLineItemParent$Outbound, z.ZodTypeDef, AssessmentLineItemParent>;
    /** @deprecated use `AssessmentLineItemParent$Outbound` instead. */
    type Outbound = AssessmentLineItemParent$Outbound;
}
export declare function assessmentLineItemParentToJSON(assessmentLineItemParent: AssessmentLineItemParent): string;
export declare function assessmentLineItemParentFromJSON(jsonString: string): SafeParseResult<AssessmentLineItemParent, 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 ComponentResource$inboundSchema: z.ZodType<ComponentResource, z.ZodTypeDef, unknown>;
/** @internal */
export type ComponentResource$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const ComponentResource$outboundSchema: z.ZodType<ComponentResource$Outbound, z.ZodTypeDef, ComponentResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ComponentResource$ {
    /** @deprecated use `ComponentResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ComponentResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `ComponentResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ComponentResource$Outbound, z.ZodTypeDef, ComponentResource>;
    /** @deprecated use `ComponentResource$Outbound` instead. */
    type Outbound = ComponentResource$Outbound;
}
export declare function componentResourceToJSON(componentResource: ComponentResource): string;
export declare function componentResourceFromJSON(jsonString: string): SafeParseResult<ComponentResource, 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?: AssessmentLineItemClass$Outbound | null | undefined;
    parent?: AssessmentLineItemParent$Outbound | null | undefined;
    scoreScale?: AssessmentLineItemScoreScale$Outbound | null | undefined;
    resultValueMin?: number | null | undefined;
    resultValueMax?: number | null | undefined;
    component?: Component$Outbound | null | undefined;
    componentResource?: ComponentResource$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