/**
 * @file Responsible for providing utility functions for working with BigNumbers.
 * @module utils/BigNumberUtils
 * @author Across Protocol
 */
import { utils as ethersUtils } from "ethers";
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
export * from "@ethersproject/bignumber";
export type BN = BigNumber;
export declare const formatEther: typeof ethersUtils.formatEther, formatUnits: typeof ethersUtils.formatUnits, parseEther: typeof ethersUtils.parseEther, parseUnits: typeof ethersUtils.parseUnits;
export declare const bnZero: BigNumber;
export declare const bnOne: BigNumber;
export declare const bnUint32Max: BigNumber;
export declare const bnUint256Max: BigNumber;
/**
 * Converts a stringified number into a BigNumber with 18 decimal places.
 * @param num The number to parse.
 * @returns The parsed BigNumber.
 */
export declare function toWei(num: BigNumberish): BN;
/**
 * Converts a stringified number into a BigNumber with 9 decimal places.
 * @param num The number to parse.
 * @returns The parsed BigNumber.
 */
export declare function toGWei(num: BigNumberish): BN;
/**
 * Converts a stringified number into a BigNumber.
 * If the string version of the num contains a `.` then it is a number which needs to be parsed to a string int.
 * @param num The number to parse.
 * @param rounding The rounding method to use if the number has a decimal point. Defaults to "floor" or rounding down. Valid values are "floor", "round", and "ceil".
 * @returns The parsed BigNumber.
 * @note This is a temporary function until we can backport support for decimal points to @across-protocol/sdk.
 */
export declare const toBN: (num: BigNumberish, rounding?: "floor" | "round" | "ceil") => BN;
/**
 * Compares two BigNumbers and returns the maximum. Order does not matter.
 *
 * @param val The first BigNumber to compare.
 * @param cmp The second BigNumber to compare.
 * @returns The greater of the two BigNumbers.
 */
export declare const bnMax: (val: BigNumber, cmp: BigNumber) => BigNumber;
