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 CreateExternalTestOutInputToolProvider: {
    readonly Edulastic: "edulastic";
};
/**
 * The type of external service (e.g.: 'edulastic')
 */
export type CreateExternalTestOutInputToolProvider = ClosedEnum<typeof CreateExternalTestOutInputToolProvider>;
/**
 * Input for creating an external test-out lesson
 */
export type CreateExternalTestOutInput = {
    /**
     * 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: CreateExternalTestOutInputToolProvider;
    /**
     * 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?: "test-out" | undefined;
    /**
     * The XP value for the resource
     */
    xp: number;
};
/** @internal */
export declare const CreateExternalTestOutInputToolProvider$inboundSchema: z.ZodNativeEnum<typeof CreateExternalTestOutInputToolProvider>;
/** @internal */
export declare const CreateExternalTestOutInputToolProvider$outboundSchema: z.ZodNativeEnum<typeof CreateExternalTestOutInputToolProvider>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateExternalTestOutInputToolProvider$ {
    /** @deprecated use `CreateExternalTestOutInputToolProvider$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Edulastic: "edulastic";
    }>;
    /** @deprecated use `CreateExternalTestOutInputToolProvider$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Edulastic: "edulastic";
    }>;
}
/** @internal */
export declare const CreateExternalTestOutInput$inboundSchema: z.ZodType<CreateExternalTestOutInput, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateExternalTestOutInput$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: "test-out";
    xp: number;
};
/** @internal */
export declare const CreateExternalTestOutInput$outboundSchema: z.ZodType<CreateExternalTestOutInput$Outbound, z.ZodTypeDef, CreateExternalTestOutInput>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CreateExternalTestOutInput$ {
    /** @deprecated use `CreateExternalTestOutInput$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CreateExternalTestOutInput, z.ZodTypeDef, unknown>;
    /** @deprecated use `CreateExternalTestOutInput$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CreateExternalTestOutInput$Outbound, z.ZodTypeDef, CreateExternalTestOutInput>;
    /** @deprecated use `CreateExternalTestOutInput$Outbound` instead. */
    type Outbound = CreateExternalTestOutInput$Outbound;
}
export declare function createExternalTestOutInputToJSON(createExternalTestOutInput: CreateExternalTestOutInput): string;
export declare function createExternalTestOutInputFromJSON(jsonString: string): SafeParseResult<CreateExternalTestOutInput, SDKValidationError>;
//# sourceMappingURL=createexternaltestoutinput.d.ts.map