import BigNumber from 'bignumber.js';
import { Transaction, Witness } from '@muirglacier/jellyfish-transaction';
/**
 * TODO(jellyfish): consider refactoring this implementation
 *
 * @param {BigNumber} amount that is considered dust if it's too little
 * @return {boolean}
 */
export declare function isDustAmount(amount: BigNumber): boolean;
/**
 * Calculate fee of a transaction where inputs are all P2WPKH.
 *
 * @param {BigNumber} feeRate in DFI/kb
 * @param {Transaction} transaction
 * @return {BigNumber} fee amount to use for transaction with provided fee rate
 */
export declare function calculateFeeP2WPKH(feeRate: BigNumber, transaction: Transaction): BigNumber;
/**
 * @param {BigNumber} feeRate in DFI/kb
 * @param {Transaction} transaction
 * @param {Witness} witness of the transaction, separated to allow unsigned calculation
 * @return {BigNumber} fee amount to use for transaction with provided fee rate
 */
export declare function calculateFee(feeRate: BigNumber, transaction: Transaction, witness: Witness[]): BigNumber;
/**
 * @param {Transaction} transaction
 * @param {Witness} witness of the transaction, separated to allow unsigned calculation
 * @return {number} calculated virtual size of transaction
 */
export declare function calculateVirtual(transaction: Transaction, witness: Witness[]): number;
/**
 * @param {Transaction} transaction
 * @param {Witness} witness of the transaction, separated to allow unsigned calculation
 * @return {number} calculated weight of transaction
 */
export declare function calculateWeight(transaction: Transaction, witness: Witness[]): number;
//# sourceMappingURL=txn_fee.d.ts.map