import * as React from "react";
import { PerseusI18nContext } from "../../components/i18n-context";
import type { PerseusDependenciesV2, Widget, WidgetProps } from "../../types";
import type { CategorizerPromptJSON } from "../../widget-ai-utils/categorizer/categorizer-ai-utils";
import type { PerseusCategorizerWidgetOptions, PerseusCategorizerUserInput } from "@khanacademy/perseus-core";
type ExternalProps = WidgetProps<PerseusCategorizerWidgetOptions, PerseusCategorizerUserInput>;
type Props = ExternalProps & {
    linterContext: NonNullable<ExternalProps["linterContext"]>;
    dependencies: PerseusDependenciesV2;
};
type DefaultProps = Pick<Props, "items" | "categories" | "linterContext" | "userInput">;
type State = {
    uniqueId: string;
};
export declare class Categorizer 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;
    /**
     * @deprecated and likely very broken API
     * [LEMS-3185] do not trust serializedState
     */
    getSerializedState(): any;
    getPromptJSON(): CategorizerPromptJSON;
    _handleUserInput(itemNum: number, catNum: number): void;
    render(): React.ReactNode;
}
/**
 * @deprecated and likely a very broken API
 * [LEMS-3185] do not trust serializedState
 */
declare function getUserInputFromSerializedState(serializedState: any): PerseusCategorizerUserInput;
/**
 * you need this along with _getAllWidgetsStartProps
 * to generate userInput for static widgets
 */
declare function getCorrectUserInput(options: PerseusCategorizerWidgetOptions): PerseusCategorizerUserInput;
declare function getStartUserInput(): PerseusCategorizerUserInput;
declare const _default: {
    name: string;
    displayName: string;
    hidden: true;
    widget: React.ForwardRefExoticComponent<Omit<Props, "dependencies"> & React.RefAttributes<any>>;
    getUserInputFromSerializedState: typeof getUserInputFromSerializedState;
    getCorrectUserInput: typeof getCorrectUserInput;
    getStartUserInput: typeof getStartUserInput;
    isLintable: true;
};
export default _default;
