///
import { ClientDuplexStream, ClientReadableStream } from '@grpc/grpc-js/build/src/call';
import { ServiceClient } from '@grpc/grpc-js/build/src/make-client';
import BigNumber from 'bignumber.js';
import { lnrpc } from '../generated/rpc';
export * from '../generated/rpc';
export declare type GrpcClient = ServiceClient;
export interface GrpcConnectionOpts {
tlsCert: string | Buffer;
macaroon: string | Buffer;
hostname: string;
grpcPort?: number;
}
export declare const createGrpcClient: ({ tlsCert, macaroon, hostname, grpcPort }: GrpcConnectionOpts) => ServiceClient;
export declare type LndService = lnrpc.Lightning;
export declare const createLnrpc: (client: ServiceClient) => lnrpc.Lightning;
export declare type InvoiceStream = ClientReadableStream;
export declare const createInvoiceStream: (lightning: lnrpc.Lightning) => ClientReadableStream;
export declare const createPaymentRequest: (lightning: lnrpc.Lightning) => Promise;
export declare type PaymentStream = ClientDuplexStream;
export declare const createPaymentStream: (lightning: lnrpc.Lightning) => ClientDuplexStream;
export declare const payInvoice: (paymentStream: ClientDuplexStream, paymentRequest: string, paymentHash: string, amount: BigNumber) => Promise;
export declare const connectPeer: (lightning: lnrpc.Lightning) => (peerIdentityPubkey: string, peerHost: string) => Promise;