declare namespace currency { type Any = number | string | currency; type Format = (currency?: currency, opts?: Options) => string; interface Constructor { (value: currency.Any, opts?: currency.Options): currency, new(value: currency.Any, opts?: currency.Options): currency } interface Options { symbol?: string, separator?: string, decimal?: string, errorOnInvalid?: boolean, precision?: number, increment?: number, useVedic?: boolean, pattern?: string, negativePattern?: string, format?: currency.Format, fromCents?: boolean } } interface currency { add(number: currency.Any): currency; subtract(number: currency.Any): currency; multiply(number: currency.Any): currency; divide(number: currency.Any): currency; distribute(count: number): Array; dollars(): number; cents(): number; format(opts?: currency.Options | currency.Format): string; toString(): string; toJSON(): number; readonly intValue: number; readonly value: number; } declare const currency: currency.Constructor;