import type { useTransactionGetTransactionStatusByNetworkAndHashHook } from "@stakekit/api-hooks";
import { EitherAsync } from "purify-ts";
import type { MutableRefObject } from "react";
import type { SupportedSKChains } from "./chains";
import type { SKExternalProviders } from "./wallets";
import type { EVMTx } from "./wallets/generic-wallet";
export declare class ExternalProvider {
    private variantProvider;
    private transactionGetTransactionStatusByNetworkAndHash;
    get shouldMultiSend(): boolean;
    private txStatusesToContinue;
    constructor(variantProvider: MutableRefObject<SKExternalProviders>, transactionGetTransactionStatusByNetworkAndHash: ReturnType<typeof useTransactionGetTransactionStatusByNetworkAndHashHook>);
    private invalidProviderType;
    sendTransaction(tx: EVMTx): EitherAsync<Error, string>;
    sendMultipleTransactions({ network, txs, }: {
        network: SupportedSKChains;
        txs: EVMTx[];
    }): EitherAsync<Error, string>;
    switchChain({ chainId }: {
        chainId: string;
    }): EitherAsync<Error, void>;
    signMessage(messageHash: string): EitherAsync<Error, string>;
}
