import * as React from "react";
import { PerseusI18nContext } from "../../components/i18n-context";
import type { SortableOption } from "../../components/sortable";
import type { WidgetProps, Widget, PerseusDependenciesV2 } from "../../types";
import type { MatcherPromptJSON } from "../../widget-ai-utils/matcher/matcher-ai-utils";
import type { PerseusMatcherWidgetOptions, PerseusMatcherUserInput, MatcherPublicWidgetOptions } from "@khanacademy/perseus-core";
type Props = WidgetProps<PerseusMatcherWidgetOptions, PerseusMatcherUserInput> & {
    dependencies: PerseusDependenciesV2;
};
type DefaultProps = {
    labels: Props["labels"];
    orderMatters: Props["orderMatters"];
    padding: Props["padding"];
    problemNum: Props["problemNum"];
    linterContext: Props["linterContext"];
    userInput: Props["userInput"];
};
type State = {
    leftHeight: number;
    rightHeight: number;
    texRendererLoaded: boolean;
};
export declare class Matcher extends React.Component<Props, State> implements Widget {
    static contextType: React.Context<import("../../components/i18n-context").I18nContextType>;
    context: React.ContextType<typeof PerseusI18nContext>;
    static defaultProps: DefaultProps;
    state: State;
    componentDidMount(): void;
    changeAndTrack: () => void;
    onMeasureLeft: (arg1: any) => void;
    onMeasureRight: (arg1: any) => void;
    _getUserInputFromSortable: () => PerseusMatcherUserInput;
    getPromptJSON(): MatcherPromptJSON;
    moveLeftOptionToIndex: (option: SortableOption, index: number) => void;
    moveRightOptionToIndex: (option: SortableOption, index: number) => void;
    render(): React.ReactElement;
}
declare function getStartUserInput(options: MatcherPublicWidgetOptions, problemNum: number): PerseusMatcherUserInput;
/**
 * @deprecated and likely a very broken API
 * [LEMS-3185] do not trust serializedState
 */
declare function getUserInputFromSerializedState(serializedState: any): PerseusMatcherUserInput;
declare const _default: {
    name: string;
    displayName: string;
    widget: React.ForwardRefExoticComponent<Omit<Props, "dependencies"> & React.RefAttributes<any>>;
    isLintable: true;
    getStartUserInput: typeof getStartUserInput;
    getUserInputFromSerializedState: typeof getUserInputFromSerializedState;
};
export default _default;
