import React from "react";
import { type PageViewContext } from "../page-viewer/pageViewContext";
import type { FullItem, ItemDescriptor } from "../pageModel";
export type EditorSlotContext = {
    slotId: string;
    itemDescriptor: ItemDescriptor;
    item?: FullItem;
    isLoading: boolean;
    itemMissing: boolean;
    pageViewContexts: PageViewContext[];
    primaryPageViewContext: PageViewContext;
    compareMode: boolean;
    setCompareMode: (mode: boolean) => void;
    compareTo?: ItemDescriptor;
    setCompareTo: (descriptor: ItemDescriptor | undefined) => void;
    compareItem?: FullItem;
    compareItemMissing: boolean;
    isActive: boolean;
};
export declare function useSlotContext(): EditorSlotContext | undefined;
export declare function useEditorSlotContext({ slotId, itemDescriptor, refreshToken, }: {
    slotId: string;
    itemDescriptor: ItemDescriptor;
    /** Token that changes to force the slot to reload its item. */
    refreshToken?: number;
}): EditorSlotContext | undefined;
export declare function EditorSlotContextProvider({ value, children, }: {
    value: EditorSlotContext;
    children: React.ReactNode;
}): React.FunctionComponentElement<React.ProviderProps<EditorSlotContext | undefined>>;
