import type { Provider, ProviderType } from '../types';
declare const providers: readonly [Provider<import("./eip-1193").EIP1193ProviderLike>, Provider<import("./ethers").EthersProviderLike>, Provider<import("./http").HttpProviderLike>, Provider<import("./web3").Web3ProviderLike>];
export declare type ProviderLike = ProviderType<typeof providers>;
export declare const getProvider: (providerLike: ProviderLike) => Provider<unknown>;
/**
 * Send a call with the data, using the specified provider. If the provider is not a valid provider type (e.g. not a
 * Ethers.js provider, URL or Web3 provider), this will throw an error.
 *
 * @param {ProviderLike} providerLike
 * @param {string} contractAddress
 * @param {string} data
 * @return {Promise<Uint8Array>}
 */
export declare const call: (providerLike: ProviderLike, contractAddress: string, data: string) => Promise<Uint8Array>;
export declare const send: <Result>(providerLike: ProviderLike, method: string, params: unknown[]) => Promise<Result>;
export {};
//# sourceMappingURL=provider.d.ts.map