export declare const NWC_REQUEST_KIND = 23194; export declare const NWC_RESPONSE_KIND = 23195; export interface NwcConnection { walletPubkey: string; relayUrl: string; secretHex: string; clientPubkey: string; } /** Nostr wire time: unix seconds (the protocol's own field name). */ export type UnixSeconds = number; export interface NwcNostrEvent { id: string; pubkey: string; created_at: UnixSeconds; kind: number; tags: string[][]; content: string; sig: string; } export declare class NwcError extends Error { readonly code: string; constructor(code: string, message: string); } export declare function parseNwcUri(uri: string): NwcConnection; export declare function nip44ConversationKey(secretHex: string, peerPubkeyHex: string): Uint8Array; export declare function nip44Encrypt(conversation: Uint8Array, plaintext: string, nonce?: Uint8Array): string; export declare function nip44Decrypt(conversation: Uint8Array, payload: string): string; export declare function signNwcEvent(secretHex: string, kind: number, tags: string[][], content: string): NwcNostrEvent; /** Closes every standing relay connection (process exit, tests). */ export declare function closeNwcConnections(): void; export type NwcTransport = (connection: NwcConnection, request: NwcNostrEvent, timeoutMs: number) => Promise; /** * One NIP-47 call. Throws `NwcError` with the wallet's error code * (`INSUFFICIENT_BALANCE`, `QUOTA_EXCEEDED`, `NOT_FOUND`, `UNAUTHORIZED`, …) * or a transport code (`TIMEOUT`, `RELAY_UNREACHABLE`, `RELAY_REJECTED`, `RELAY_CLOSED`, `BAD_RESPONSE`). */ export declare function nwcRequest>(connection: NwcConnection, method: string, params: Record, options?: { timeoutMs?: number; transport?: NwcTransport; }): Promise; /** The agent-side wallet verbs the Lightning rail needs. Amounts are in sats. */ export declare class NwcWallet { private readonly options; private readonly connection; constructor(pairingUri: string, options?: { timeoutMs?: number; transport?: NwcTransport; }); private call; getBalanceSats(): Promise; /** Remaining budget in sats, or null when the wallet has no budget. */ getBudgetSats(): Promise<{ usedSats: number; totalSats: number | null; renewsAtSeconds: UnixSeconds | null; } | null>; /** Pays a BOLT11 invoice; returns the preimage (hex) the wallet reports. */ payInvoice(bolt11: string): Promise<{ preimage: string; feesPaidMsat: number | null; }>; /** Looks an invoice up by payment hash; a settled outgoing payment carries its preimage. */ lookupInvoice(paymentHash: string): Promise<{ state: string | null; preimage: string | null; } | null>; } //# sourceMappingURL=nwc.d.ts.map