import { z } from "zod"; export declare class Currency { /** * The currency code, eg. "USD". */ readonly code: string; /** * The full currency name in plural form, eg. "US Dollars". */ readonly name: string; /** * The symbol of the currency, eg. "$". */ readonly symbol: string; /** * Estimated millisats per smallest "unit" of this currency (eg. 1 cent in USD). */ readonly multiplier: number; /** * Minimum amount that can be sent in this currency. This is in the smallest unit of the currency * (eg. cents for USD). */ readonly minSendable: number; /** * Maximum amount that can be sent in this currency. This is in the smallest unit of the currency * (eg. cents for USD). */ readonly maxSendable: number; /** * The number of digits after the decimal point for display on the sender side, and to add clarity * around what the "smallest unit" of the currency is. For example, in USD, by convention, there are 2 digits for * cents - $5.95. In this case, `decimals` would be 2. Note that the multiplier is still always in the smallest * unit (cents). In addition to display purposes, this field can be used to resolve ambiguity in what the multiplier * means. For example, if the currency is "BTC" and the multiplier is 1000, really we're exchanging in SATs, so * `decimals` would be 8. * For details on edge cases and examples, see https://github.com/uma-universal-money-address/protocol/blob/main/umad-04-lnurlp-response.md. */ readonly decimals: number; /** The major version of the UMA protocol that this currency adheres to. This is not serialized to JSON. */ readonly umaVersion: number; constructor( /** * The currency code, eg. "USD". */ code: string, /** * The full currency name in plural form, eg. "US Dollars". */ name: string, /** * The symbol of the currency, eg. "$". */ symbol: string, /** * Estimated millisats per smallest "unit" of this currency (eg. 1 cent in USD). */ multiplier: number, /** * Minimum amount that can be sent in this currency. This is in the smallest unit of the currency * (eg. cents for USD). */ minSendable: number, /** * Maximum amount that can be sent in this currency. This is in the smallest unit of the currency * (eg. cents for USD). */ maxSendable: number, /** * The number of digits after the decimal point for display on the sender side, and to add clarity * around what the "smallest unit" of the currency is. For example, in USD, by convention, there are 2 digits for * cents - $5.95. In this case, `decimals` would be 2. Note that the multiplier is still always in the smallest * unit (cents). In addition to display purposes, this field can be used to resolve ambiguity in what the multiplier * means. For example, if the currency is "BTC" and the multiplier is 1000, really we're exchanging in SATs, so * `decimals` would be 8. * For details on edge cases and examples, see https://github.com/uma-universal-money-address/protocol/blob/main/umad-04-lnurlp-response.md. */ decimals: number, /** The major version of the UMA protocol that this currency adheres to. This is not serialized to JSON. */ umaVersion?: number); static parse(data: any): Currency; toJsonSchemaObject(): z.infer | z.infer; toJsonString(): string; toJSON(): string; withUmaVersion(majorVersion: number): Currency; } export declare const V1CurrencySchema: z.ZodObject<{ code: z.ZodString; name: z.ZodString; symbol: z.ZodString; multiplier: z.ZodNumber; decimals: z.ZodNumber; convertible: z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { min: number; max: number; }, { min: number; max: number; }>; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; multiplier: number; decimals: number; convertible: { min: number; max: number; }; }, { symbol: string; name: string; code: string; multiplier: number; decimals: number; convertible: { min: number; max: number; }; }>; declare const V0CurrencySchema: z.ZodObject<{ code: z.ZodString; name: z.ZodString; symbol: z.ZodString; multiplier: z.ZodNumber; minSendable: z.ZodNumber; maxSendable: z.ZodNumber; decimals: z.ZodNumber; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; }, { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; }>; export declare const CurrencySchema: z.ZodEffects; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; multiplier: number; decimals: number; convertible: { min: number; max: number; }; }, { symbol: string; name: string; code: string; multiplier: number; decimals: number; convertible: { min: number; max: number; }; }>, z.ZodObject<{ code: z.ZodString; name: z.ZodString; symbol: z.ZodString; multiplier: z.ZodNumber; minSendable: z.ZodNumber; maxSendable: z.ZodNumber; decimals: z.ZodNumber; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; }, { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; }>]>, { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; } & { umaVersion: number; }, { symbol: string; name: string; code: string; multiplier: number; decimals: number; convertible: { min: number; max: number; }; } | { symbol: string; name: string; code: string; multiplier: number; decimals: number; minSendable: number; maxSendable: number; }>; export {};