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<WidgetExports>) => 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<Editor>) => 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<any> | 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<string, WidgetExports>;
export declare const getAllWidgetTypes: () => ReadonlyArray<string>;
/**
 * 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 true if the widget supports the "Graded" toggle in the editor.
 * A widget opts in by setting supportsUngraded: true in its export object.
 */
export declare const supportsUngraded: (type: string) => boolean;
/**
 * 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 {};
