import { FixedNumber, FixedFormat, BigNumber } from '@ethersproject/bignumber';
import { Long } from '@hashgraph/sdk';
export type BigDecimalFormat = string | number | FixedFormat | undefined;
export default class BigDecimal implements FixedNumber {
    #private;
    readonly _hex: string;
    readonly _value: string;
    readonly _isFixedNumber: boolean;
    get format(): FixedFormat;
    set format(value: FixedFormat);
    get hex(): string;
    get value(): string;
    get isFixedNumber(): boolean;
    get decimals(): number;
    static ZERO: BigDecimal;
    static MINUSONE: BigDecimal;
    constructor(value: string | BigNumber, format?: BigDecimalFormat, decimals?: number);
    _checkFormat(other: BigDecimal): void;
    addUnsafe(other: BigDecimal): BigDecimal;
    subUnsafe(other: BigDecimal): BigDecimal;
    mulUnsafe(other: BigDecimal): BigDecimal;
    divUnsafe(other: BigDecimal): BigDecimal;
    floor(): BigDecimal;
    ceiling(): BigDecimal;
    round(decimals?: number | undefined): BigDecimal;
    isZero(): boolean;
    isNegative(): boolean;
    toHexString(width?: number | undefined): string;
    toUnsafeFloat(): number;
    toFormat(format: string | FixedFormat): FixedNumber;
    private fromFixedNumber;
    isGreaterOrEqualThan(other: BigDecimal): boolean;
    isGreaterThan(other: BigDecimal): boolean;
    isLowerThan(other: BigDecimal): boolean;
    isLowerOrEqualThan(other: BigDecimal): boolean;
    isEqualThan(other: BigDecimal): boolean;
    toBigNumber(): BigNumber;
    toFixedNumber(): string;
    toString(): string;
    setDecimals(value: number): BigDecimal;
    private splitNumber;
    static getDecimalsFromString(val: string): number;
    toLong(): Long;
    static fromString(value: string, format?: string | number | FixedFormat | undefined): BigDecimal;
    static fromStringFixed(value: string, decimals: number): BigDecimal;
    static fromValue(value: BigNumber, decimals?: number, format?: FixedFormat | string | number): BigDecimal;
    static isBigDecimal(value: string | BigDecimal): boolean;
}
