/// import { BurnAndReleaseTransaction, LockAndMintTransaction, Logger, RenNetwork, RenNetworkDetails, RenNetworkString, SyncOrPromise, TxStatus } from "@renproject/interfaces"; import BigNumber from "bignumber.js"; import { AbstractRenVMProvider } from "./"; import { RenVMProvider as V1Provider } from "./v1"; import { RenVMParams, RenVMProvider as V2Provider, RenVMResponses } from "./v2"; export declare class CombinedProvider implements AbstractRenVMProvider { v1?: V1Provider; v2: V2Provider; sendMessage: AbstractRenVMProvider["sendMessage"]; network: RenNetworkDetails; constructor(network: RenNetwork | RenNetworkString | RenNetworkDetails, logger?: Logger); selector: (params: Parameters[0]) => string; version: (selector: string) => 1 | 2; mintTxHash: (params: Parameters[0]) => Buffer; submitMint: (params: Parameters[0]) => SyncOrPromise; burnTxHash: (params: { selector: string; gHash: Buffer; gPubKey: Buffer; nHash: Buffer; nonce: Buffer; output: { txid: Buffer; txindex: string; }; amount: string; payload: Buffer; pHash: Buffer; to: string; }) => Buffer; submitBurn: (params: Parameters[0]) => SyncOrPromise; queryMintOrBurn: (selector: string, utxoTxHash: Buffer, retries?: number | undefined) => SyncOrPromise; waitForTX: (selector: string, utxoTxHash: Buffer, onStatus?: ((status: TxStatus) => void) | undefined, cancelRequested?: (() => boolean) | undefined, timeout?: number | undefined) => SyncOrPromise; /** * selectPublicKey fetches the key for the RenVM shard handling * the provided contract. * * @returns The key hash (20 bytes) as a string. */ selectPublicKey: (selector: string, assetOrChain: string) => SyncOrPromise; /** * Used to query what network a custom provider is connected to. LockAndMint * and BurnAndRelease use this to configure their chain parameters. */ getNetwork: (selector: string) => SyncOrPromise; getConfirmationTarget: (selector: string, chain: { name: string; }) => Promise; estimateTransactionFee: (asset: string, lockChain: { name: string; }, hostChain: { name: string; }) => Promise<{ lock: BigNumber; release: BigNumber; mint: number; burn: number; }>; }