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";
/**
 * The type of external service (e.g.: 'edulastic')
 */
export declare const CreateExternalPlacementInputToolProvider: {
    readonly Edulastic: "edulastic";
};
/**
 * The type of external service (e.g.: 'edulastic')
 */
export type CreateExternalPlacementInputToolProvider = ClosedEnum<typeof CreateExternalPlacementInputToolProvider>;
/**
 * Input for creating an external placement test
 */
export type CreateExternalPlacementInput = {
    /**
     * The sourcedId of the Course to create the external test for
     */
    courseId: string;
    /**
     * The title of the external test reference
     */
    lessonTitle?: string | undefined;
    /**
     * The URL to the external test system (e.g., Edulastic, QTI, etc.)
     */
    launchUrl?: string | undefined;
    /**
     * The type of external service (e.g.: 'edulastic')
     */
    toolProvider: CreateExternalPlacementInputToolProvider;
    /**
     * The title of the unit containing the external test
     */
    unitTitle?: string | undefined;
    /**
     * The sourcedId of an existing CourseComponent (unit) for the test. If not provided, a new unit will be created.
     */
    courseComponentSourcedId?: string | undefined;
    /**
     * The ID of the test in the spreadsheet
     */
    vendorId: string;
    /**
     * Description of the external test that will be added to the Resource entity's metadata
     */
    description?: string | undefined;
    /**
     * Additional metadata for the external test resource
     */
    resourceMetadata?: any | undefined;
    lessonType?: "placement" | undefined;
    /**
     * The grades for the resource
     */
    grades: Array<number>;
    /**
     * The courseId to enroll the student in if they fail the placement test (optional)
     */
    courseIdOnFail?: string | null | undefined;
    /**
     * The XP value for the resource
     */
    xp?: number | undefined;
};
/** @internal */
export declare const CreateExternalPlacementInputToolProvider$inboundSchema: z.ZodNativeEnum<typeof CreateExternalPlacementInputToolProvider>;
/** @internal */
export declare const CreateExternalPlacementInputToolProvider$outboundSchema: z.ZodNativeEnum<typeof CreateExternalPlacementInputToolProvider>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateExternalPlacementInputToolProvider$ {
    /** @deprecated use `CreateExternalPlacementInputToolProvider$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Edulastic: "edulastic";
    }>;
    /** @deprecated use `CreateExternalPlacementInputToolProvider$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Edulastic: "edulastic";
    }>;
}
/** @internal */
export declare const CreateExternalPlacementInput$inboundSchema: z.ZodType<CreateExternalPlacementInput, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateExternalPlacementInput$Outbound = {
    courseId: string;
    lessonTitle?: string | undefined;
    launchUrl?: string | undefined;
    toolProvider: string;
    unitTitle?: string | undefined;
    courseComponentSourcedId?: string | undefined;
    vendorId: string;
    description?: string | undefined;
    resourceMetadata?: any | undefined;
    lessonType: "placement";
    grades: Array<number>;
    courseIdOnFail?: string | null | undefined;
    xp?: number | undefined;
};
/** @internal */
export declare const CreateExternalPlacementInput$outboundSchema: z.ZodType<CreateExternalPlacementInput$Outbound, z.ZodTypeDef, CreateExternalPlacementInput>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateExternalPlacementInput$ {
    /** @deprecated use `CreateExternalPlacementInput$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateExternalPlacementInput, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateExternalPlacementInput$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateExternalPlacementInput$Outbound, z.ZodTypeDef, CreateExternalPlacementInput>;
    /** @deprecated use `CreateExternalPlacementInput$Outbound` instead. */
    type Outbound = CreateExternalPlacementInput$Outbound;
}
export declare function createExternalPlacementInputToJSON(createExternalPlacementInput: CreateExternalPlacementInput): string;
export declare function createExternalPlacementInputFromJSON(jsonString: string): SafeParseResult<CreateExternalPlacementInput, SDKValidationError>;
//# sourceMappingURL=createexternalplacementinput.d.ts.map