import type { Tracking, WidgetExports } from "./types"; import type { Version } from "@khanacademy/perseus-core"; import type * as React from "react"; type Editor = any; export declare const registerWidget: (type: string, widget: WidgetExports) => void; export declare const registerWidgets: (widgetArr: ReadonlyArray) => void; /** * * @param type - the widget that you are trying to replace * @param replacementType - the type of the widget that takes its place * * e.g. replaceWidget("transformer", "deprecated-standin") will make it so the * transformer widget is replaced by the always correct widget */ export declare const replaceWidget: (type: string, replacementType: string) => void; export declare const replaceDeprecatedWidgets: () => void; export declare const registerEditors: (editorsToRegister: ReadonlyArray) => void; /** * * @param type - the widget that you are trying to replace * @param replacementType - the type of the widget that takes its place * * e.g. replaceEditor("transformer", "deprecated-standin") will make it so the * transformer widget is replaced by the deprecated stand-in widget */ export declare const replaceEditor: (type: string, replacementType: string) => void; export declare const replaceDeprecatedEditors: () => void; export declare const getWidget: (type: string) => React.ComponentType | null | undefined; export declare const getWidgetExport: (type: string) => WidgetExports | null; export declare const getEditor: (type: string) => Editor | null; export declare const getVersion: (type: string) => Version | undefined; export declare const getVersionVector: () => { [key: string]: Version; }; export declare const getPublicWidgets: () => Record; export declare const getAllWidgetTypes: () => ReadonlyArray; /** * Handling for static mode for widgets that support it. */ /** * Returns true if the widget supports static mode. * A widget implicitly supports static mode if it exports a * getCorrectUserInput function. */ export declare const supportsStaticMode: (type: string) => boolean | undefined; /** * Returns the tracking option for the widget. The default is "", * which means simply to track interactions once. The other available * option is "all" which means to track all interactions. */ export declare const getTracking: (type: string) => Tracking; /** * Returns true if this widget can include lintable markdown text * and supports a highlightLint prop, or false otherwise. */ export declare const isLintable: (type: string) => boolean; export {};