import type labelImage from "../../widgets/label-image/label-image"; import type React from "react"; /** * A marker placed on the image, representing a location the learner must * label. Used in the `options` section to describe the marker's identity and * correct answers. */ type BaseMarker = { /** * The text label identifying this marker's position on the image. Not * shown directly to the learner; used to correlate options markers with * user input markers. */ label: string; }; /** * A marker as it appears in the user input section. Extends the base marker * with optional correct answers (when present) and the learner's current * selections. */ type UserInputMarker = { /** * The text label identifying this marker's position on the image. * Corresponds to the matching marker in `options.markers`. */ label: string; /** * The set of correct answer labels for this marker, as defined by the * content creator. Only present when the marker has designated correct * answers. A marker without answers is used purely for labeling purposes * and is not scored. */ answers?: string[]; /** * The answer labels the learner has selected for this marker. Each entry * is one of the strings from `options.choices`. May be absent or empty if * the learner has not yet made a selection for this marker. */ selected?: ReadonlyArray; }; /** * JSON describing a label-image widget. Intended for consumption by AI tools. * A label-image widget displays an image with interactive markers placed at * specific locations. The learner selects one or more answer labels from a * shared list of choices for each marker. */ export type LabelImagePromptJSON = { type: "label-image"; /** * The configuration of the widget, set by the content creator. */ options: { /** * The list of answer choices available to the learner. Each marker's * selection must come from this list. */ choices: ReadonlyArray; /** * The URL of the image on which markers are placed. */ imageUrl: string; /** * Accessible alternative text for the image, used in the `alt` * attribute. */ imageAlt: string; /** * The markers placed on the image by the content creator, each * identifying a location the learner must label. */ markers: BaseMarker[]; }; /** * The current state of the widget user interface. Usually represents a * learner's attempt to answer a question. */ userInput: { /** * The learner's selections for each marker, parallel to * `options.markers`. Each element corresponds to the marker at the * same index. */ markers: UserInputMarker[]; }; }; export declare const getPromptJSON: (widgetData: React.ComponentProps) => LabelImagePromptJSON; export {};