///
import { HDNode } from "@ethersproject/hdnode";
import { BytesLike } from "ethers/lib/utils";
import { Transaction } from "@ethersproject/transactions";
import { BigNumberish } from "ethers";
import { TransactionRequest } from "@ethersproject/abstract-provider";
export interface ListUTXOs {
address: string;
txid: string;
vout: number;
amount: string;
safe: boolean;
spendable: boolean;
solvable: boolean;
label: string;
type: string;
confirmations: number;
scriptPubKey: string;
redeemScript: string;
}
export interface TxVinWithNullScriptSig {
txid: Buffer;
hash: Buffer;
vout: number;
sequence: number;
script: Buffer;
scriptSig: null;
}
export interface TxVinWithoutNullScriptSig {
txid: Buffer;
hash: Buffer;
vout: number;
sequence: number;
script: Buffer;
scriptSig: Buffer;
}
export interface CloneTxVin {
txid: Buffer;
hash: Buffer;
vout: number;
sequence: number;
script: Buffer;
scriptSig: null;
}
export interface TxVout {
script: Buffer;
value: number;
}
export interface CloneTx {
version: number;
locktime: number;
vins: Array;
vouts: Array;
}
export interface Tx {
version: number;
locktime: number;
vins: Array;
vouts: Array;
}
export interface CheckTransactionType {
transactionType: number;
neededAmount: any;
}
export declare function calcTxBytes(vins: Array, vouts: Array): number;
export declare function txToBuffer(tx: any): Buffer;
export declare function signp2pkh(tx: any, vindex: number, privKey: string): Promise;
export declare function signp2pkhWith(tx: any, vindex: number, signer: Function): Promise;
export declare function p2pkScriptSig(sig: any): Buffer;
export declare function p2pkScript(pubKey: Buffer): Buffer;
export declare function p2pkhScriptSig(sig: any, pubkey: any): Buffer;
export declare function p2pkhScript(hash160PubKey: Buffer): Buffer;
export declare function contractTxScript(contractAddress: string, gasLimit: number, gasPrice: number, encodedData: string): Buffer;
export declare function generateContractAddress(txid: string): string;
export declare function addVins(outputs: Array, spendableUtxos: Array, neededAmount: string, needChange: boolean, gasPriceString: string, hash160PubKey: string, publicKey: Buffer): Promise>;
export declare function getMinNonDustValue(input: ListUTXOs, feePerByte: BigNumberish): number;
export declare function parseSignedTransaction(transaction: string): Transaction;
export declare function computeAddress(key: BytesLike | string, compressed?: boolean): string;
export declare function computeAddressFromPublicKey(publicKey: string): string;
export declare function configureQtumAddressGeneration(hdnode: HDNode): HDNode;
export declare function checkTransactionType(tx: TransactionRequest): CheckTransactionType;
export declare function serializeTransaction(utxos: Array, fetchUtxos: Function, neededAmount: string, tx: TransactionRequest, transactionType: number, privateKey: Buffer, filterDust: boolean): Promise;
export declare function serializeTransactionWith(utxos: Array, fetchUtxos: Function, neededAmount: string, tx: TransactionRequest, transactionType: number, signer: Function, publicKey: Buffer, filterDust: boolean): Promise;