import { BigDecimalish } from './bigDecimal.cjs';
import BigDecimal from 'bignumber.js';

declare const VERTEX_PRODUCT_DECIMALS = 18;
/**
 * Determines the result type after adjusting decimals based on the input type `T`.
 *
 * - If `T` is `undefined`, the result is `undefined`.
 * - If `T` is a `number`, the result is a `number`.
 * - Otherwise, the result is a `BigDecimal`.
 */
type AdjustDecimalsResult<T extends BigDecimalish | undefined> = T extends undefined ? undefined : T extends number ? number : BigDecimal;
/**
 * Adds the specified # of decimals to the number. For example, value = 1, decimals = 2, returns 100.
 *
 * @param value can be undefined for better developer experience. If undefined, returns undefined.
 * @param decimals number of decimal places to add, defaults to 18, which is the standard within Vertex
 */
declare function addDecimals<T extends BigDecimalish | undefined>(value: T, decimals?: number): AdjustDecimalsResult<T>;
/**
 * Removes the specified # of decimals from the number. For example, value = 100, decimals = 2, returns 1.
 *
 * @param value can be undefined for better developer experience. If undefined, returns undefined.
 * @param decimals number of decimal places to remove, defaults to 18, which is the standard within Vertex
 */
declare function removeDecimals<T extends BigDecimalish | undefined>(value: T, decimals?: number): AdjustDecimalsResult<T>;

export { VERTEX_PRODUCT_DECIMALS, addDecimals, removeDecimals };
