import { State, Request, Showing, ExecutionCtx } from './types';
export interface ExecutionProps {
    onTxFail?: (error: Error, data: any) => void;
    onTxSubmit?: (tx: string, data: any) => void;
    onTxSuccess?: (tx: string, data: any) => void;
    onTxReverted?: (tx: string, data: any) => void;
    showSubmitLoadingDialog?: boolean;
    executionStatus?: {
        showing?: Showing | null;
        showingDone?: boolean;
        transactionTx?: string;
        errorMessage?: string;
        setErrorMessage?: (msg?: string | null) => void;
        closeShowing?: () => void;
    };
}
export default function useExecution({ onTxFail, onTxSubmit, onTxSuccess, onTxReverted, }?: ExecutionProps): {
    showing: Showing | null;
    showingDone: boolean;
    transactionTx: string;
    errorMessage: string | null;
    setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string | null>>;
    closeShowing: () => void;
    setShowing: import("react").Dispatch<import("react").SetStateAction<Showing | null>>;
    ctxVal: ExecutionCtx;
    requests: Map<string, [Request, State]>;
};
