import type matcher from "../../widgets/matcher/matcher"; import type React from "react"; /** * JSON describing a matcher widget. Intended for consumption by AI tools. * A matcher displays two columns of items that the learner must match by * dragging cards in the right column to align with their corresponding items * in the left column. */ export type MatcherPromptJSON = { type: "matcher"; /** * The configuration of the widget, set by the content creator. */ options: { /** * Labels for the column headings. Contains exactly 2 values: * the left column label and the right column label. * e.g. `["Concepts", "Things"]` */ labels: ReadonlyArray; /** * The items shown in the left column that the learner must match * against. e.g. `["Fruit", "Color", "Clothes"]` */ left: ReadonlyArray; /** * The draggable cards in the right column that the learner arranges * to match the left column items. e.g. `["Red", "Shirt", "Banana"]` */ right: ReadonlyArray; /** * When true, the items in the left column are draggable and the * learner must put them into the correct order. When false, the left * column is static. */ orderMatters: boolean; }; /** * The current state of the widget user interface. Usually represents a * learner's attempt to answer a question. */ userInput: { /** * The current order of items in the left column. When `orderMatters` * is false, the left column is fixed and only right can be reordered. */ left: ReadonlyArray; /** * The current order of cards in the right column, as arranged by the * learner. Each element corresponds to the left column item at the * same index. */ right: ReadonlyArray; }; }; export type widgetDataPartial = Pick, "userInput" | "labels" | "left" | "right" | "orderMatters">; export declare const getPromptJSON: (widgetData: widgetDataPartial) => MatcherPromptJSON;