export interface AlbyInvoice { invoice: string // Lightning invoice (bolt11) paymentHash: string amount: number // Amount in satoshis expiresAt: number // Unix timestamp } export interface AlbyPaymentStatus { paid: boolean paymentHash?: string amount?: number confirmedAt?: number } export interface AlbyInvoiceRequest { amount: number // Amount in satoshis description?: string expiry?: number // Expiry in seconds (default 3600) } /** * WebLN provider interface (WebLN standard) * Used by Alby and other Lightning wallet extensions */ export interface WebLNProvider { enabled: boolean enable(): Promise makeInvoice(request: { amount: number; defaultMemo?: string }): Promise<{ paymentRequest: string }> sendPayment(invoice: string): Promise<{ preimage: string }> } /** * Extended Window interface with WebLN provider */ declare global { interface Window { webln?: WebLNProvider } }