import { type PropsWithChildren } from "react";
import type { SdkPluginsConfig } from "embedding-sdk";
import type { Mode } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/visualizations/click-actions/Mode";
import { type UseLoadQuestionParams } from "./hooks";
type InteractiveQuestionContextType = {
    plugins: SdkPluginsConfig | null;
    mode: Mode | null | undefined;
    isQuestionLoading: boolean;
    resetQuestion: () => void;
    onReset?: () => void;
    onNavigateBack?: () => void;
};
/**
 * Note: This context should only be used as a wrapper for the InteractiveQuestionResult
 * component. The idea behind this context is to allow the InteractiveQuestionResult component
 * to use components within the ./components folder, which use the context for display
 * and functions. Any data that can be referenced from the store should be placed in
 * the useInteractiveQuestionData hook.
 * */
export declare const InteractiveQuestionContext: import("react").Context<InteractiveQuestionContextType | undefined>;
type InteractiveQuestionProviderProps = PropsWithChildren<UseLoadQuestionParams & {
    componentPlugins?: SdkPluginsConfig;
    onReset?: () => void;
    onNavigateBack?: () => void;
}>;
export declare const InteractiveQuestionProvider: ({ children, location, params, componentPlugins, onReset, onNavigateBack, }: InteractiveQuestionProviderProps) => import("react/jsx-runtime").JSX.Element;
export declare const useInteractiveQuestionContext: () => InteractiveQuestionContextType;
export {};
