import { type BackingSignature } from "./BackingSignature.js"; /** LnurlpRequest is the first request in the UMA protocol. It is sent by the VASP that is sending the payment to find out information about the receiver. */ export type LnurlpRequest = { /** ReceiverAddress is the address of the user at VASP2 that is receiving the payment. */ receiverAddress: string; /** Nonce is a random string that is used to prevent replay attacks. */ nonce?: string | undefined; /** Signature is the base64-encoded signature of sha256(ReceiverAddress|Nonce|Timestamp). */ signature?: string | undefined; /** IsSubjectToTravelRule indicates VASP1 is a financial institution that requires travel rule information. */ isSubjectToTravelRule?: boolean | undefined; /** VaspDomain is the domain of the VASP that is sending the payment. It will be used by VASP2 to fetch the public keys of VASP1. */ vaspDomain?: string | undefined; /** Timestamp is the unix timestamp of when the request was sent. Used in the signature. */ timestamp?: Date | undefined; /** * The version of the UMA protocol that VASP2 has chosen for this transaction based on its own support and VASP1's specified preference in the LnurlpRequest. * For the version negotiation flow, see https://static.swimlanes.io/87f5d188e080cb8e0494e46f80f2ae74.png */ umaVersion?: string | undefined; /** A list of backing signatures from VASPs that can attest to the authenticity of the message. */ backingSignatures?: BackingSignature[] | undefined; }; export declare function isLnurlpRequestForUma(request: LnurlpRequest): request is LnurlpRequest & { receiverAddress: string; nonce: string; signature: string; vaspDomain: string; timestamp: Date; umaVersion: string; }; export declare function encodeToUrl(q: LnurlpRequest): URL; export declare function getSignableLnurlpRequestPayload(q: LnurlpRequest): string; /** * Adds a backing signature to the request using the provided private key and domain. * The signature is created by signing the request's signable payload. * * @param signingPrivateKey The private key to sign with as a Buffer * @param domain The domain associated with the signature * @returns A new LnurlpRequest with the additional backing signature */ export declare function appendBackingSignature(request: LnurlpRequest, signingPrivateKey: Uint8Array, domain: string): Promise;