/// import BigNumber from 'bignumber.js'; import { EventEmitter2 } from 'eventemitter2'; import { IlpPluginBtpConstructorOptions } from 'ilp-plugin-btp'; import LightningAccount from './account'; import { GrpcConnectionOpts, InvoiceStream, LndService, PaymentStream, GrpcClient } from './lightning'; import { LightningClientPlugin } from './plugins/client'; import { LightningServerPlugin, MiniAccountsOpts } from './plugins/server'; import { DataHandler, Logger, MoneyHandler, PluginInstance, PluginServices, Store } from './types/plugin'; export * from './lightning'; export { LightningAccount }; export interface LightningPluginOpts extends MiniAccountsOpts, IlpPluginBtpConstructorOptions { role: 'client' | 'server'; lnd: GrpcConnectionOpts | LndService; paymentStream?: PaymentStream; invoiceStream?: InvoiceStream; maxPacketAmount?: BigNumber.Value; } export default class LightningPlugin extends EventEmitter2 implements PluginInstance { static readonly version = 2; readonly _log: Logger; readonly _store: Store; readonly _maxPacketAmount: BigNumber; readonly _maxBalance: BigNumber; readonly _accounts: Map; readonly _plugin: LightningServerPlugin | LightningClientPlugin; _dataHandler: DataHandler; _moneyHandler: MoneyHandler; readonly _grpcClient?: GrpcClient; readonly _lightning: LndService; _paymentStream?: PaymentStream; _invoiceStream?: InvoiceStream; _lightningAddress?: string; constructor({ role, lnd, paymentStream, invoiceStream, maxPacketAmount, ...opts }: LightningPluginOpts, { log, store }?: PluginServices); _loadAccount(accountName: string): Promise; connect(): Promise; disconnect(): Promise; isConnected(): boolean; sendData(data: Buffer): Promise; sendMoney(amount: string): Promise; registerDataHandler(dataHandler: DataHandler): void; deregisterDataHandler(): void; registerMoneyHandler(moneyHandler: MoneyHandler): void; deregisterMoneyHandler(): void; }