import { Result } from './result';
import { ENetworks, TCurrentLndState } from './types';
import { lnrpc } from './rpc';
import LndConf from './lnd.conf';
declare class LND {
    private readonly grpc;
    private readonly lnd;
    private currentConf?;
    private readonly logListeners;
    constructor();
    start(conf: LndConf): Promise<Result<string, Error>>;
    addLogListener(callback: (log: string) => void): string;
    removeLogListener(id: string): void;
    private processLogListeners;
    getLogFileContent(limit?: number): Promise<Result<string[], Error>>;
    genSeed(): Promise<Result<string[], Error>>;
    createWallet(password: string, seed: string[], multiChanBackup?: string): Promise<Result<string, Error>>;
    unlockWallet(password: string): Promise<Result<string, Error>>;
    walletExists(network: ENetworks): Promise<Result<boolean, Error>>;
    currentState(): Promise<Result<TCurrentLndState, Error>>;
    subscribeToCurrentState(onUpdate: (res: TCurrentLndState) => void): void;
    getInfo(): Promise<Result<lnrpc.GetInfoResponse, Error>>;
    getAddress(type?: lnrpc.AddressType): Promise<Result<lnrpc.NewAddressResponse, Error>>;
    getWalletBalance(): Promise<Result<lnrpc.WalletBalanceResponse, Error>>;
    getChannelBalance(): Promise<Result<lnrpc.ChannelBalanceResponse, Error>>;
    connectPeer(pubkey: string, host: string): Promise<Result<lnrpc.ConnectPeerResponse, Error>>;
    openChannel(fundingAmount: number, nodePubkey: string, closeAddress?: string | undefined): Promise<Result<lnrpc.ChannelPoint, Error>>;
    closeChannelStream(channel: lnrpc.IChannel, onUpdate: (res: Result<lnrpc.ClosedChannelsResponse, Error>) => void, onDone: (res: Result<boolean, Error>) => void): void;
    subscribeToOnChainTransactions(onUpdate: (res: Result<lnrpc.Transaction, Error>) => void, onDone: (res: Result<boolean, Error>) => void): void;
    subscribeToInvoices(onUpdate: (res: Result<lnrpc.Invoice, Error>) => void, onDone: (res: Result<boolean, Error>) => void): void;
    listPayments(): Promise<Result<lnrpc.ListPaymentsResponse, Error>>;
    listChannels(): Promise<Result<lnrpc.ListChannelsResponse, Error>>;
    decodeInvoice(invoice: string): Promise<Result<lnrpc.PayReq, Error>>;
    payInvoice(invoice: string): Promise<Result<lnrpc.SendResponse, Error>>;
    createInvoice(value: number, memo: string, expiry?: number): Promise<Result<lnrpc.AddInvoiceResponse, Error>>;
    listInvoices(indexOffset?: number, numMaxInvoices?: number, pendingOnly?: boolean, reversed?: boolean): Promise<Result<lnrpc.ListInvoiceResponse, Error>>;
    listPeers(): Promise<Result<lnrpc.ListPeersResponse, Error>>;
    feeEstimate(address: string, amount: number, targetConf?: number): Promise<Result<lnrpc.EstimateFeeResponse, Error>>;
    sign(msg: string): Promise<Result<lnrpc.SignMessageResponse, Error>>;
    stop(): Promise<Result<lnrpc.StopResponse, Error>>;
    subscribeToBackups(onUpdate: (res: Result<lnrpc.ChanBackupSnapshot, Error>) => void, onDone: (res: Result<boolean, Error>) => void): void;
    exportAllChannelBackups(): Promise<Result<string, Error>>;
    verifyChannelBackupSnapshot(backupSnapshot: lnrpc.ChanBackupSnapshot): Promise<Result<lnrpc.VerifyChanBackupResponse, Error>>;
    verifyMultiChannelBackup(multiChanBackup: string): Promise<Result<boolean, Error>>;
}
declare const _default: LND;
export default _default;
