///
import BigNumber from 'bignumber.js';
import BN from 'bn.js';
declare function lazyAsync(getValue: (input: Input) => Promise): (input: Input) => Promise;
declare function lazyOrValue(getValue: (() => Value) | Value): () => Value;
declare function weightedAverage(input: ReadonlyArray<{
readonly value: number;
readonly weight: BigNumber;
}>): number;
declare function weightedFilter(input: readonly T[], startIn: number, endIn: number, getValueIn: (value: T) => BN): ReadonlyArray;
declare function equals(clazz: new (...args: any[]) => T, thiz: T, equalsFunc: (other: T) => boolean): (other: any) => boolean;
export declare const utils: {
toASCII: (bytes: Buffer) => string;
toUTF8: (bytes: Buffer) => string;
calculateClaimAmount: ({ coins, decrementInterval, generationAmount, getSystemFee, }: {
readonly coins: readonly {
readonly value: BN;
readonly startHeight: number;
readonly endHeight: number;
}[];
readonly decrementInterval: number;
readonly generationAmount: readonly number[];
readonly getSystemFee: (index: number) => Promise;
}) => Promise;
randomUInt64: () => BN;
toKeyString: (clazz: {
readonly name: string;
}, toKey: () => string) => () => string;
equals: typeof equals;
lazyAsync: typeof lazyAsync;
lazyOrValue: typeof lazyOrValue;
weightedAverage: typeof weightedAverage;
weightedFilter: typeof weightedFilter;
FD: BN;
FFFF: BN;
FFFFFFFF: BN;
ZERO: BN;
ONE: BN;
TWO: BN;
NEGATIVE_ONE: BN;
INT_MAX_VALUE: BN;
SATOSHI: BN;
NEGATIVE_SATOSHI: BN;
USHORT_MAX_NUMBER: number;
USHORT_MAX_NUMBER_PLUS_ONE: number;
USHORT_MAX: BN;
USHORT_MAX_PLUS_ONE: BN;
UINT_MAX_NUMBER: number;
UINT_MAX: BN;
ONE_HUNDRED_MILLION: BN;
ONE_THOUSAND_TWENTY_FOUR: BN;
EIGHT: BN;
TEN: BN;
SIXTEEN: BN;
ZERO_BIG_NUMBER: BigNumber;
NEGATIVE_ONE_BIG_NUMBER: BigNumber;
toSignedBuffer: (value: BN) => Buffer;
fromSignedBuffer: (value: Buffer) => BN;
bigNumberToBN: (value: BigNumber, decimals: number) => BN;
lazy: (getValue: () => Value) => () => Value;
randomUInt: () => number;
};
export {};