import { BtcBlock, BtcTransaction, EvmBlock, EvmTransaction, SolBlock, SolTransaction, TrxBlock, TrxTransaction, XrpBlock, XrpTransaction } from '@dfns/datamodel/dist/Blockchains';
import { AssetMetadata, Evm20Params, Evm721Params, NftMetadata } from '@dfns/private-api-client';
export type Block = BtcBlock | EvmBlock | SolBlock | TrxBlock | XrpBlock;
export type Transaction = BtcTransaction | EvmTransaction | SolTransaction | TrxTransaction | XrpTransaction;
export interface BlockchainInterface {
    getBlock?: (blockNumber: number) => Promise<Block>;
    getBlockNumber?: () => Promise<number>;
    callContract?: (contract: string, data: string) => Promise<string>;
    getContract?: (contract: string, params?: Evm20Params | Evm721Params) => Promise<AssetMetadata | NftMetadata>;
    getTransaction?: (hash: string) => Promise<Transaction>;
}
