/** * Everything needed to implement your own provider. */ export interface WebLNNode { alias: string; pubkey: string; color?: string; } export interface GetInfoResponse { node: WebLNNode; } export interface SendPaymentResponse { preimage: string; } export interface RequestInvoiceArgs { amount?: string | number; defaultAmount?: string | number; minimumAmount?: string | number; maximumAmount?: string | number; defaultMemo?: string; } export interface KeysendArgs { destination: string; customRecords?: Record; amount: string | number; } export interface RequestInvoiceResponse { paymentRequest: string; } export interface SignMessageResponse { message: string; signature: string; } export interface WebLNProvider { enable(): Promise; getInfo(): Promise; sendPayment(paymentRequest: string): Promise; keysend(args: KeysendArgs): Promise; makeInvoice(args: string | number | RequestInvoiceArgs): Promise; signMessage(message: string): Promise; verifyMessage(signature: string, message: string): Promise; }