import * as React from "react";
import type { ServerItemRenderer } from "../server-item-renderer";
import type { APIOptions } from "../types";
import type { PerseusItem, ShowSolutions } from "@khanacademy/perseus-core";
/**
 * Custom hook to manage the Server Item Renderer With Debug UI state
 */
export declare const useItemRenderer: (item: PerseusItem, apiOptions?: APIOptions, reviewMode?: boolean, showSolutions?: ShowSolutions) => {
    ref: React.RefObject<ServerItemRenderer>;
    state: import("./item-renderer-reducer").ItemRendererState;
    options: {
        isMobile: boolean;
        customKeypad: boolean;
        showSolutions: ShowSolutions | undefined;
        interactionCallback: () => void;
        isArticle?: boolean;
        onFocusChange?: (newFocusPath: import("..").FocusPath, oldFocusPath: import("..").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
        showAlignmentOptions?: boolean;
        readOnly?: boolean;
        editingDisabled?: boolean;
        answerableCallback?: (arg1: boolean) => unknown;
        getAnotherHint?: () => unknown;
        imagePlaceholder?: React.ReactNode;
        widgetPlaceholder?: React.ReactNode;
        baseElements?: {
            Link: React.ComponentType<any>;
        };
        imagePreloader?: (dimensions: import("../types").Dimensions) => React.ReactNode;
        trackInteraction?: (args: {
            type: string;
            id: string;
            correct?: boolean;
        } & Partial<import("../types").TrackingGradedGroupExtraArguments> & Partial<{
            visible: number;
        }>) => void;
        nativeKeypadProxy?: (blur: () => void) => import("@khanacademy/math-input").KeypadAPI;
        isMobileApp?: boolean;
        setDrawingAreaAvailable?: (arg1: boolean) => unknown;
        hintProgressColor?: string;
        canScrollPage?: boolean;
        editorChangeDelay?: number;
        flags?: Record<"image-widget-upgrade-gif-controls" | "input-number-to-numeric-input", boolean>;
    };
    toggleMobile: (isMobile: boolean) => void;
    toggleRtl: (isRtl: boolean) => void;
    updateJson: (json: string) => boolean;
    handleReset: () => void;
    handleSkip: () => void;
    handleCheck: () => void;
    setShowPopover: (show: boolean) => void;
};
