import { z } from "zod"; import { KycStatus } from "./KycStatus.js"; declare const InvoiceCurrencySchema: z.ZodObject<{ name: z.ZodString; code: z.ZodString; symbol: z.ZodString; decimals: z.ZodNumber; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; decimals: number; }, { symbol: string; name: string; code: string; decimals: number; }>; /** * Sub object describing receiving currency in more detail * * @param name * @param code * @param symbol * @param decimals */ export type InvoiceCurrency = z.infer; declare const InvoiceSchema: z.ZodObject<{ receiverUma: z.ZodString; invoiceUUID: z.ZodString; amount: z.ZodNumber; receivingCurrency: z.ZodObject<{ name: z.ZodString; code: z.ZodString; symbol: z.ZodString; decimals: z.ZodNumber; }, "strip", z.ZodTypeAny, { symbol: string; name: string; code: string; decimals: number; }, { symbol: string; name: string; code: string; decimals: number; }>; expiration: z.ZodNumber; isSubjectToTravelRule: z.ZodBoolean; requiredPayerData: z.ZodOptional, z.ZodTypeDef, Record>>, Record | undefined, Record | null>>; umaVersions: z.ZodString; commentCharsAllowed: z.ZodOptional>, number | undefined, number | null>>; senderUma: z.ZodOptional>, string | undefined, string | null>>; maxNumPayments: z.ZodOptional>, number | undefined, number | null>>; kycStatus: z.ZodOptional>, NonNullable | undefined, KycStatus | null>>; callback: z.ZodString; signature: z.ZodOptional>, Uint8Array | undefined, Uint8Array | null>>; }, "strip", z.ZodTypeAny, { receiverUma: string; invoiceUUID: string; amount: number; receivingCurrency: { symbol: string; name: string; code: string; decimals: number; }; expiration: number; isSubjectToTravelRule: boolean; umaVersions: string; callback: string; requiredPayerData?: Record | undefined; commentCharsAllowed?: number | undefined; senderUma?: string | undefined; maxNumPayments?: number | undefined; kycStatus?: NonNullable | undefined; signature?: Uint8Array | undefined; }, { receiverUma: string; invoiceUUID: string; amount: number; receivingCurrency: { symbol: string; name: string; code: string; decimals: number; }; expiration: number; isSubjectToTravelRule: boolean; umaVersions: string; callback: string; requiredPayerData?: Record | null | undefined; commentCharsAllowed?: number | null | undefined; senderUma?: string | null | undefined; maxNumPayments?: number | null | undefined; kycStatus?: KycStatus | null | undefined; signature?: Uint8Array | null | undefined; }>; /** * Invoice * represents a UMA invoice * * @param receiverUma * @param invoiceUUID - Invoice UUID Served as both the identifier of the UMA invoice, and the validation of proof of payment * @param amount - The amount of invoice to be paid in the smallest unit of the ReceivingCurrency. * @param receivingCurrency - The currency of the invoice * @param expiration - The unix timestamp of when the UMA invoice expires * @param isSubjectToTravelRule - Indicates whether the VASP is a financial institution that requires travel rule information. * @param requiredPayerData - the data about the payer that the sending VASP must provide in order to send a payment * @param umaVersions - UmaVersions is a list of UMA versions that the VASP supports for this transaction. It should * contain the lowest minor version of each major version it supported, separated by commas * @param commentCharsAllowed - is the number of characters that the sender can include in the comment field of the pay request. * @param senderUma - The sender's UMA address. If this field presents, the UMA invoice should directly go to the sending VASP * instead of showing in other formats * @param maxNumPayments - The maximum number of times the invoice can be paid * @param kycStatus - YC status of the receiver, default is verified * @param callback - The callback url that the sender should send the PayRequest to * @param signature - The signature of the UMA invoice */ export type Invoice = z.infer; type TLVSerial = { tag: number; serialize: (value: T) => Uint8Array; deserialize: (bytes: Uint8Array) => T; }; /** * Serializer object converts Invoice to Uint8Array in type-length-value format, * or creates Invoice based on properly validated Uint8Array * * additionally, can convert a tlv formatted Invoice into a bech32 string */ export declare const InvoiceSerializer: { serialMap: Map>; reverseLookupSerialMap: Map; registerSerializer(field: string, helper: TLVSerial): any; toTLV(invoice: Invoice): Uint8Array; toBech32(invoice: Invoice, maxLength?: number | undefined): string; fromTLV(bytes: Uint8Array): Invoice; fromBech32(bech32str: string, maxLength?: number | undefined): Invoice; }; export {};