///
import BigNumber from 'bignumber.js';
import { IlpPrepare, IlpReply } from 'ilp-packet';
import { BtpPacket, BtpPacketData, BtpSubProtocol } from 'ilp-plugin-btp';
import { BehaviorSubject } from 'rxjs';
import LightningPlugin from '.';
import { DataHandler, MoneyHandler } from './types/plugin';
export declare enum Unit {
BTC = 8,
Satoshi = 0
}
export declare const convert: (num: BigNumber.Value, from: Unit, to: Unit) => BigNumber;
export declare const format: (num: BigNumber.Value, from: Unit) => string;
export declare type ParsedSubprotocol = string | Buffer | undefined;
export declare const getSubProtocol: (message: BtpPacketData, name: string) => string | Buffer | undefined;
export declare const generateBtpRequestId: () => Promise;
export default class LightningAccount {
readonly accountName: string;
readonly receivableBalance$: BehaviorSubject;
readonly payableBalance$: BehaviorSubject;
readonly payoutAmount$: BehaviorSubject;
peerIdentityPublicKey?: string;
private readonly master;
private readonly sendMessage;
private readonly dataHandler;
private readonly moneyHandler;
private incomingInvoices;
private outgoingInvoices;
private invoiceHandler;
constructor({ accountName, payableBalance$, receivableBalance$, payoutAmount$, master, sendMessage, dataHandler, moneyHandler }: {
accountName: string;
payableBalance$: BehaviorSubject;
receivableBalance$: BehaviorSubject;
payoutAmount$: BehaviorSubject;
master: LightningPlugin;
sendMessage: (message: BtpPacket) => Promise;
dataHandler: DataHandler;
moneyHandler: MoneyHandler;
});
connect(): Promise;
handleData({ data }: BtpPacket): Promise;
private sendPeeringInfo;
private sendInvoice;
private handleIncomingPayment;
sendMoney(amount?: string): Promise;
unload(): void;
private handlePrepare;
handlePrepareResponse(prepare: IlpPrepare, reply: IlpReply): void;
}