// Code generated by protoc-gen-go. DO NOT EDIT.
// source: routerrpc/router.proto

package routerrpc

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	lnrpc "github.com/lightningnetwork/lnd/lnrpc"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type FailureDetail int32

const (
	FailureDetail_UNKNOWN                 FailureDetail = 0
	FailureDetail_NO_DETAIL               FailureDetail = 1
	FailureDetail_ONION_DECODE            FailureDetail = 2
	FailureDetail_LINK_NOT_ELIGIBLE       FailureDetail = 3
	FailureDetail_ON_CHAIN_TIMEOUT        FailureDetail = 4
	FailureDetail_HTLC_EXCEEDS_MAX        FailureDetail = 5
	FailureDetail_INSUFFICIENT_BALANCE    FailureDetail = 6
	FailureDetail_INCOMPLETE_FORWARD      FailureDetail = 7
	FailureDetail_HTLC_ADD_FAILED         FailureDetail = 8
	FailureDetail_FORWARDS_DISABLED       FailureDetail = 9
	FailureDetail_INVOICE_CANCELED        FailureDetail = 10
	FailureDetail_INVOICE_UNDERPAID       FailureDetail = 11
	FailureDetail_INVOICE_EXPIRY_TOO_SOON FailureDetail = 12
	FailureDetail_INVOICE_NOT_OPEN        FailureDetail = 13
	FailureDetail_MPP_INVOICE_TIMEOUT     FailureDetail = 14
	FailureDetail_ADDRESS_MISMATCH        FailureDetail = 15
	FailureDetail_SET_TOTAL_MISMATCH      FailureDetail = 16
	FailureDetail_SET_TOTAL_TOO_LOW       FailureDetail = 17
	FailureDetail_SET_OVERPAID            FailureDetail = 18
	FailureDetail_UNKNOWN_INVOICE         FailureDetail = 19
	FailureDetail_INVALID_KEYSEND         FailureDetail = 20
	FailureDetail_MPP_IN_PROGRESS         FailureDetail = 21
	FailureDetail_CIRCULAR_ROUTE          FailureDetail = 22
)

var FailureDetail_name = map[int32]string{
	0:  "UNKNOWN",
	1:  "NO_DETAIL",
	2:  "ONION_DECODE",
	3:  "LINK_NOT_ELIGIBLE",
	4:  "ON_CHAIN_TIMEOUT",
	5:  "HTLC_EXCEEDS_MAX",
	6:  "INSUFFICIENT_BALANCE",
	7:  "INCOMPLETE_FORWARD",
	8:  "HTLC_ADD_FAILED",
	9:  "FORWARDS_DISABLED",
	10: "INVOICE_CANCELED",
	11: "INVOICE_UNDERPAID",
	12: "INVOICE_EXPIRY_TOO_SOON",
	13: "INVOICE_NOT_OPEN",
	14: "MPP_INVOICE_TIMEOUT",
	15: "ADDRESS_MISMATCH",
	16: "SET_TOTAL_MISMATCH",
	17: "SET_TOTAL_TOO_LOW",
	18: "SET_OVERPAID",
	19: "UNKNOWN_INVOICE",
	20: "INVALID_KEYSEND",
	21: "MPP_IN_PROGRESS",
	22: "CIRCULAR_ROUTE",
}

var FailureDetail_value = map[string]int32{
	"UNKNOWN":                 0,
	"NO_DETAIL":               1,
	"ONION_DECODE":            2,
	"LINK_NOT_ELIGIBLE":       3,
	"ON_CHAIN_TIMEOUT":        4,
	"HTLC_EXCEEDS_MAX":        5,
	"INSUFFICIENT_BALANCE":    6,
	"INCOMPLETE_FORWARD":      7,
	"HTLC_ADD_FAILED":         8,
	"FORWARDS_DISABLED":       9,
	"INVOICE_CANCELED":        10,
	"INVOICE_UNDERPAID":       11,
	"INVOICE_EXPIRY_TOO_SOON": 12,
	"INVOICE_NOT_OPEN":        13,
	"MPP_INVOICE_TIMEOUT":     14,
	"ADDRESS_MISMATCH":        15,
	"SET_TOTAL_MISMATCH":      16,
	"SET_TOTAL_TOO_LOW":       17,
	"SET_OVERPAID":            18,
	"UNKNOWN_INVOICE":         19,
	"INVALID_KEYSEND":         20,
	"MPP_IN_PROGRESS":         21,
	"CIRCULAR_ROUTE":          22,
}

func (x FailureDetail) String() string {
	return proto.EnumName(FailureDetail_name, int32(x))
}

func (FailureDetail) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{0}
}

type PaymentState int32

const (
	//
	//Payment is still in flight.
	PaymentState_IN_FLIGHT PaymentState = 0
	//
	//Payment completed successfully.
	PaymentState_SUCCEEDED PaymentState = 1
	//
	//There are more routes to try, but the payment timeout was exceeded.
	PaymentState_FAILED_TIMEOUT PaymentState = 2
	//
	//All possible routes were tried and failed permanently. Or were no
	//routes to the destination at all.
	PaymentState_FAILED_NO_ROUTE PaymentState = 3
	//
	//A non-recoverable error has occured.
	PaymentState_FAILED_ERROR PaymentState = 4
	//
	//Payment details incorrect (unknown hash, invalid amt or
	//invalid final cltv delta)
	PaymentState_FAILED_INCORRECT_PAYMENT_DETAILS PaymentState = 5
	//
	//Insufficient local balance.
	PaymentState_FAILED_INSUFFICIENT_BALANCE PaymentState = 6
)

var PaymentState_name = map[int32]string{
	0: "IN_FLIGHT",
	1: "SUCCEEDED",
	2: "FAILED_TIMEOUT",
	3: "FAILED_NO_ROUTE",
	4: "FAILED_ERROR",
	5: "FAILED_INCORRECT_PAYMENT_DETAILS",
	6: "FAILED_INSUFFICIENT_BALANCE",
}

var PaymentState_value = map[string]int32{
	"IN_FLIGHT":                        0,
	"SUCCEEDED":                        1,
	"FAILED_TIMEOUT":                   2,
	"FAILED_NO_ROUTE":                  3,
	"FAILED_ERROR":                     4,
	"FAILED_INCORRECT_PAYMENT_DETAILS": 5,
	"FAILED_INSUFFICIENT_BALANCE":      6,
}

func (x PaymentState) String() string {
	return proto.EnumName(PaymentState_name, int32(x))
}

func (PaymentState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{1}
}

type ResolveHoldForwardAction int32

const (
	ResolveHoldForwardAction_SETTLE ResolveHoldForwardAction = 0
	ResolveHoldForwardAction_FAIL   ResolveHoldForwardAction = 1
	ResolveHoldForwardAction_RESUME ResolveHoldForwardAction = 2
)

var ResolveHoldForwardAction_name = map[int32]string{
	0: "SETTLE",
	1: "FAIL",
	2: "RESUME",
}

var ResolveHoldForwardAction_value = map[string]int32{
	"SETTLE": 0,
	"FAIL":   1,
	"RESUME": 2,
}

func (x ResolveHoldForwardAction) String() string {
	return proto.EnumName(ResolveHoldForwardAction_name, int32(x))
}

func (ResolveHoldForwardAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{2}
}

type HtlcEvent_EventType int32

const (
	HtlcEvent_UNKNOWN HtlcEvent_EventType = 0
	HtlcEvent_SEND    HtlcEvent_EventType = 1
	HtlcEvent_RECEIVE HtlcEvent_EventType = 2
	HtlcEvent_FORWARD HtlcEvent_EventType = 3
)

var HtlcEvent_EventType_name = map[int32]string{
	0: "UNKNOWN",
	1: "SEND",
	2: "RECEIVE",
	3: "FORWARD",
}

var HtlcEvent_EventType_value = map[string]int32{
	"UNKNOWN": 0,
	"SEND":    1,
	"RECEIVE": 2,
	"FORWARD": 3,
}

func (x HtlcEvent_EventType) String() string {
	return proto.EnumName(HtlcEvent_EventType_name, int32(x))
}

func (HtlcEvent_EventType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{22, 0}
}

type SendPaymentRequest struct {
	// The identity pubkey of the payment recipient
	Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
	//
	//Number of satoshis to send.
	//
	//The fields amt and amt_msat are mutually exclusive.
	Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"`
	//
	//Number of millisatoshis to send.
	//
	//The fields amt and amt_msat are mutually exclusive.
	AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
	// The hash to use within the payment's HTLC
	PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
	//
	//The CLTV delta from the current height that should be used to set the
	//timelock for the final hop.
	FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
	// An optional payment addr to be included within the last hop of the route.
	PaymentAddr []byte `protobuf:"bytes,20,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
	//
	//A bare-bones invoice for a payment within the Lightning Network.  With the
	//details of the invoice, the sender has all the data necessary to send a
	//payment to the recipient. The amount in the payment request may be zero. In
	//that case it is required to set the amt field as well. If no payment request
	//is specified, the following fields are required: dest, amt and payment_hash.
	PaymentRequest string `protobuf:"bytes,5,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
	//
	//An upper limit on the amount of time we should spend when attempting to
	//fulfill the payment. This is expressed in seconds. If we cannot make a
	//successful payment within this time frame, an error will be returned.
	//This field must be non-zero.
	TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
	//
	//The maximum number of satoshis that will be paid as a fee of the payment.
	//If this field is left to the default value of 0, only zero-fee routes will
	//be considered. This usually means single hop routes connecting directly to
	//the destination. To send the payment without a fee limit, use max int here.
	//
	//The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
	FeeLimitSat int64 `protobuf:"varint,7,opt,name=fee_limit_sat,json=feeLimitSat,proto3" json:"fee_limit_sat,omitempty"`
	//
	//The maximum number of millisatoshis that will be paid as a fee of the
	//payment. If this field is left to the default value of 0, only zero-fee
	//routes will be considered. This usually means single hop routes connecting
	//directly to the destination. To send the payment without a fee limit, use
	//max int here.
	//
	//The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
	FeeLimitMsat int64 `protobuf:"varint,13,opt,name=fee_limit_msat,json=feeLimitMsat,proto3" json:"fee_limit_msat,omitempty"`
	//
	//Deprecated, use outgoing_chan_ids. The channel id of the channel that must
	//be taken to the first hop. If zero, any channel may be used (unless
	//outgoing_chan_ids are set).
	OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` // Deprecated: Do not use.
	//
	//The channel ids of the channels are allowed for the first hop. If empty,
	//any channel may be used.
	OutgoingChanIds []uint64 `protobuf:"varint,19,rep,packed,name=outgoing_chan_ids,json=outgoingChanIds,proto3" json:"outgoing_chan_ids,omitempty"`
	//
	//The pubkey of the last hop of the route. If empty, any hop may be used.
	LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
	//
	//An optional maximum total time lock for the route. This should not exceed
	//lnd's `--max-cltv-expiry` setting. If zero, then the value of
	//`--max-cltv-expiry` is enforced.
	CltvLimit int32 `protobuf:"varint,9,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
	//
	//Optional route hints to reach the destination through private channels.
	RouteHints []*lnrpc.RouteHint `protobuf:"bytes,10,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
	//
	//An optional field that can be used to pass an arbitrary set of TLV records
	//to a peer which understands the new records. This can be used to pass
	//application specific data during the payment attempt. Record types are
	//required to be in the custom range >= 65536. When using REST, the values
	//must be encoded as base64.
	DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// If set, circular payments to self are permitted.
	AllowSelfPayment bool `protobuf:"varint,15,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"`
	//
	//Features assumed to be supported by the final node. All transitive feature
	//dependencies must also be set properly. For a given feature bit pair, either
	//optional or remote may be set, but not both. If this field is nil or empty,
	//the router will try to load destination features from the graph as a
	//fallback.
	DestFeatures []lnrpc.FeatureBit `protobuf:"varint,16,rep,packed,name=dest_features,json=destFeatures,proto3,enum=lnrpc.FeatureBit" json:"dest_features,omitempty"`
	//
	//The maximum number of partial payments that may be use to complete the full
	//amount.
	MaxParts uint32 `protobuf:"varint,17,opt,name=max_parts,json=maxParts,proto3" json:"max_parts,omitempty"`
	//
	//If set, only the final payment update is streamed back. Intermediate updates
	//that show which htlcs are still in flight are suppressed.
	NoInflightUpdates bool `protobuf:"varint,18,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
	//
	//The largest payment split that should be attempted when making a payment if
	//splitting is necessary. Setting this value will effectively cause lnd to
	//split more aggressively, vs only when it thinks it needs to. Note that this
	//value is in milli-satoshis.
	MaxShardSizeMsat     uint64   `protobuf:"varint,21,opt,name=max_shard_size_msat,json=maxShardSizeMsat,proto3" json:"max_shard_size_msat,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SendPaymentRequest) Reset()         { *m = SendPaymentRequest{} }
func (m *SendPaymentRequest) String() string { return proto.CompactTextString(m) }
func (*SendPaymentRequest) ProtoMessage()    {}
func (*SendPaymentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{0}
}

func (m *SendPaymentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendPaymentRequest.Unmarshal(m, b)
}
func (m *SendPaymentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendPaymentRequest.Marshal(b, m, deterministic)
}
func (m *SendPaymentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendPaymentRequest.Merge(m, src)
}
func (m *SendPaymentRequest) XXX_Size() int {
	return xxx_messageInfo_SendPaymentRequest.Size(m)
}
func (m *SendPaymentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SendPaymentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SendPaymentRequest proto.InternalMessageInfo

func (m *SendPaymentRequest) GetDest() []byte {
	if m != nil {
		return m.Dest
	}
	return nil
}

func (m *SendPaymentRequest) GetAmt() int64 {
	if m != nil {
		return m.Amt
	}
	return 0
}

func (m *SendPaymentRequest) GetAmtMsat() int64 {
	if m != nil {
		return m.AmtMsat
	}
	return 0
}

func (m *SendPaymentRequest) GetPaymentHash() []byte {
	if m != nil {
		return m.PaymentHash
	}
	return nil
}

func (m *SendPaymentRequest) GetFinalCltvDelta() int32 {
	if m != nil {
		return m.FinalCltvDelta
	}
	return 0
}

func (m *SendPaymentRequest) GetPaymentAddr() []byte {
	if m != nil {
		return m.PaymentAddr
	}
	return nil
}

func (m *SendPaymentRequest) GetPaymentRequest() string {
	if m != nil {
		return m.PaymentRequest
	}
	return ""
}

func (m *SendPaymentRequest) GetTimeoutSeconds() int32 {
	if m != nil {
		return m.TimeoutSeconds
	}
	return 0
}

func (m *SendPaymentRequest) GetFeeLimitSat() int64 {
	if m != nil {
		return m.FeeLimitSat
	}
	return 0
}

func (m *SendPaymentRequest) GetFeeLimitMsat() int64 {
	if m != nil {
		return m.FeeLimitMsat
	}
	return 0
}

// Deprecated: Do not use.
func (m *SendPaymentRequest) GetOutgoingChanId() uint64 {
	if m != nil {
		return m.OutgoingChanId
	}
	return 0
}

func (m *SendPaymentRequest) GetOutgoingChanIds() []uint64 {
	if m != nil {
		return m.OutgoingChanIds
	}
	return nil
}

func (m *SendPaymentRequest) GetLastHopPubkey() []byte {
	if m != nil {
		return m.LastHopPubkey
	}
	return nil
}

func (m *SendPaymentRequest) GetCltvLimit() int32 {
	if m != nil {
		return m.CltvLimit
	}
	return 0
}

func (m *SendPaymentRequest) GetRouteHints() []*lnrpc.RouteHint {
	if m != nil {
		return m.RouteHints
	}
	return nil
}

func (m *SendPaymentRequest) GetDestCustomRecords() map[uint64][]byte {
	if m != nil {
		return m.DestCustomRecords
	}
	return nil
}

func (m *SendPaymentRequest) GetAllowSelfPayment() bool {
	if m != nil {
		return m.AllowSelfPayment
	}
	return false
}

func (m *SendPaymentRequest) GetDestFeatures() []lnrpc.FeatureBit {
	if m != nil {
		return m.DestFeatures
	}
	return nil
}

func (m *SendPaymentRequest) GetMaxParts() uint32 {
	if m != nil {
		return m.MaxParts
	}
	return 0
}

func (m *SendPaymentRequest) GetNoInflightUpdates() bool {
	if m != nil {
		return m.NoInflightUpdates
	}
	return false
}

func (m *SendPaymentRequest) GetMaxShardSizeMsat() uint64 {
	if m != nil {
		return m.MaxShardSizeMsat
	}
	return 0
}

type TrackPaymentRequest struct {
	// The hash of the payment to look up.
	PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
	//
	//If set, only the final payment update is streamed back. Intermediate updates
	//that show which htlcs are still in flight are suppressed.
	NoInflightUpdates    bool     `protobuf:"varint,2,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TrackPaymentRequest) Reset()         { *m = TrackPaymentRequest{} }
func (m *TrackPaymentRequest) String() string { return proto.CompactTextString(m) }
func (*TrackPaymentRequest) ProtoMessage()    {}
func (*TrackPaymentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{1}
}

func (m *TrackPaymentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TrackPaymentRequest.Unmarshal(m, b)
}
func (m *TrackPaymentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TrackPaymentRequest.Marshal(b, m, deterministic)
}
func (m *TrackPaymentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TrackPaymentRequest.Merge(m, src)
}
func (m *TrackPaymentRequest) XXX_Size() int {
	return xxx_messageInfo_TrackPaymentRequest.Size(m)
}
func (m *TrackPaymentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TrackPaymentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TrackPaymentRequest proto.InternalMessageInfo

func (m *TrackPaymentRequest) GetPaymentHash() []byte {
	if m != nil {
		return m.PaymentHash
	}
	return nil
}

func (m *TrackPaymentRequest) GetNoInflightUpdates() bool {
	if m != nil {
		return m.NoInflightUpdates
	}
	return false
}

type RouteFeeRequest struct {
	//
	//The destination once wishes to obtain a routing fee quote to.
	Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
	//
	//The amount one wishes to send to the target destination.
	AmtSat               int64    `protobuf:"varint,2,opt,name=amt_sat,json=amtSat,proto3" json:"amt_sat,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RouteFeeRequest) Reset()         { *m = RouteFeeRequest{} }
func (m *RouteFeeRequest) String() string { return proto.CompactTextString(m) }
func (*RouteFeeRequest) ProtoMessage()    {}
func (*RouteFeeRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{2}
}

func (m *RouteFeeRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteFeeRequest.Unmarshal(m, b)
}
func (m *RouteFeeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteFeeRequest.Marshal(b, m, deterministic)
}
func (m *RouteFeeRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteFeeRequest.Merge(m, src)
}
func (m *RouteFeeRequest) XXX_Size() int {
	return xxx_messageInfo_RouteFeeRequest.Size(m)
}
func (m *RouteFeeRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteFeeRequest.DiscardUnknown(m)
}

var xxx_messageInfo_RouteFeeRequest proto.InternalMessageInfo

func (m *RouteFeeRequest) GetDest() []byte {
	if m != nil {
		return m.Dest
	}
	return nil
}

func (m *RouteFeeRequest) GetAmtSat() int64 {
	if m != nil {
		return m.AmtSat
	}
	return 0
}

type RouteFeeResponse struct {
	//
	//A lower bound of the estimated fee to the target destination within the
	//network, expressed in milli-satoshis.
	RoutingFeeMsat int64 `protobuf:"varint,1,opt,name=routing_fee_msat,json=routingFeeMsat,proto3" json:"routing_fee_msat,omitempty"`
	//
	//An estimate of the worst case time delay that can occur. Note that callers
	//will still need to factor in the final CLTV delta of the last hop into this
	//value.
	TimeLockDelay        int64    `protobuf:"varint,2,opt,name=time_lock_delay,json=timeLockDelay,proto3" json:"time_lock_delay,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RouteFeeResponse) Reset()         { *m = RouteFeeResponse{} }
func (m *RouteFeeResponse) String() string { return proto.CompactTextString(m) }
func (*RouteFeeResponse) ProtoMessage()    {}
func (*RouteFeeResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{3}
}

func (m *RouteFeeResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RouteFeeResponse.Unmarshal(m, b)
}
func (m *RouteFeeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RouteFeeResponse.Marshal(b, m, deterministic)
}
func (m *RouteFeeResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RouteFeeResponse.Merge(m, src)
}
func (m *RouteFeeResponse) XXX_Size() int {
	return xxx_messageInfo_RouteFeeResponse.Size(m)
}
func (m *RouteFeeResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RouteFeeResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RouteFeeResponse proto.InternalMessageInfo

func (m *RouteFeeResponse) GetRoutingFeeMsat() int64 {
	if m != nil {
		return m.RoutingFeeMsat
	}
	return 0
}

func (m *RouteFeeResponse) GetTimeLockDelay() int64 {
	if m != nil {
		return m.TimeLockDelay
	}
	return 0
}

type SendToRouteRequest struct {
	// The payment hash to use for the HTLC.
	PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
	// Route that should be used to attempt to complete the payment.
	Route                *lnrpc.Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *SendToRouteRequest) Reset()         { *m = SendToRouteRequest{} }
func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) }
func (*SendToRouteRequest) ProtoMessage()    {}
func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{4}
}

func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b)
}
func (m *SendToRouteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendToRouteRequest.Marshal(b, m, deterministic)
}
func (m *SendToRouteRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendToRouteRequest.Merge(m, src)
}
func (m *SendToRouteRequest) XXX_Size() int {
	return xxx_messageInfo_SendToRouteRequest.Size(m)
}
func (m *SendToRouteRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SendToRouteRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SendToRouteRequest proto.InternalMessageInfo

func (m *SendToRouteRequest) GetPaymentHash() []byte {
	if m != nil {
		return m.PaymentHash
	}
	return nil
}

func (m *SendToRouteRequest) GetRoute() *lnrpc.Route {
	if m != nil {
		return m.Route
	}
	return nil
}

type SendToRouteResponse struct {
	// The preimage obtained by making the payment.
	Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
	// The failure message in case the payment failed.
	Failure              *lnrpc.Failure `protobuf:"bytes,2,opt,name=failure,proto3" json:"failure,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *SendToRouteResponse) Reset()         { *m = SendToRouteResponse{} }
func (m *SendToRouteResponse) String() string { return proto.CompactTextString(m) }
func (*SendToRouteResponse) ProtoMessage()    {}
func (*SendToRouteResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{5}
}

func (m *SendToRouteResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendToRouteResponse.Unmarshal(m, b)
}
func (m *SendToRouteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendToRouteResponse.Marshal(b, m, deterministic)
}
func (m *SendToRouteResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendToRouteResponse.Merge(m, src)
}
func (m *SendToRouteResponse) XXX_Size() int {
	return xxx_messageInfo_SendToRouteResponse.Size(m)
}
func (m *SendToRouteResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SendToRouteResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SendToRouteResponse proto.InternalMessageInfo

func (m *SendToRouteResponse) GetPreimage() []byte {
	if m != nil {
		return m.Preimage
	}
	return nil
}

func (m *SendToRouteResponse) GetFailure() *lnrpc.Failure {
	if m != nil {
		return m.Failure
	}
	return nil
}

type ResetMissionControlRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ResetMissionControlRequest) Reset()         { *m = ResetMissionControlRequest{} }
func (m *ResetMissionControlRequest) String() string { return proto.CompactTextString(m) }
func (*ResetMissionControlRequest) ProtoMessage()    {}
func (*ResetMissionControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{6}
}

func (m *ResetMissionControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ResetMissionControlRequest.Unmarshal(m, b)
}
func (m *ResetMissionControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ResetMissionControlRequest.Marshal(b, m, deterministic)
}
func (m *ResetMissionControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ResetMissionControlRequest.Merge(m, src)
}
func (m *ResetMissionControlRequest) XXX_Size() int {
	return xxx_messageInfo_ResetMissionControlRequest.Size(m)
}
func (m *ResetMissionControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ResetMissionControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ResetMissionControlRequest proto.InternalMessageInfo

type ResetMissionControlResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ResetMissionControlResponse) Reset()         { *m = ResetMissionControlResponse{} }
func (m *ResetMissionControlResponse) String() string { return proto.CompactTextString(m) }
func (*ResetMissionControlResponse) ProtoMessage()    {}
func (*ResetMissionControlResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{7}
}

func (m *ResetMissionControlResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ResetMissionControlResponse.Unmarshal(m, b)
}
func (m *ResetMissionControlResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ResetMissionControlResponse.Marshal(b, m, deterministic)
}
func (m *ResetMissionControlResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ResetMissionControlResponse.Merge(m, src)
}
func (m *ResetMissionControlResponse) XXX_Size() int {
	return xxx_messageInfo_ResetMissionControlResponse.Size(m)
}
func (m *ResetMissionControlResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ResetMissionControlResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ResetMissionControlResponse proto.InternalMessageInfo

type QueryMissionControlRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryMissionControlRequest) Reset()         { *m = QueryMissionControlRequest{} }
func (m *QueryMissionControlRequest) String() string { return proto.CompactTextString(m) }
func (*QueryMissionControlRequest) ProtoMessage()    {}
func (*QueryMissionControlRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{8}
}

func (m *QueryMissionControlRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryMissionControlRequest.Unmarshal(m, b)
}
func (m *QueryMissionControlRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryMissionControlRequest.Marshal(b, m, deterministic)
}
func (m *QueryMissionControlRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryMissionControlRequest.Merge(m, src)
}
func (m *QueryMissionControlRequest) XXX_Size() int {
	return xxx_messageInfo_QueryMissionControlRequest.Size(m)
}
func (m *QueryMissionControlRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryMissionControlRequest.DiscardUnknown(m)
}

var xxx_messageInfo_QueryMissionControlRequest proto.InternalMessageInfo

// QueryMissionControlResponse contains mission control state.
type QueryMissionControlResponse struct {
	// Node pair-level mission control state.
	Pairs                []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *QueryMissionControlResponse) Reset()         { *m = QueryMissionControlResponse{} }
func (m *QueryMissionControlResponse) String() string { return proto.CompactTextString(m) }
func (*QueryMissionControlResponse) ProtoMessage()    {}
func (*QueryMissionControlResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{9}
}

func (m *QueryMissionControlResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryMissionControlResponse.Unmarshal(m, b)
}
func (m *QueryMissionControlResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryMissionControlResponse.Marshal(b, m, deterministic)
}
func (m *QueryMissionControlResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryMissionControlResponse.Merge(m, src)
}
func (m *QueryMissionControlResponse) XXX_Size() int {
	return xxx_messageInfo_QueryMissionControlResponse.Size(m)
}
func (m *QueryMissionControlResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryMissionControlResponse.DiscardUnknown(m)
}

var xxx_messageInfo_QueryMissionControlResponse proto.InternalMessageInfo

func (m *QueryMissionControlResponse) GetPairs() []*PairHistory {
	if m != nil {
		return m.Pairs
	}
	return nil
}

// PairHistory contains the mission control state for a particular node pair.
type PairHistory struct {
	// The source node pubkey of the pair.
	NodeFrom []byte `protobuf:"bytes,1,opt,name=node_from,json=nodeFrom,proto3" json:"node_from,omitempty"`
	// The destination node pubkey of the pair.
	NodeTo               []byte    `protobuf:"bytes,2,opt,name=node_to,json=nodeTo,proto3" json:"node_to,omitempty"`
	History              *PairData `protobuf:"bytes,7,opt,name=history,proto3" json:"history,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *PairHistory) Reset()         { *m = PairHistory{} }
func (m *PairHistory) String() string { return proto.CompactTextString(m) }
func (*PairHistory) ProtoMessage()    {}
func (*PairHistory) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{10}
}

func (m *PairHistory) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PairHistory.Unmarshal(m, b)
}
func (m *PairHistory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PairHistory.Marshal(b, m, deterministic)
}
func (m *PairHistory) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PairHistory.Merge(m, src)
}
func (m *PairHistory) XXX_Size() int {
	return xxx_messageInfo_PairHistory.Size(m)
}
func (m *PairHistory) XXX_DiscardUnknown() {
	xxx_messageInfo_PairHistory.DiscardUnknown(m)
}

var xxx_messageInfo_PairHistory proto.InternalMessageInfo

func (m *PairHistory) GetNodeFrom() []byte {
	if m != nil {
		return m.NodeFrom
	}
	return nil
}

func (m *PairHistory) GetNodeTo() []byte {
	if m != nil {
		return m.NodeTo
	}
	return nil
}

func (m *PairHistory) GetHistory() *PairData {
	if m != nil {
		return m.History
	}
	return nil
}

type PairData struct {
	// Time of last failure.
	FailTime int64 `protobuf:"varint,1,opt,name=fail_time,json=failTime,proto3" json:"fail_time,omitempty"`
	//
	//Lowest amount that failed to forward rounded to whole sats. This may be
	//set to zero if the failure is independent of amount.
	FailAmtSat int64 `protobuf:"varint,2,opt,name=fail_amt_sat,json=failAmtSat,proto3" json:"fail_amt_sat,omitempty"`
	//
	//Lowest amount that failed to forward in millisats. This may be
	//set to zero if the failure is independent of amount.
	FailAmtMsat int64 `protobuf:"varint,4,opt,name=fail_amt_msat,json=failAmtMsat,proto3" json:"fail_amt_msat,omitempty"`
	// Time of last success.
	SuccessTime int64 `protobuf:"varint,5,opt,name=success_time,json=successTime,proto3" json:"success_time,omitempty"`
	// Highest amount that we could successfully forward rounded to whole sats.
	SuccessAmtSat int64 `protobuf:"varint,6,opt,name=success_amt_sat,json=successAmtSat,proto3" json:"success_amt_sat,omitempty"`
	// Highest amount that we could successfully forward in millisats.
	SuccessAmtMsat       int64    `protobuf:"varint,7,opt,name=success_amt_msat,json=successAmtMsat,proto3" json:"success_amt_msat,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PairData) Reset()         { *m = PairData{} }
func (m *PairData) String() string { return proto.CompactTextString(m) }
func (*PairData) ProtoMessage()    {}
func (*PairData) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{11}
}

func (m *PairData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PairData.Unmarshal(m, b)
}
func (m *PairData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PairData.Marshal(b, m, deterministic)
}
func (m *PairData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PairData.Merge(m, src)
}
func (m *PairData) XXX_Size() int {
	return xxx_messageInfo_PairData.Size(m)
}
func (m *PairData) XXX_DiscardUnknown() {
	xxx_messageInfo_PairData.DiscardUnknown(m)
}

var xxx_messageInfo_PairData proto.InternalMessageInfo

func (m *PairData) GetFailTime() int64 {
	if m != nil {
		return m.FailTime
	}
	return 0
}

func (m *PairData) GetFailAmtSat() int64 {
	if m != nil {
		return m.FailAmtSat
	}
	return 0
}

func (m *PairData) GetFailAmtMsat() int64 {
	if m != nil {
		return m.FailAmtMsat
	}
	return 0
}

func (m *PairData) GetSuccessTime() int64 {
	if m != nil {
		return m.SuccessTime
	}
	return 0
}

func (m *PairData) GetSuccessAmtSat() int64 {
	if m != nil {
		return m.SuccessAmtSat
	}
	return 0
}

func (m *PairData) GetSuccessAmtMsat() int64 {
	if m != nil {
		return m.SuccessAmtMsat
	}
	return 0
}

type GetMissionControlConfigRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetMissionControlConfigRequest) Reset()         { *m = GetMissionControlConfigRequest{} }
func (m *GetMissionControlConfigRequest) String() string { return proto.CompactTextString(m) }
func (*GetMissionControlConfigRequest) ProtoMessage()    {}
func (*GetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{12}
}

func (m *GetMissionControlConfigRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMissionControlConfigRequest.Unmarshal(m, b)
}
func (m *GetMissionControlConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMissionControlConfigRequest.Marshal(b, m, deterministic)
}
func (m *GetMissionControlConfigRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMissionControlConfigRequest.Merge(m, src)
}
func (m *GetMissionControlConfigRequest) XXX_Size() int {
	return xxx_messageInfo_GetMissionControlConfigRequest.Size(m)
}
func (m *GetMissionControlConfigRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMissionControlConfigRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetMissionControlConfigRequest proto.InternalMessageInfo

type GetMissionControlConfigResponse struct {
	//
	//Mission control's currently active config.
	Config               *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *GetMissionControlConfigResponse) Reset()         { *m = GetMissionControlConfigResponse{} }
func (m *GetMissionControlConfigResponse) String() string { return proto.CompactTextString(m) }
func (*GetMissionControlConfigResponse) ProtoMessage()    {}
func (*GetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{13}
}

func (m *GetMissionControlConfigResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMissionControlConfigResponse.Unmarshal(m, b)
}
func (m *GetMissionControlConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMissionControlConfigResponse.Marshal(b, m, deterministic)
}
func (m *GetMissionControlConfigResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMissionControlConfigResponse.Merge(m, src)
}
func (m *GetMissionControlConfigResponse) XXX_Size() int {
	return xxx_messageInfo_GetMissionControlConfigResponse.Size(m)
}
func (m *GetMissionControlConfigResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMissionControlConfigResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetMissionControlConfigResponse proto.InternalMessageInfo

func (m *GetMissionControlConfigResponse) GetConfig() *MissionControlConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

type SetMissionControlConfigRequest struct {
	//
	//The config to set for mission control. Note that all values *must* be set,
	//because the full config will be applied.
	Config               *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *SetMissionControlConfigRequest) Reset()         { *m = SetMissionControlConfigRequest{} }
func (m *SetMissionControlConfigRequest) String() string { return proto.CompactTextString(m) }
func (*SetMissionControlConfigRequest) ProtoMessage()    {}
func (*SetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{14}
}

func (m *SetMissionControlConfigRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SetMissionControlConfigRequest.Unmarshal(m, b)
}
func (m *SetMissionControlConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SetMissionControlConfigRequest.Marshal(b, m, deterministic)
}
func (m *SetMissionControlConfigRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SetMissionControlConfigRequest.Merge(m, src)
}
func (m *SetMissionControlConfigRequest) XXX_Size() int {
	return xxx_messageInfo_SetMissionControlConfigRequest.Size(m)
}
func (m *SetMissionControlConfigRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SetMissionControlConfigRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SetMissionControlConfigRequest proto.InternalMessageInfo

func (m *SetMissionControlConfigRequest) GetConfig() *MissionControlConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

type SetMissionControlConfigResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SetMissionControlConfigResponse) Reset()         { *m = SetMissionControlConfigResponse{} }
func (m *SetMissionControlConfigResponse) String() string { return proto.CompactTextString(m) }
func (*SetMissionControlConfigResponse) ProtoMessage()    {}
func (*SetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{15}
}

func (m *SetMissionControlConfigResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SetMissionControlConfigResponse.Unmarshal(m, b)
}
func (m *SetMissionControlConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SetMissionControlConfigResponse.Marshal(b, m, deterministic)
}
func (m *SetMissionControlConfigResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SetMissionControlConfigResponse.Merge(m, src)
}
func (m *SetMissionControlConfigResponse) XXX_Size() int {
	return xxx_messageInfo_SetMissionControlConfigResponse.Size(m)
}
func (m *SetMissionControlConfigResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SetMissionControlConfigResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SetMissionControlConfigResponse proto.InternalMessageInfo

type MissionControlConfig struct {
	//
	//The amount of time mission control will take to restore a penalized node
	//or channel back to 50% success probability, expressed as a unix timestamp
	//in seconds. Setting this value to a higher value will penalize failures for
	//longer, making mission control less likely to route through nodes and
	//channels that we have previously recorded failures for.
	HalfLifeSeconds uint64 `protobuf:"varint,1,opt,name=half_life_seconds,json=halfLifeSeconds,proto3" json:"half_life_seconds,omitempty"`
	//
	//The probability of success mission control should assign to hop in a route
	//where it has no other information available. Higher values will make mission
	//control more willing to try hops that we have no information about, lower
	//values will discourage trying these hops.
	HopProbability float32 `protobuf:"fixed32,2,opt,name=hop_probability,json=hopProbability,proto3" json:"hop_probability,omitempty"`
	//
	//The importance that mission control should place on historical results,
	//expressed as a value in [0;1]. Setting this value to 1 will ignore all
	//historical payments and just use the hop probability to assess the
	//probability of success for each hop. A zero value ignores hop probability
	//completely and relies entirely on historical results, unless none are
	//available.
	Weight float32 `protobuf:"fixed32,3,opt,name=weight,proto3" json:"weight,omitempty"`
	//
	//The maximum number of payment results that mission control will store.
	MaximumPaymentResults uint32 `protobuf:"varint,4,opt,name=maximum_payment_results,json=maximumPaymentResults,proto3" json:"maximum_payment_results,omitempty"`
	//
	//The minimum time that must have passed since the previously recorded failure
	//before we raise the failure amount.
	MinimumFailureRelaxInterval uint64   `protobuf:"varint,5,opt,name=minimum_failure_relax_interval,json=minimumFailureRelaxInterval,proto3" json:"minimum_failure_relax_interval,omitempty"`
	XXX_NoUnkeyedLiteral        struct{} `json:"-"`
	XXX_unrecognized            []byte   `json:"-"`
	XXX_sizecache               int32    `json:"-"`
}

func (m *MissionControlConfig) Reset()         { *m = MissionControlConfig{} }
func (m *MissionControlConfig) String() string { return proto.CompactTextString(m) }
func (*MissionControlConfig) ProtoMessage()    {}
func (*MissionControlConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{16}
}

func (m *MissionControlConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MissionControlConfig.Unmarshal(m, b)
}
func (m *MissionControlConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MissionControlConfig.Marshal(b, m, deterministic)
}
func (m *MissionControlConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MissionControlConfig.Merge(m, src)
}
func (m *MissionControlConfig) XXX_Size() int {
	return xxx_messageInfo_MissionControlConfig.Size(m)
}
func (m *MissionControlConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_MissionControlConfig.DiscardUnknown(m)
}

var xxx_messageInfo_MissionControlConfig proto.InternalMessageInfo

func (m *MissionControlConfig) GetHalfLifeSeconds() uint64 {
	if m != nil {
		return m.HalfLifeSeconds
	}
	return 0
}

func (m *MissionControlConfig) GetHopProbability() float32 {
	if m != nil {
		return m.HopProbability
	}
	return 0
}

func (m *MissionControlConfig) GetWeight() float32 {
	if m != nil {
		return m.Weight
	}
	return 0
}

func (m *MissionControlConfig) GetMaximumPaymentResults() uint32 {
	if m != nil {
		return m.MaximumPaymentResults
	}
	return 0
}

func (m *MissionControlConfig) GetMinimumFailureRelaxInterval() uint64 {
	if m != nil {
		return m.MinimumFailureRelaxInterval
	}
	return 0
}

type QueryProbabilityRequest struct {
	// The source node pubkey of the pair.
	FromNode []byte `protobuf:"bytes,1,opt,name=from_node,json=fromNode,proto3" json:"from_node,omitempty"`
	// The destination node pubkey of the pair.
	ToNode []byte `protobuf:"bytes,2,opt,name=to_node,json=toNode,proto3" json:"to_node,omitempty"`
	// The amount for which to calculate a probability.
	AmtMsat              int64    `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryProbabilityRequest) Reset()         { *m = QueryProbabilityRequest{} }
func (m *QueryProbabilityRequest) String() string { return proto.CompactTextString(m) }
func (*QueryProbabilityRequest) ProtoMessage()    {}
func (*QueryProbabilityRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{17}
}

func (m *QueryProbabilityRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryProbabilityRequest.Unmarshal(m, b)
}
func (m *QueryProbabilityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryProbabilityRequest.Marshal(b, m, deterministic)
}
func (m *QueryProbabilityRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryProbabilityRequest.Merge(m, src)
}
func (m *QueryProbabilityRequest) XXX_Size() int {
	return xxx_messageInfo_QueryProbabilityRequest.Size(m)
}
func (m *QueryProbabilityRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryProbabilityRequest.DiscardUnknown(m)
}

var xxx_messageInfo_QueryProbabilityRequest proto.InternalMessageInfo

func (m *QueryProbabilityRequest) GetFromNode() []byte {
	if m != nil {
		return m.FromNode
	}
	return nil
}

func (m *QueryProbabilityRequest) GetToNode() []byte {
	if m != nil {
		return m.ToNode
	}
	return nil
}

func (m *QueryProbabilityRequest) GetAmtMsat() int64 {
	if m != nil {
		return m.AmtMsat
	}
	return 0
}

type QueryProbabilityResponse struct {
	// The success probability for the requested pair.
	Probability float64 `protobuf:"fixed64,1,opt,name=probability,proto3" json:"probability,omitempty"`
	// The historical data for the requested pair.
	History              *PairData `protobuf:"bytes,2,opt,name=history,proto3" json:"history,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *QueryProbabilityResponse) Reset()         { *m = QueryProbabilityResponse{} }
func (m *QueryProbabilityResponse) String() string { return proto.CompactTextString(m) }
func (*QueryProbabilityResponse) ProtoMessage()    {}
func (*QueryProbabilityResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{18}
}

func (m *QueryProbabilityResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryProbabilityResponse.Unmarshal(m, b)
}
func (m *QueryProbabilityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryProbabilityResponse.Marshal(b, m, deterministic)
}
func (m *QueryProbabilityResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryProbabilityResponse.Merge(m, src)
}
func (m *QueryProbabilityResponse) XXX_Size() int {
	return xxx_messageInfo_QueryProbabilityResponse.Size(m)
}
func (m *QueryProbabilityResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryProbabilityResponse.DiscardUnknown(m)
}

var xxx_messageInfo_QueryProbabilityResponse proto.InternalMessageInfo

func (m *QueryProbabilityResponse) GetProbability() float64 {
	if m != nil {
		return m.Probability
	}
	return 0
}

func (m *QueryProbabilityResponse) GetHistory() *PairData {
	if m != nil {
		return m.History
	}
	return nil
}

type BuildRouteRequest struct {
	//
	//The amount to send expressed in msat. If set to zero, the minimum routable
	//amount is used.
	AmtMsat int64 `protobuf:"varint,1,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
	//
	//CLTV delta from the current height that should be used for the timelock
	//of the final hop
	FinalCltvDelta int32 `protobuf:"varint,2,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
	//
	//The channel id of the channel that must be taken to the first hop. If zero,
	//any channel may be used.
	OutgoingChanId uint64 `protobuf:"varint,3,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
	//
	//A list of hops that defines the route. This does not include the source hop
	//pubkey.
	HopPubkeys [][]byte `protobuf:"bytes,4,rep,name=hop_pubkeys,json=hopPubkeys,proto3" json:"hop_pubkeys,omitempty"`
	// An optional payment addr to be included within the last hop of the route.
	PaymentAddr          []byte   `protobuf:"bytes,5,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BuildRouteRequest) Reset()         { *m = BuildRouteRequest{} }
func (m *BuildRouteRequest) String() string { return proto.CompactTextString(m) }
func (*BuildRouteRequest) ProtoMessage()    {}
func (*BuildRouteRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{19}
}

func (m *BuildRouteRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuildRouteRequest.Unmarshal(m, b)
}
func (m *BuildRouteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuildRouteRequest.Marshal(b, m, deterministic)
}
func (m *BuildRouteRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuildRouteRequest.Merge(m, src)
}
func (m *BuildRouteRequest) XXX_Size() int {
	return xxx_messageInfo_BuildRouteRequest.Size(m)
}
func (m *BuildRouteRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_BuildRouteRequest.DiscardUnknown(m)
}

var xxx_messageInfo_BuildRouteRequest proto.InternalMessageInfo

func (m *BuildRouteRequest) GetAmtMsat() int64 {
	if m != nil {
		return m.AmtMsat
	}
	return 0
}

func (m *BuildRouteRequest) GetFinalCltvDelta() int32 {
	if m != nil {
		return m.FinalCltvDelta
	}
	return 0
}

func (m *BuildRouteRequest) GetOutgoingChanId() uint64 {
	if m != nil {
		return m.OutgoingChanId
	}
	return 0
}

func (m *BuildRouteRequest) GetHopPubkeys() [][]byte {
	if m != nil {
		return m.HopPubkeys
	}
	return nil
}

func (m *BuildRouteRequest) GetPaymentAddr() []byte {
	if m != nil {
		return m.PaymentAddr
	}
	return nil
}

type BuildRouteResponse struct {
	//
	//Fully specified route that can be used to execute the payment.
	Route                *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *BuildRouteResponse) Reset()         { *m = BuildRouteResponse{} }
func (m *BuildRouteResponse) String() string { return proto.CompactTextString(m) }
func (*BuildRouteResponse) ProtoMessage()    {}
func (*BuildRouteResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{20}
}

func (m *BuildRouteResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuildRouteResponse.Unmarshal(m, b)
}
func (m *BuildRouteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuildRouteResponse.Marshal(b, m, deterministic)
}
func (m *BuildRouteResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuildRouteResponse.Merge(m, src)
}
func (m *BuildRouteResponse) XXX_Size() int {
	return xxx_messageInfo_BuildRouteResponse.Size(m)
}
func (m *BuildRouteResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_BuildRouteResponse.DiscardUnknown(m)
}

var xxx_messageInfo_BuildRouteResponse proto.InternalMessageInfo

func (m *BuildRouteResponse) GetRoute() *lnrpc.Route {
	if m != nil {
		return m.Route
	}
	return nil
}

type SubscribeHtlcEventsRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SubscribeHtlcEventsRequest) Reset()         { *m = SubscribeHtlcEventsRequest{} }
func (m *SubscribeHtlcEventsRequest) String() string { return proto.CompactTextString(m) }
func (*SubscribeHtlcEventsRequest) ProtoMessage()    {}
func (*SubscribeHtlcEventsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{21}
}

func (m *SubscribeHtlcEventsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SubscribeHtlcEventsRequest.Unmarshal(m, b)
}
func (m *SubscribeHtlcEventsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SubscribeHtlcEventsRequest.Marshal(b, m, deterministic)
}
func (m *SubscribeHtlcEventsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SubscribeHtlcEventsRequest.Merge(m, src)
}
func (m *SubscribeHtlcEventsRequest) XXX_Size() int {
	return xxx_messageInfo_SubscribeHtlcEventsRequest.Size(m)
}
func (m *SubscribeHtlcEventsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SubscribeHtlcEventsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SubscribeHtlcEventsRequest proto.InternalMessageInfo

//
//HtlcEvent contains the htlc event that was processed. These are served on a
//best-effort basis; events are not persisted, delivery is not guaranteed
//(in the event of a crash in the switch, forward events may be lost) and
//some events may be replayed upon restart. Events consumed from this package
//should be de-duplicated by the htlc's unique combination of incoming and
//outgoing channel id and htlc id. [EXPERIMENTAL]
type HtlcEvent struct {
	//
	//The short channel id that the incoming htlc arrived at our node on. This
	//value is zero for sends.
	IncomingChannelId uint64 `protobuf:"varint,1,opt,name=incoming_channel_id,json=incomingChannelId,proto3" json:"incoming_channel_id,omitempty"`
	//
	//The short channel id that the outgoing htlc left our node on. This value
	//is zero for receives.
	OutgoingChannelId uint64 `protobuf:"varint,2,opt,name=outgoing_channel_id,json=outgoingChannelId,proto3" json:"outgoing_channel_id,omitempty"`
	//
	//Incoming id is the index of the incoming htlc in the incoming channel.
	//This value is zero for sends.
	IncomingHtlcId uint64 `protobuf:"varint,3,opt,name=incoming_htlc_id,json=incomingHtlcId,proto3" json:"incoming_htlc_id,omitempty"`
	//
	//Outgoing id is the index of the outgoing htlc in the outgoing channel.
	//This value is zero for receives.
	OutgoingHtlcId uint64 `protobuf:"varint,4,opt,name=outgoing_htlc_id,json=outgoingHtlcId,proto3" json:"outgoing_htlc_id,omitempty"`
	//
	//The time in unix nanoseconds that the event occurred.
	TimestampNs uint64 `protobuf:"varint,5,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"`
	//
	//The event type indicates whether the htlc was part of a send, receive or
	//forward.
	EventType HtlcEvent_EventType `protobuf:"varint,6,opt,name=event_type,json=eventType,proto3,enum=routerrpc.HtlcEvent_EventType" json:"event_type,omitempty"`
	// Types that are valid to be assigned to Event:
	//	*HtlcEvent_ForwardEvent
	//	*HtlcEvent_ForwardFailEvent
	//	*HtlcEvent_SettleEvent
	//	*HtlcEvent_LinkFailEvent
	Event                isHtlcEvent_Event `protobuf_oneof:"event"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *HtlcEvent) Reset()         { *m = HtlcEvent{} }
func (m *HtlcEvent) String() string { return proto.CompactTextString(m) }
func (*HtlcEvent) ProtoMessage()    {}
func (*HtlcEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{22}
}

func (m *HtlcEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HtlcEvent.Unmarshal(m, b)
}
func (m *HtlcEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HtlcEvent.Marshal(b, m, deterministic)
}
func (m *HtlcEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HtlcEvent.Merge(m, src)
}
func (m *HtlcEvent) XXX_Size() int {
	return xxx_messageInfo_HtlcEvent.Size(m)
}
func (m *HtlcEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_HtlcEvent.DiscardUnknown(m)
}

var xxx_messageInfo_HtlcEvent proto.InternalMessageInfo

func (m *HtlcEvent) GetIncomingChannelId() uint64 {
	if m != nil {
		return m.IncomingChannelId
	}
	return 0
}

func (m *HtlcEvent) GetOutgoingChannelId() uint64 {
	if m != nil {
		return m.OutgoingChannelId
	}
	return 0
}

func (m *HtlcEvent) GetIncomingHtlcId() uint64 {
	if m != nil {
		return m.IncomingHtlcId
	}
	return 0
}

func (m *HtlcEvent) GetOutgoingHtlcId() uint64 {
	if m != nil {
		return m.OutgoingHtlcId
	}
	return 0
}

func (m *HtlcEvent) GetTimestampNs() uint64 {
	if m != nil {
		return m.TimestampNs
	}
	return 0
}

func (m *HtlcEvent) GetEventType() HtlcEvent_EventType {
	if m != nil {
		return m.EventType
	}
	return HtlcEvent_UNKNOWN
}

type isHtlcEvent_Event interface {
	isHtlcEvent_Event()
}

type HtlcEvent_ForwardEvent struct {
	ForwardEvent *ForwardEvent `protobuf:"bytes,7,opt,name=forward_event,json=forwardEvent,proto3,oneof"`
}

type HtlcEvent_ForwardFailEvent struct {
	ForwardFailEvent *ForwardFailEvent `protobuf:"bytes,8,opt,name=forward_fail_event,json=forwardFailEvent,proto3,oneof"`
}

type HtlcEvent_SettleEvent struct {
	SettleEvent *SettleEvent `protobuf:"bytes,9,opt,name=settle_event,json=settleEvent,proto3,oneof"`
}

type HtlcEvent_LinkFailEvent struct {
	LinkFailEvent *LinkFailEvent `protobuf:"bytes,10,opt,name=link_fail_event,json=linkFailEvent,proto3,oneof"`
}

func (*HtlcEvent_ForwardEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_ForwardFailEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_SettleEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_LinkFailEvent) isHtlcEvent_Event() {}

func (m *HtlcEvent) GetEvent() isHtlcEvent_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *HtlcEvent) GetForwardEvent() *ForwardEvent {
	if x, ok := m.GetEvent().(*HtlcEvent_ForwardEvent); ok {
		return x.ForwardEvent
	}
	return nil
}

func (m *HtlcEvent) GetForwardFailEvent() *ForwardFailEvent {
	if x, ok := m.GetEvent().(*HtlcEvent_ForwardFailEvent); ok {
		return x.ForwardFailEvent
	}
	return nil
}

func (m *HtlcEvent) GetSettleEvent() *SettleEvent {
	if x, ok := m.GetEvent().(*HtlcEvent_SettleEvent); ok {
		return x.SettleEvent
	}
	return nil
}

func (m *HtlcEvent) GetLinkFailEvent() *LinkFailEvent {
	if x, ok := m.GetEvent().(*HtlcEvent_LinkFailEvent); ok {
		return x.LinkFailEvent
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*HtlcEvent) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*HtlcEvent_ForwardEvent)(nil),
		(*HtlcEvent_ForwardFailEvent)(nil),
		(*HtlcEvent_SettleEvent)(nil),
		(*HtlcEvent_LinkFailEvent)(nil),
	}
}

type HtlcInfo struct {
	// The timelock on the incoming htlc.
	IncomingTimelock uint32 `protobuf:"varint,1,opt,name=incoming_timelock,json=incomingTimelock,proto3" json:"incoming_timelock,omitempty"`
	// The timelock on the outgoing htlc.
	OutgoingTimelock uint32 `protobuf:"varint,2,opt,name=outgoing_timelock,json=outgoingTimelock,proto3" json:"outgoing_timelock,omitempty"`
	// The amount of the incoming htlc.
	IncomingAmtMsat uint64 `protobuf:"varint,3,opt,name=incoming_amt_msat,json=incomingAmtMsat,proto3" json:"incoming_amt_msat,omitempty"`
	// The amount of the outgoing htlc.
	OutgoingAmtMsat      uint64   `protobuf:"varint,4,opt,name=outgoing_amt_msat,json=outgoingAmtMsat,proto3" json:"outgoing_amt_msat,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *HtlcInfo) Reset()         { *m = HtlcInfo{} }
func (m *HtlcInfo) String() string { return proto.CompactTextString(m) }
func (*HtlcInfo) ProtoMessage()    {}
func (*HtlcInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{23}
}

func (m *HtlcInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HtlcInfo.Unmarshal(m, b)
}
func (m *HtlcInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HtlcInfo.Marshal(b, m, deterministic)
}
func (m *HtlcInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HtlcInfo.Merge(m, src)
}
func (m *HtlcInfo) XXX_Size() int {
	return xxx_messageInfo_HtlcInfo.Size(m)
}
func (m *HtlcInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_HtlcInfo.DiscardUnknown(m)
}

var xxx_messageInfo_HtlcInfo proto.InternalMessageInfo

func (m *HtlcInfo) GetIncomingTimelock() uint32 {
	if m != nil {
		return m.IncomingTimelock
	}
	return 0
}

func (m *HtlcInfo) GetOutgoingTimelock() uint32 {
	if m != nil {
		return m.OutgoingTimelock
	}
	return 0
}

func (m *HtlcInfo) GetIncomingAmtMsat() uint64 {
	if m != nil {
		return m.IncomingAmtMsat
	}
	return 0
}

func (m *HtlcInfo) GetOutgoingAmtMsat() uint64 {
	if m != nil {
		return m.OutgoingAmtMsat
	}
	return 0
}

type ForwardEvent struct {
	// Info contains details about the htlc that was forwarded.
	Info                 *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *ForwardEvent) Reset()         { *m = ForwardEvent{} }
func (m *ForwardEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardEvent) ProtoMessage()    {}
func (*ForwardEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{24}
}

func (m *ForwardEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ForwardEvent.Unmarshal(m, b)
}
func (m *ForwardEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ForwardEvent.Marshal(b, m, deterministic)
}
func (m *ForwardEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ForwardEvent.Merge(m, src)
}
func (m *ForwardEvent) XXX_Size() int {
	return xxx_messageInfo_ForwardEvent.Size(m)
}
func (m *ForwardEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_ForwardEvent.DiscardUnknown(m)
}

var xxx_messageInfo_ForwardEvent proto.InternalMessageInfo

func (m *ForwardEvent) GetInfo() *HtlcInfo {
	if m != nil {
		return m.Info
	}
	return nil
}

type ForwardFailEvent struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ForwardFailEvent) Reset()         { *m = ForwardFailEvent{} }
func (m *ForwardFailEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardFailEvent) ProtoMessage()    {}
func (*ForwardFailEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{25}
}

func (m *ForwardFailEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ForwardFailEvent.Unmarshal(m, b)
}
func (m *ForwardFailEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ForwardFailEvent.Marshal(b, m, deterministic)
}
func (m *ForwardFailEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ForwardFailEvent.Merge(m, src)
}
func (m *ForwardFailEvent) XXX_Size() int {
	return xxx_messageInfo_ForwardFailEvent.Size(m)
}
func (m *ForwardFailEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_ForwardFailEvent.DiscardUnknown(m)
}

var xxx_messageInfo_ForwardFailEvent proto.InternalMessageInfo

type SettleEvent struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SettleEvent) Reset()         { *m = SettleEvent{} }
func (m *SettleEvent) String() string { return proto.CompactTextString(m) }
func (*SettleEvent) ProtoMessage()    {}
func (*SettleEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{26}
}

func (m *SettleEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SettleEvent.Unmarshal(m, b)
}
func (m *SettleEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SettleEvent.Marshal(b, m, deterministic)
}
func (m *SettleEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SettleEvent.Merge(m, src)
}
func (m *SettleEvent) XXX_Size() int {
	return xxx_messageInfo_SettleEvent.Size(m)
}
func (m *SettleEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SettleEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SettleEvent proto.InternalMessageInfo

type LinkFailEvent struct {
	// Info contains details about the htlc that we failed.
	Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	// FailureCode is the BOLT error code for the failure.
	WireFailure lnrpc.Failure_FailureCode `protobuf:"varint,2,opt,name=wire_failure,json=wireFailure,proto3,enum=lnrpc.Failure_FailureCode" json:"wire_failure,omitempty"`
	//
	//FailureDetail provides additional information about the reason for the
	//failure. This detail enriches the information provided by the wire message
	//and may be 'no detail' if the wire message requires no additional metadata.
	FailureDetail FailureDetail `protobuf:"varint,3,opt,name=failure_detail,json=failureDetail,proto3,enum=routerrpc.FailureDetail" json:"failure_detail,omitempty"`
	// A string representation of the link failure.
	FailureString        string   `protobuf:"bytes,4,opt,name=failure_string,json=failureString,proto3" json:"failure_string,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LinkFailEvent) Reset()         { *m = LinkFailEvent{} }
func (m *LinkFailEvent) String() string { return proto.CompactTextString(m) }
func (*LinkFailEvent) ProtoMessage()    {}
func (*LinkFailEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{27}
}

func (m *LinkFailEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LinkFailEvent.Unmarshal(m, b)
}
func (m *LinkFailEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LinkFailEvent.Marshal(b, m, deterministic)
}
func (m *LinkFailEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LinkFailEvent.Merge(m, src)
}
func (m *LinkFailEvent) XXX_Size() int {
	return xxx_messageInfo_LinkFailEvent.Size(m)
}
func (m *LinkFailEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_LinkFailEvent.DiscardUnknown(m)
}

var xxx_messageInfo_LinkFailEvent proto.InternalMessageInfo

func (m *LinkFailEvent) GetInfo() *HtlcInfo {
	if m != nil {
		return m.Info
	}
	return nil
}

func (m *LinkFailEvent) GetWireFailure() lnrpc.Failure_FailureCode {
	if m != nil {
		return m.WireFailure
	}
	return lnrpc.Failure_RESERVED
}

func (m *LinkFailEvent) GetFailureDetail() FailureDetail {
	if m != nil {
		return m.FailureDetail
	}
	return FailureDetail_UNKNOWN
}

func (m *LinkFailEvent) GetFailureString() string {
	if m != nil {
		return m.FailureString
	}
	return ""
}

type PaymentStatus struct {
	// Current state the payment is in.
	State PaymentState `protobuf:"varint,1,opt,name=state,proto3,enum=routerrpc.PaymentState" json:"state,omitempty"`
	//
	//The pre-image of the payment when state is SUCCEEDED.
	Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"`
	//
	//The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
	Htlcs                []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *PaymentStatus) Reset()         { *m = PaymentStatus{} }
func (m *PaymentStatus) String() string { return proto.CompactTextString(m) }
func (*PaymentStatus) ProtoMessage()    {}
func (*PaymentStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{28}
}

func (m *PaymentStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PaymentStatus.Unmarshal(m, b)
}
func (m *PaymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PaymentStatus.Marshal(b, m, deterministic)
}
func (m *PaymentStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PaymentStatus.Merge(m, src)
}
func (m *PaymentStatus) XXX_Size() int {
	return xxx_messageInfo_PaymentStatus.Size(m)
}
func (m *PaymentStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_PaymentStatus.DiscardUnknown(m)
}

var xxx_messageInfo_PaymentStatus proto.InternalMessageInfo

func (m *PaymentStatus) GetState() PaymentState {
	if m != nil {
		return m.State
	}
	return PaymentState_IN_FLIGHT
}

func (m *PaymentStatus) GetPreimage() []byte {
	if m != nil {
		return m.Preimage
	}
	return nil
}

func (m *PaymentStatus) GetHtlcs() []*lnrpc.HTLCAttempt {
	if m != nil {
		return m.Htlcs
	}
	return nil
}

type CircuitKey struct {
	/// The id of the channel that the is part of this circuit.
	ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
	/// The index of the incoming htlc in the incoming channel.
	HtlcId               uint64   `protobuf:"varint,2,opt,name=htlc_id,json=htlcId,proto3" json:"htlc_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CircuitKey) Reset()         { *m = CircuitKey{} }
func (m *CircuitKey) String() string { return proto.CompactTextString(m) }
func (*CircuitKey) ProtoMessage()    {}
func (*CircuitKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{29}
}

func (m *CircuitKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CircuitKey.Unmarshal(m, b)
}
func (m *CircuitKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CircuitKey.Marshal(b, m, deterministic)
}
func (m *CircuitKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CircuitKey.Merge(m, src)
}
func (m *CircuitKey) XXX_Size() int {
	return xxx_messageInfo_CircuitKey.Size(m)
}
func (m *CircuitKey) XXX_DiscardUnknown() {
	xxx_messageInfo_CircuitKey.DiscardUnknown(m)
}

var xxx_messageInfo_CircuitKey proto.InternalMessageInfo

func (m *CircuitKey) GetChanId() uint64 {
	if m != nil {
		return m.ChanId
	}
	return 0
}

func (m *CircuitKey) GetHtlcId() uint64 {
	if m != nil {
		return m.HtlcId
	}
	return 0
}

type ForwardHtlcInterceptRequest struct {
	//
	//The key of this forwarded htlc. It defines the incoming channel id and
	//the index in this channel.
	IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
	// The incoming htlc amount.
	IncomingAmountMsat uint64 `protobuf:"varint,5,opt,name=incoming_amount_msat,json=incomingAmountMsat,proto3" json:"incoming_amount_msat,omitempty"`
	// The incoming htlc expiry.
	IncomingExpiry uint32 `protobuf:"varint,6,opt,name=incoming_expiry,json=incomingExpiry,proto3" json:"incoming_expiry,omitempty"`
	//
	//The htlc payment hash. This value is not guaranteed to be unique per
	//request.
	PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
	// The requested outgoing channel id for this forwarded htlc. Because of
	// non-strict forwarding, this isn't necessarily the channel over which the
	// packet will be forwarded eventually. A different channel to the same peer
	// may be selected as well.
	OutgoingRequestedChanId uint64 `protobuf:"varint,7,opt,name=outgoing_requested_chan_id,json=outgoingRequestedChanId,proto3" json:"outgoing_requested_chan_id,omitempty"`
	// The outgoing htlc amount.
	OutgoingAmountMsat uint64 `protobuf:"varint,3,opt,name=outgoing_amount_msat,json=outgoingAmountMsat,proto3" json:"outgoing_amount_msat,omitempty"`
	// The outgoing htlc expiry.
	OutgoingExpiry uint32 `protobuf:"varint,4,opt,name=outgoing_expiry,json=outgoingExpiry,proto3" json:"outgoing_expiry,omitempty"`
	// Any custom records that were present in the payload.
	CustomRecords map[uint64][]byte `protobuf:"bytes,8,rep,name=custom_records,json=customRecords,proto3" json:"custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The onion blob for the next hop
	OnionBlob            []byte   `protobuf:"bytes,9,opt,name=onion_blob,json=onionBlob,proto3" json:"onion_blob,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ForwardHtlcInterceptRequest) Reset()         { *m = ForwardHtlcInterceptRequest{} }
func (m *ForwardHtlcInterceptRequest) String() string { return proto.CompactTextString(m) }
func (*ForwardHtlcInterceptRequest) ProtoMessage()    {}
func (*ForwardHtlcInterceptRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{30}
}

func (m *ForwardHtlcInterceptRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ForwardHtlcInterceptRequest.Unmarshal(m, b)
}
func (m *ForwardHtlcInterceptRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ForwardHtlcInterceptRequest.Marshal(b, m, deterministic)
}
func (m *ForwardHtlcInterceptRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ForwardHtlcInterceptRequest.Merge(m, src)
}
func (m *ForwardHtlcInterceptRequest) XXX_Size() int {
	return xxx_messageInfo_ForwardHtlcInterceptRequest.Size(m)
}
func (m *ForwardHtlcInterceptRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ForwardHtlcInterceptRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ForwardHtlcInterceptRequest proto.InternalMessageInfo

func (m *ForwardHtlcInterceptRequest) GetIncomingCircuitKey() *CircuitKey {
	if m != nil {
		return m.IncomingCircuitKey
	}
	return nil
}

func (m *ForwardHtlcInterceptRequest) GetIncomingAmountMsat() uint64 {
	if m != nil {
		return m.IncomingAmountMsat
	}
	return 0
}

func (m *ForwardHtlcInterceptRequest) GetIncomingExpiry() uint32 {
	if m != nil {
		return m.IncomingExpiry
	}
	return 0
}

func (m *ForwardHtlcInterceptRequest) GetPaymentHash() []byte {
	if m != nil {
		return m.PaymentHash
	}
	return nil
}

func (m *ForwardHtlcInterceptRequest) GetOutgoingRequestedChanId() uint64 {
	if m != nil {
		return m.OutgoingRequestedChanId
	}
	return 0
}

func (m *ForwardHtlcInterceptRequest) GetOutgoingAmountMsat() uint64 {
	if m != nil {
		return m.OutgoingAmountMsat
	}
	return 0
}

func (m *ForwardHtlcInterceptRequest) GetOutgoingExpiry() uint32 {
	if m != nil {
		return m.OutgoingExpiry
	}
	return 0
}

func (m *ForwardHtlcInterceptRequest) GetCustomRecords() map[uint64][]byte {
	if m != nil {
		return m.CustomRecords
	}
	return nil
}

func (m *ForwardHtlcInterceptRequest) GetOnionBlob() []byte {
	if m != nil {
		return m.OnionBlob
	}
	return nil
}

//*
//ForwardHtlcInterceptResponse enables the caller to resolve a previously hold
//forward. The caller can choose either to:
//- `Resume`: Execute the default behavior (usually forward).
//- `Reject`: Fail the htlc backwards.
//- `Settle`: Settle this htlc with a given preimage.
type ForwardHtlcInterceptResponse struct {
	//*
	//The key of this forwarded htlc. It defines the incoming channel id and
	//the index in this channel.
	IncomingCircuitKey *CircuitKey `protobuf:"bytes,1,opt,name=incoming_circuit_key,json=incomingCircuitKey,proto3" json:"incoming_circuit_key,omitempty"`
	// The resolve action for this intercepted htlc.
	Action ResolveHoldForwardAction `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ResolveHoldForwardAction" json:"action,omitempty"`
	// The preimage in case the resolve action is Settle.
	Preimage             []byte   `protobuf:"bytes,3,opt,name=preimage,proto3" json:"preimage,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ForwardHtlcInterceptResponse) Reset()         { *m = ForwardHtlcInterceptResponse{} }
func (m *ForwardHtlcInterceptResponse) String() string { return proto.CompactTextString(m) }
func (*ForwardHtlcInterceptResponse) ProtoMessage()    {}
func (*ForwardHtlcInterceptResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_7a0613f69d37b0a5, []int{31}
}

func (m *ForwardHtlcInterceptResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ForwardHtlcInterceptResponse.Unmarshal(m, b)
}
func (m *ForwardHtlcInterceptResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ForwardHtlcInterceptResponse.Marshal(b, m, deterministic)
}
func (m *ForwardHtlcInterceptResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ForwardHtlcInterceptResponse.Merge(m, src)
}
func (m *ForwardHtlcInterceptResponse) XXX_Size() int {
	return xxx_messageInfo_ForwardHtlcInterceptResponse.Size(m)
}
func (m *ForwardHtlcInterceptResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ForwardHtlcInterceptResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ForwardHtlcInterceptResponse proto.InternalMessageInfo

func (m *ForwardHtlcInterceptResponse) GetIncomingCircuitKey() *CircuitKey {
	if m != nil {
		return m.IncomingCircuitKey
	}
	return nil
}

func (m *ForwardHtlcInterceptResponse) GetAction() ResolveHoldForwardAction {
	if m != nil {
		return m.Action
	}
	return ResolveHoldForwardAction_SETTLE
}

func (m *ForwardHtlcInterceptResponse) GetPreimage() []byte {
	if m != nil {
		return m.Preimage
	}
	return nil
}

func init() {
	proto.RegisterEnum("routerrpc.FailureDetail", FailureDetail_name, FailureDetail_value)
	proto.RegisterEnum("routerrpc.PaymentState", PaymentState_name, PaymentState_value)
	proto.RegisterEnum("routerrpc.ResolveHoldForwardAction", ResolveHoldForwardAction_name, ResolveHoldForwardAction_value)
	proto.RegisterEnum("routerrpc.HtlcEvent_EventType", HtlcEvent_EventType_name, HtlcEvent_EventType_value)
	proto.RegisterType((*SendPaymentRequest)(nil), "routerrpc.SendPaymentRequest")
	proto.RegisterMapType((map[uint64][]byte)(nil), "routerrpc.SendPaymentRequest.DestCustomRecordsEntry")
	proto.RegisterType((*TrackPaymentRequest)(nil), "routerrpc.TrackPaymentRequest")
	proto.RegisterType((*RouteFeeRequest)(nil), "routerrpc.RouteFeeRequest")
	proto.RegisterType((*RouteFeeResponse)(nil), "routerrpc.RouteFeeResponse")
	proto.RegisterType((*SendToRouteRequest)(nil), "routerrpc.SendToRouteRequest")
	proto.RegisterType((*SendToRouteResponse)(nil), "routerrpc.SendToRouteResponse")
	proto.RegisterType((*ResetMissionControlRequest)(nil), "routerrpc.ResetMissionControlRequest")
	proto.RegisterType((*ResetMissionControlResponse)(nil), "routerrpc.ResetMissionControlResponse")
	proto.RegisterType((*QueryMissionControlRequest)(nil), "routerrpc.QueryMissionControlRequest")
	proto.RegisterType((*QueryMissionControlResponse)(nil), "routerrpc.QueryMissionControlResponse")
	proto.RegisterType((*PairHistory)(nil), "routerrpc.PairHistory")
	proto.RegisterType((*PairData)(nil), "routerrpc.PairData")
	proto.RegisterType((*GetMissionControlConfigRequest)(nil), "routerrpc.GetMissionControlConfigRequest")
	proto.RegisterType((*GetMissionControlConfigResponse)(nil), "routerrpc.GetMissionControlConfigResponse")
	proto.RegisterType((*SetMissionControlConfigRequest)(nil), "routerrpc.SetMissionControlConfigRequest")
	proto.RegisterType((*SetMissionControlConfigResponse)(nil), "routerrpc.SetMissionControlConfigResponse")
	proto.RegisterType((*MissionControlConfig)(nil), "routerrpc.MissionControlConfig")
	proto.RegisterType((*QueryProbabilityRequest)(nil), "routerrpc.QueryProbabilityRequest")
	proto.RegisterType((*QueryProbabilityResponse)(nil), "routerrpc.QueryProbabilityResponse")
	proto.RegisterType((*BuildRouteRequest)(nil), "routerrpc.BuildRouteRequest")
	proto.RegisterType((*BuildRouteResponse)(nil), "routerrpc.BuildRouteResponse")
	proto.RegisterType((*SubscribeHtlcEventsRequest)(nil), "routerrpc.SubscribeHtlcEventsRequest")
	proto.RegisterType((*HtlcEvent)(nil), "routerrpc.HtlcEvent")
	proto.RegisterType((*HtlcInfo)(nil), "routerrpc.HtlcInfo")
	proto.RegisterType((*ForwardEvent)(nil), "routerrpc.ForwardEvent")
	proto.RegisterType((*ForwardFailEvent)(nil), "routerrpc.ForwardFailEvent")
	proto.RegisterType((*SettleEvent)(nil), "routerrpc.SettleEvent")
	proto.RegisterType((*LinkFailEvent)(nil), "routerrpc.LinkFailEvent")
	proto.RegisterType((*PaymentStatus)(nil), "routerrpc.PaymentStatus")
	proto.RegisterType((*CircuitKey)(nil), "routerrpc.CircuitKey")
	proto.RegisterType((*ForwardHtlcInterceptRequest)(nil), "routerrpc.ForwardHtlcInterceptRequest")
	proto.RegisterMapType((map[uint64][]byte)(nil), "routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry")
	proto.RegisterType((*ForwardHtlcInterceptResponse)(nil), "routerrpc.ForwardHtlcInterceptResponse")
}

func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) }

var fileDescriptor_7a0613f69d37b0a5 = []byte{
	// 2854 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4b, 0x77, 0xdb, 0xc6,
	0x15, 0x0e, 0x48, 0x8a, 0x22, 0x2f, 0x5f, 0xd0, 0x50, 0xb6, 0x58, 0xca, 0x0f, 0x86, 0x79, 0x98,
	0x75, 0x13, 0xd9, 0x51, 0x7b, 0x92, 0xb4, 0x79, 0x34, 0x14, 0x09, 0x59, 0xb0, 0x29, 0x52, 0x19,
	0x52, 0x4e, 0x9c, 0x2c, 0xa6, 0x10, 0x39, 0x14, 0x51, 0xe1, 0xc1, 0x02, 0x43, 0xdb, 0xca, 0xaa,
	0xdd, 0xf5, 0xf4, 0x97, 0x74, 0xd5, 0x5f, 0xd0, 0x73, 0xda, 0x4d, 0x37, 0xfd, 0x13, 0xdd, 0xf6,
	0x17, 0x74, 0xdd, 0x33, 0x83, 0x01, 0x08, 0x48, 0x94, 0xe4, 0x3e, 0x36, 0x36, 0xf1, 0xdd, 0x6f,
	0xee, 0xdc, 0xb9, 0x73, 0xef, 0x9d, 0x3b, 0x23, 0xb8, 0xed, 0xb9, 0x0b, 0x46, 0x3d, 0x6f, 0x3e,
	0x7e, 0x14, 0xfc, 0xda, 0x99, 0x7b, 0x2e, 0x73, 0x51, 0x3e, 0xc2, 0xeb, 0x79, 0x6f, 0x3e, 0x0e,
	0xd0, 0xe6, 0xdf, 0xd6, 0x01, 0x0d, 0xa9, 0x33, 0x39, 0x32, 0xce, 0x6d, 0xea, 0x30, 0x4c, 0x7f,
	0xb3, 0xa0, 0x3e, 0x43, 0x08, 0x32, 0x13, 0xea, 0xb3, 0x9a, 0xd2, 0x50, 0x5a, 0x45, 0x2c, 0x7e,
	0x23, 0x15, 0xd2, 0x86, 0xcd, 0x6a, 0xa9, 0x86, 0xd2, 0x4a, 0x63, 0xfe, 0x13, 0xfd, 0x08, 0x72,
	0x86, 0xcd, 0x88, 0xed, 0x1b, 0xac, 0x56, 0x14, 0xf0, 0xba, 0x61, 0xb3, 0x43, 0xdf, 0x60, 0xe8,
	0x6d, 0x28, 0xce, 0x03, 0x95, 0x64, 0x66, 0xf8, 0xb3, 0x5a, 0x5a, 0x28, 0x2a, 0x48, 0xec, 0xc0,
	0xf0, 0x67, 0xa8, 0x05, 0xea, 0xd4, 0x74, 0x0c, 0x8b, 0x8c, 0x2d, 0xf6, 0x92, 0x4c, 0xa8, 0xc5,
	0x8c, 0x5a, 0xa6, 0xa1, 0xb4, 0xd6, 0x70, 0x59, 0xe0, 0x1d, 0x8b, 0xbd, 0xec, 0x72, 0x34, 0xae,
	0xcc, 0x98, 0x4c, 0xbc, 0xda, 0x66, 0x42, 0x59, 0x7b, 0x32, 0xf1, 0xd0, 0x03, 0xa8, 0x84, 0x14,
	0x2f, 0x58, 0x43, 0x6d, 0xad, 0xa1, 0xb4, 0xf2, 0xb8, 0x3c, 0x4f, 0xae, 0xec, 0x01, 0x54, 0x98,
	0x69, 0x53, 0x77, 0xc1, 0x88, 0x4f, 0xc7, 0xae, 0x33, 0xf1, 0x6b, 0xd9, 0x60, 0x52, 0x09, 0x0f,
	0x03, 0x14, 0x35, 0xa1, 0x34, 0xa5, 0x94, 0x58, 0xa6, 0x6d, 0x32, 0xc2, 0x57, 0xb8, 0x2e, 0x56,
	0x58, 0x98, 0x52, 0xda, 0xe3, 0xd8, 0xd0, 0x60, 0xe8, 0x5d, 0x28, 0x2f, 0x39, 0xc2, 0x0d, 0x25,
	0x41, 0x2a, 0x86, 0x24, 0xe1, 0x8b, 0x1d, 0x50, 0xdd, 0x05, 0x3b, 0x75, 0x4d, 0xe7, 0x94, 0x8c,
	0x67, 0x86, 0x43, 0xcc, 0x49, 0x2d, 0xd7, 0x50, 0x5a, 0x99, 0xbd, 0x4c, 0x4d, 0x79, 0xac, 0xe0,
	0x72, 0x28, 0xed, 0xcc, 0x0c, 0x47, 0x9f, 0xa0, 0x87, 0xb0, 0x71, 0x91, 0xef, 0xd7, 0xaa, 0x8d,
	0x74, 0x2b, 0x83, 0x2b, 0x49, 0xaa, 0x8f, 0xde, 0x87, 0x8a, 0x65, 0xf8, 0x8c, 0xcc, 0xdc, 0x39,
	0x99, 0x2f, 0x4e, 0xce, 0xe8, 0x79, 0xad, 0x2c, 0xbc, 0x53, 0xe2, 0xf0, 0x81, 0x3b, 0x3f, 0x12,
	0x20, 0xba, 0x0b, 0x20, 0xdc, 0x2c, 0x4c, 0xad, 0xe5, 0xc5, 0x8a, 0xf3, 0x1c, 0x11, 0x66, 0xa2,
	0x8f, 0xa0, 0x20, 0xc2, 0x83, 0xcc, 0x4c, 0x87, 0xf9, 0x35, 0x68, 0xa4, 0x5b, 0x85, 0x5d, 0x75,
	0xc7, 0x72, 0x78, 0xa4, 0x60, 0x2e, 0x39, 0x30, 0x1d, 0x86, 0xc1, 0x0b, 0x7f, 0xfa, 0x68, 0x02,
	0x55, 0x1e, 0x16, 0x64, 0xbc, 0xf0, 0x99, 0x6b, 0x13, 0x8f, 0x8e, 0x5d, 0x6f, 0xe2, 0xd7, 0x0a,
	0x62, 0xe8, 0xcf, 0x76, 0xa2, 0x68, 0xdb, 0xb9, 0x1c, 0x5e, 0x3b, 0x5d, 0xea, 0xb3, 0x8e, 0x18,
	0x87, 0x83, 0x61, 0x9a, 0xc3, 0xbc, 0x73, 0xbc, 0x31, 0xb9, 0x88, 0xa3, 0x0f, 0x00, 0x19, 0x96,
	0xe5, 0xbe, 0x22, 0x3e, 0xb5, 0xa6, 0x44, 0xee, 0x65, 0xad, 0xd2, 0x50, 0x5a, 0x39, 0xac, 0x0a,
	0xc9, 0x90, 0x5a, 0x53, 0xa9, 0x1e, 0x7d, 0x0c, 0x25, 0x61, 0xd3, 0x94, 0x1a, 0x6c, 0xe1, 0x51,
	0xbf, 0xa6, 0x36, 0xd2, 0xad, 0xf2, 0xee, 0x86, 0x5c, 0xc8, 0x7e, 0x00, 0xef, 0x99, 0x0c, 0x17,
	0x39, 0x4f, 0x7e, 0xfb, 0x68, 0x1b, 0xf2, 0xb6, 0xf1, 0x9a, 0xcc, 0x0d, 0x8f, 0xf9, 0xb5, 0x8d,
	0x86, 0xd2, 0x2a, 0xe1, 0x9c, 0x6d, 0xbc, 0x3e, 0xe2, 0xdf, 0x68, 0x07, 0xaa, 0x8e, 0x4b, 0x4c,
	0x67, 0x6a, 0x99, 0xa7, 0x33, 0x46, 0x16, 0xf3, 0x89, 0xc1, 0xa8, 0x5f, 0x43, 0xc2, 0x86, 0x0d,
	0xc7, 0xd5, 0xa5, 0xe4, 0x38, 0x10, 0xa0, 0x0f, 0xa1, 0xca, 0x95, 0xf9, 0x33, 0xc3, 0x9b, 0x10,
	0xdf, 0xfc, 0x81, 0x06, 0x91, 0x71, 0x8b, 0xef, 0x38, 0x56, 0x6d, 0xe3, 0xf5, 0x90, 0x4b, 0x86,
	0xe6, 0x0f, 0x94, 0x47, 0x47, 0xbd, 0x0b, 0xb7, 0x57, 0xbb, 0x83, 0x27, 0x1c, 0xdf, 0x4f, 0x45,
	0x0c, 0xe4, 0x3f, 0xd1, 0x26, 0xac, 0xbd, 0x34, 0xac, 0x05, 0x15, 0x49, 0x58, 0xc4, 0xc1, 0xc7,
	0x2f, 0x52, 0x9f, 0x2a, 0xcd, 0x19, 0x54, 0x47, 0x9e, 0x31, 0x3e, 0xbb, 0x90, 0xc7, 0x17, 0xd3,
	0x50, 0xb9, 0x9c, 0x86, 0x57, 0x2c, 0x2f, 0x75, 0xc5, 0xf2, 0x9a, 0x5f, 0x42, 0x45, 0x04, 0xc4,
	0x3e, 0xa5, 0xd7, 0x55, 0x8b, 0x2d, 0xe0, 0xb5, 0x40, 0x24, 0x4e, 0x50, 0x31, 0xb2, 0x86, 0xcd,
	0x73, 0xa6, 0x39, 0x01, 0x75, 0x39, 0xde, 0x9f, 0xbb, 0x8e, 0x4f, 0x79, 0x29, 0xe0, 0xf1, 0xc2,
	0x03, 0x9e, 0xe7, 0x93, 0xf0, 0x97, 0x22, 0x46, 0x95, 0x25, 0xbe, 0x4f, 0x85, 0xb7, 0x78, 0xbc,
	0xf3, 0x3c, 0x25, 0x96, 0x3b, 0x3e, 0xe3, 0x35, 0xc3, 0x38, 0x97, 0xea, 0x4b, 0x1c, 0xee, 0xb9,
	0xe3, 0xb3, 0x2e, 0x07, 0x9b, 0xdf, 0x07, 0x65, 0x6d, 0xe4, 0x8a, 0xb9, 0xfe, 0x03, 0x77, 0x34,
	0x61, 0x4d, 0x84, 0xae, 0x50, 0x5b, 0xd8, 0x2d, 0xc6, 0x73, 0x00, 0x07, 0xa2, 0xe6, 0xf7, 0x50,
	0x4d, 0x28, 0x97, 0xab, 0xa8, 0x43, 0x6e, 0xee, 0x51, 0xd3, 0x36, 0x4e, 0xa9, 0xd4, 0x1c, 0x7d,
	0xa3, 0x16, 0xac, 0x4f, 0x0d, 0xd3, 0x5a, 0x78, 0xa1, 0xe2, 0x72, 0x18, 0x93, 0x01, 0x8a, 0x43,
	0x71, 0xf3, 0x0e, 0xd4, 0x31, 0xf5, 0x29, 0x3b, 0x34, 0x7d, 0xdf, 0x74, 0x9d, 0x8e, 0xeb, 0x30,
	0xcf, 0xb5, 0xe4, 0x0a, 0x9a, 0x77, 0x61, 0x7b, 0xa5, 0x34, 0x30, 0x81, 0x0f, 0xfe, 0x7a, 0x41,
	0xbd, 0xf3, 0xd5, 0x83, 0xbf, 0x86, 0xed, 0x95, 0x52, 0x69, 0xff, 0x07, 0xb0, 0x36, 0x37, 0x4c,
	0x8f, 0xef, 0x3d, 0xcf, 0xe1, 0xdb, 0xb1, 0x1c, 0x3e, 0x32, 0x4c, 0xef, 0xc0, 0xf4, 0x99, 0xeb,
	0x9d, 0xe3, 0x80, 0xf4, 0x34, 0x93, 0x53, 0xd4, 0x54, 0xf3, 0x0f, 0x0a, 0x14, 0x62, 0x42, 0x9e,
	0x49, 0x8e, 0x3b, 0xa1, 0x64, 0xea, 0xb9, 0x76, 0xe8, 0x04, 0x0e, 0xec, 0x7b, 0xae, 0xcd, 0x63,
	0x42, 0x08, 0x99, 0x2b, 0x03, 0x38, 0xcb, 0x3f, 0x47, 0x2e, 0xfa, 0x10, 0xd6, 0x67, 0x81, 0x02,
	0x51, 0x65, 0x0b, 0xbb, 0xd5, 0x0b, 0x73, 0x77, 0x0d, 0x66, 0xe0, 0x90, 0xf3, 0x34, 0x93, 0x4b,
	0xab, 0x99, 0xa7, 0x99, 0x5c, 0x46, 0x5d, 0x7b, 0x9a, 0xc9, 0xad, 0xa9, 0xd9, 0xa7, 0x99, 0x5c,
	0x56, 0x5d, 0x6f, 0xfe, 0x53, 0x81, 0x5c, 0xc8, 0xe6, 0x96, 0x70, 0x97, 0x12, 0x1e, 0x17, 0x32,
	0x98, 0x72, 0x1c, 0x18, 0x99, 0x36, 0x45, 0x0d, 0x28, 0x0a, 0x61, 0x32, 0x44, 0x81, 0x63, 0x6d,
	0x11, 0xa6, 0xa2, 0xfc, 0x87, 0x0c, 0x11, 0x8f, 0x19, 0x59, 0xfe, 0x03, 0x4a, 0x78, 0xc8, 0xf9,
	0x8b, 0xf1, 0x98, 0xfa, 0x7e, 0x30, 0xcb, 0x5a, 0x40, 0x91, 0x98, 0x98, 0xe8, 0x7d, 0xa8, 0x84,
	0x94, 0x70, 0xae, 0x6c, 0x10, 0xaf, 0x12, 0x96, 0xd3, 0xb5, 0x40, 0x8d, 0xf3, 0xec, 0xe5, 0x81,
	0x53, 0x5e, 0x12, 0xf9, 0xa4, 0xc1, 0xe2, 0x9b, 0x0d, 0xb8, 0xf7, 0xe4, 0x62, 0x14, 0x74, 0x5c,
	0x67, 0x6a, 0x9e, 0x86, 0x9b, 0xfd, 0x1d, 0xdc, 0xbf, 0x92, 0x21, 0x37, 0xfc, 0x13, 0xc8, 0x8e,
	0x05, 0x22, 0xfc, 0x53, 0xd8, 0xbd, 0x1f, 0xf3, 0xfa, 0xca, 0x81, 0x92, 0xde, 0x7c, 0x01, 0xf7,
	0x86, 0xd7, 0xce, 0xfe, 0xdf, 0xab, 0x7e, 0x1b, 0xee, 0x0f, 0xaf, 0x37, 0xbb, 0xf9, 0xdb, 0x14,
	0x6c, 0xae, 0x22, 0xf0, 0x83, 0x73, 0x66, 0x58, 0x53, 0x62, 0x99, 0x53, 0x1a, 0x9d, 0xee, 0x41,
	0xf9, 0xac, 0x70, 0x41, 0xcf, 0x9c, 0xd2, 0xf0, 0x78, 0x7f, 0x00, 0x15, 0x71, 0x66, 0x7a, 0xee,
	0x89, 0x71, 0x62, 0x5a, 0x26, 0x0b, 0x0a, 0x49, 0x0a, 0x97, 0x67, 0xee, 0xfc, 0x68, 0x89, 0xa2,
	0xdb, 0x90, 0x7d, 0x45, 0x79, 0x01, 0x14, 0x3d, 0x4c, 0x0a, 0xcb, 0x2f, 0xf4, 0x31, 0x6c, 0xd9,
	0xc6, 0x6b, 0xd3, 0x5e, 0xd8, 0x64, 0xd9, 0x79, 0xf8, 0x0b, 0x8b, 0xf9, 0x22, 0x54, 0x4a, 0xf8,
	0x96, 0x14, 0x47, 0x25, 0x59, 0x08, 0x51, 0x07, 0xee, 0xd9, 0xa6, 0x23, 0xc6, 0xc9, 0x94, 0x27,
	0x1e, 0xb5, 0x8c, 0xd7, 0xc4, 0x74, 0x18, 0xf5, 0x5e, 0x1a, 0x96, 0x08, 0xa3, 0x0c, 0xde, 0x96,
	0xac, 0xb0, 0x40, 0x70, 0x8e, 0x2e, 0x29, 0xcd, 0x5f, 0xc3, 0x96, 0xc8, 0xe4, 0x98, 0xa1, 0xa1,
	0xe7, 0x79, 0xdc, 0x7b, 0xae, 0x4d, 0x78, 0x6a, 0x85, 0x19, 0xc8, 0x81, 0xbe, 0x3b, 0xa1, 0x3c,
	0x03, 0x99, 0x1b, 0x88, 0x64, 0x06, 0x32, 0x57, 0x08, 0xe2, 0xad, 0x5c, 0x3a, 0xd1, 0xca, 0x35,
	0xcf, 0xa0, 0x76, 0x79, 0x2e, 0x19, 0x41, 0x0d, 0x28, 0xc4, 0x3d, 0xc8, 0xa7, 0x53, 0x70, 0x1c,
	0x8a, 0xa7, 0x76, 0xea, 0xe6, 0xd4, 0x6e, 0xfe, 0x5d, 0x81, 0x8d, 0xbd, 0x85, 0x69, 0x4d, 0x12,
	0x75, 0x3b, 0x6e, 0x9d, 0x92, 0x6c, 0x34, 0x57, 0x75, 0x91, 0xa9, 0x95, 0x5d, 0xe4, 0x07, 0x2b,
	0xda, 0xb0, 0xb4, 0x68, 0xc3, 0x52, 0x2b, 0x9a, 0xb0, 0xfb, 0x50, 0x58, 0xf6, 0x54, 0x7c, 0x4b,
	0xd3, 0xad, 0x22, 0x86, 0x59, 0xd8, 0x50, 0xf9, 0x97, 0x9a, 0xd2, 0xb5, 0x4b, 0x4d, 0x69, 0xf3,
	0x53, 0x40, 0xf1, 0xb5, 0x48, 0x9f, 0x45, 0x27, 0x8c, 0x72, 0xf5, 0x09, 0x73, 0x07, 0xea, 0xc3,
	0xc5, 0x89, 0x3f, 0xf6, 0xcc, 0x13, 0x7a, 0xc0, 0xac, 0xb1, 0xf6, 0x92, 0x3a, 0xcc, 0x0f, 0x53,
	0xfb, 0x5f, 0x19, 0xc8, 0x47, 0x28, 0x3f, 0xc0, 0x4d, 0x67, 0xec, 0xda, 0xe1, 0xba, 0x1c, 0x6a,
	0xf1, 0xa5, 0x05, 0x71, 0xbf, 0x11, 0x8a, 0x3a, 0x81, 0x44, 0x9f, 0x70, 0x7e, 0xc2, 0x0f, 0x92,
	0x9f, 0x0a, 0xf8, 0x71, 0x37, 0x04, 0xfc, 0x16, 0xa8, 0x91, 0xfe, 0x19, 0xb3, 0xc6, 0x91, 0xdf,
	0x70, 0x39, 0xc4, 0xb9, 0x31, 0x01, 0x33, 0xd2, 0x1c, 0x32, 0x33, 0x01, 0x33, 0xc4, 0x25, 0xf3,
	0x6d, 0x28, 0xf2, 0x8a, 0xe9, 0x33, 0xc3, 0x9e, 0x13, 0xc7, 0x97, 0x21, 0x5f, 0x88, 0xb0, 0xbe,
	0x8f, 0xbe, 0x00, 0xa0, 0x7c, 0x7d, 0x84, 0x9d, 0xcf, 0xa9, 0x28, 0x9a, 0xe5, 0xdd, 0x7b, 0xb1,
	0xd8, 0x89, 0x1c, 0xb0, 0x23, 0xfe, 0x1d, 0x9d, 0xcf, 0x29, 0xce, 0xd3, 0xf0, 0x27, 0xfa, 0x12,
	0x4a, 0x53, 0xd7, 0x7b, 0xc5, 0x7b, 0x30, 0x01, 0xca, 0x83, 0x65, 0x2b, 0xa6, 0x61, 0x3f, 0x90,
	0x8b, 0xe1, 0x07, 0x6f, 0xe1, 0xe2, 0x34, 0xf6, 0x8d, 0x9e, 0x01, 0x0a, 0xc7, 0x8b, 0x73, 0x20,
	0x50, 0x92, 0x13, 0x4a, 0xb6, 0x2f, 0x2b, 0xe1, 0x59, 0x1a, 0x2a, 0x52, 0xa7, 0x17, 0x30, 0xf4,
	0x19, 0x14, 0x7d, 0xca, 0x98, 0x45, 0xa5, 0x9a, 0xbc, 0x50, 0x73, 0x3b, 0xd1, 0x24, 0x73, 0x71,
	0xa8, 0xa1, 0xe0, 0x2f, 0x3f, 0xd1, 0x1e, 0x54, 0x2c, 0xd3, 0x39, 0x8b, 0x9b, 0x01, 0x62, 0x7c,
	0x2d, 0x36, 0xbe, 0x67, 0x3a, 0x67, 0x71, 0x1b, 0x4a, 0x56, 0x1c, 0x68, 0x7e, 0x0e, 0xf9, 0xc8,
	0x4b, 0xa8, 0x00, 0xeb, 0xc7, 0xfd, 0x67, 0xfd, 0xc1, 0x37, 0x7d, 0xf5, 0x2d, 0x94, 0x83, 0xcc,
	0x50, 0xeb, 0x77, 0x55, 0x85, 0xc3, 0x58, 0xeb, 0x68, 0xfa, 0x73, 0x4d, 0x4d, 0xf1, 0x8f, 0xfd,
	0x01, 0xfe, 0xa6, 0x8d, 0xbb, 0x6a, 0x7a, 0x6f, 0x1d, 0xd6, 0xc4, 0xbc, 0xcd, 0x3f, 0x2b, 0x90,
	0x13, 0x3b, 0xe8, 0x4c, 0x5d, 0xf4, 0x13, 0x88, 0x82, 0x4b, 0x1c, 0x7f, 0xbc, 0x25, 0x13, 0x51,
	0x57, 0xc2, 0x51, 0xc0, 0x8c, 0x24, 0xce, 0xc9, 0x51, 0x68, 0x44, 0xe4, 0x54, 0x40, 0x0e, 0x05,
	0x11, 0xf9, 0x61, 0x4c, 0x73, 0xa2, 0x2a, 0x65, 0x70, 0x25, 0x14, 0x84, 0x67, 0x70, 0xfc, 0xb2,
	0x94, 0x38, 0xab, 0x63, 0x97, 0x25, 0xc9, 0x6d, 0x7e, 0x02, 0xc5, 0xf8, 0x9e, 0xa3, 0x07, 0x90,
	0x31, 0x9d, 0xa9, 0x2b, 0x13, 0xb1, 0x7a, 0x21, 0xb8, 0xf8, 0x22, 0xb1, 0x20, 0x34, 0x11, 0xa8,
	0x17, 0xf7, 0xb9, 0x59, 0x82, 0x42, 0x6c, 0xd3, 0x9a, 0xff, 0x50, 0xa0, 0x94, 0xd8, 0x84, 0x37,
	0xd6, 0x8e, 0xbe, 0x80, 0xe2, 0x2b, 0xd3, 0xa3, 0x24, 0xde, 0x20, 0x96, 0x77, 0xeb, 0xc9, 0x06,
	0x31, 0xfc, 0xbf, 0xe3, 0x4e, 0x28, 0x2e, 0x70, 0xbe, 0x04, 0xd0, 0x2f, 0xa1, 0x1c, 0x1e, 0x24,
	0x13, 0xca, 0x0c, 0xd3, 0x12, 0xae, 0x2a, 0x27, 0xc2, 0x43, 0x72, 0xbb, 0x42, 0x8e, 0x4b, 0xd3,
	0xf8, 0x27, 0x7a, 0x6f, 0xa9, 0xc0, 0x67, 0x9e, 0xe9, 0x9c, 0x0a, 0xff, 0xe5, 0x23, 0xda, 0x50,
	0x80, 0xbc, 0xd5, 0x2b, 0xc9, 0xb3, 0x6c, 0xc8, 0x0c, 0xb6, 0xe0, 0x37, 0x9d, 0x35, 0x9f, 0x19,
	0xb2, 0x92, 0x95, 0x13, 0xb9, 0x15, 0x23, 0x52, 0x1c, 0xb0, 0x12, 0xfd, 0x71, 0xea, 0x52, 0x7f,
	0xbc, 0xc6, 0x2b, 0x46, 0x50, 0x68, 0x0b, 0xbb, 0x48, 0x2e, 0xfe, 0x60, 0xd4, 0xeb, 0xb4, 0x19,
	0xa3, 0xf6, 0x9c, 0xe1, 0x80, 0x20, 0xfb, 0x9f, 0x2f, 0x01, 0x3a, 0xa6, 0x37, 0x5e, 0x98, 0xec,
	0x19, 0x3d, 0xe7, 0xc7, 0x5a, 0x58, 0xd1, 0x83, 0xb2, 0x97, 0x1d, 0x07, 0x55, 0x7c, 0x0b, 0xd6,
	0xc3, 0x42, 0x14, 0xd4, 0xb7, 0xec, 0x4c, 0x14, 0xa0, 0xe6, 0x5f, 0x32, 0xb0, 0x2d, 0xb7, 0x34,
	0xd8, 0x0d, 0x46, 0xbd, 0x31, 0x9d, 0x47, 0x17, 0xa7, 0x27, 0xb0, 0xb9, 0x2c, 0xaa, 0xc1, 0x44,
	0x24, 0xbc, 0x8c, 0x15, 0x76, 0x6f, 0xc5, 0x56, 0xba, 0x34, 0x03, 0xa3, 0xa8, 0xd8, 0x2e, 0x4d,
	0x7b, 0x1c, 0x53, 0x64, 0xd8, 0xee, 0xc2, 0x91, 0x21, 0x1a, 0x54, 0x3c, 0xb4, 0x0c, 0x67, 0x2e,
	0x12, 0x11, 0xfd, 0x00, 0xa2, 0x20, 0x27, 0xf4, 0xf5, 0xdc, 0xf4, 0xce, 0x45, 0xf5, 0x2b, 0x2d,
	0xcb, 0xad, 0x26, 0xd0, 0x4b, 0xb7, 0x99, 0xd4, 0xe5, 0xdb, 0xcc, 0x67, 0x50, 0x8f, 0xb2, 0x43,
	0xbe, 0x8b, 0xd0, 0x49, 0x74, 0xfa, 0xad, 0x0b, 0x1b, 0xb6, 0x42, 0x06, 0x0e, 0x09, 0xf2, 0x08,
	0x7c, 0x0c, 0x9b, 0xb1, 0xd4, 0x5a, 0x9a, 0x1e, 0x64, 0x22, 0x5a, 0x66, 0x57, 0xdc, 0xf4, 0x68,
	0x84, 0x34, 0x3d, 0xe8, 0x85, 0xa2, 0xfa, 0x2f, 0x4d, 0xff, 0x15, 0x94, 0x2f, 0xbc, 0x1b, 0xe4,
	0xc4, 0xbe, 0xff, 0xfc, 0x72, 0x65, 0x5d, 0xb5, 0x3d, 0x3b, 0x2b, 0x1e, 0x0f, 0x4a, 0xe3, 0xc4,
	0xc3, 0xc1, 0x5d, 0x00, 0xd7, 0x31, 0x5d, 0x87, 0x9c, 0x58, 0xee, 0x89, 0x28, 0xb8, 0x45, 0x9c,
	0x17, 0xc8, 0x9e, 0xe5, 0x9e, 0xd4, 0xbf, 0x02, 0xf4, 0x3f, 0xde, 0xb8, 0xff, 0xaa, 0xc0, 0x9d,
	0xd5, 0x26, 0xca, 0x73, 0xfe, 0xff, 0x16, 0x42, 0x9f, 0x41, 0xd6, 0x18, 0x33, 0xd3, 0x75, 0x64,
	0x65, 0x78, 0x27, 0x36, 0x14, 0x53, 0xdf, 0xb5, 0x5e, 0xd2, 0x03, 0xd7, 0x9a, 0x48, 0x63, 0xda,
	0x82, 0x8a, 0xe5, 0x90, 0x44, 0xd2, 0xa5, 0x93, 0x49, 0xf7, 0xf0, 0x77, 0x19, 0x28, 0x25, 0x2a,
	0x43, 0xf2, 0x68, 0x28, 0x41, 0xbe, 0x3f, 0x20, 0x5d, 0x6d, 0xd4, 0xd6, 0x7b, 0xaa, 0x82, 0x54,
	0x28, 0x0e, 0xfa, 0xfa, 0xa0, 0x4f, 0xba, 0x5a, 0x67, 0xd0, 0xe5, 0x87, 0xc4, 0x2d, 0xd8, 0xe8,
	0xe9, 0xfd, 0x67, 0xa4, 0x3f, 0x18, 0x11, 0xad, 0xa7, 0x3f, 0xd1, 0xf7, 0x7a, 0x9a, 0x9a, 0x46,
	0x9b, 0xa0, 0x0e, 0xfa, 0xa4, 0x73, 0xd0, 0xd6, 0xfb, 0x64, 0xa4, 0x1f, 0x6a, 0x83, 0xe3, 0x91,
	0x9a, 0xe1, 0x28, 0xcf, 0x66, 0xa2, 0x7d, 0xdb, 0xd1, 0xb4, 0xee, 0x90, 0x1c, 0xb6, 0xbf, 0x55,
	0xd7, 0x50, 0x0d, 0x36, 0xf5, 0xfe, 0xf0, 0x78, 0x7f, 0x5f, 0xef, 0xe8, 0x5a, 0x7f, 0x44, 0xf6,
	0xda, 0xbd, 0x76, 0xbf, 0xa3, 0xa9, 0x59, 0x74, 0x1b, 0x90, 0xde, 0xef, 0x0c, 0x0e, 0x8f, 0x7a,
	0xda, 0x48, 0x23, 0xe1, 0x61, 0xb4, 0x8e, 0xaa, 0x50, 0x11, 0x7a, 0xda, 0xdd, 0x2e, 0xd9, 0x6f,
	0xeb, 0x3d, 0xad, 0xab, 0xe6, 0xb8, 0x25, 0x92, 0x31, 0x24, 0x5d, 0x7d, 0xd8, 0xde, 0xe3, 0x70,
	0x9e, 0xcf, 0xa9, 0xf7, 0x9f, 0x0f, 0xf4, 0x8e, 0x46, 0x3a, 0x5c, 0x2d, 0x47, 0x81, 0x93, 0x43,
	0xf4, 0xb8, 0xdf, 0xd5, 0xf0, 0x51, 0x5b, 0xef, 0xaa, 0x05, 0xb4, 0x0d, 0x5b, 0x21, 0xac, 0x7d,
	0x7b, 0xa4, 0xe3, 0x17, 0x64, 0x34, 0x18, 0x90, 0xe1, 0x60, 0xd0, 0x57, 0x8b, 0x71, 0x4d, 0x7c,
	0xb5, 0x83, 0x23, 0xad, 0xaf, 0x96, 0xd0, 0x16, 0x54, 0x0f, 0x8f, 0x8e, 0x48, 0x28, 0x09, 0x17,
	0x5b, 0xe6, 0xf4, 0x76, 0xb7, 0x8b, 0xb5, 0xe1, 0x90, 0x1c, 0xea, 0xc3, 0xc3, 0xf6, 0xa8, 0x73,
	0xa0, 0x56, 0xf8, 0x92, 0x86, 0xda, 0x88, 0x8c, 0x06, 0xa3, 0x76, 0x6f, 0x89, 0xab, 0xdc, 0xa0,
	0x25, 0xce, 0x27, 0xed, 0x0d, 0xbe, 0x51, 0x37, 0xb8, 0xc3, 0x39, 0x3c, 0x78, 0x2e, 0x4d, 0x44,
	0x7c, 0xed, 0x72, 0x7b, 0xc2, 0x39, 0xd5, 0x2a, 0x07, 0xf5, 0xfe, 0xf3, 0x76, 0x4f, 0xef, 0x92,
	0x67, 0xda, 0x0b, 0x71, 0x98, 0x6f, 0x72, 0x30, 0xb0, 0x8c, 0x1c, 0xe1, 0xc1, 0x13, 0x6e, 0x88,
	0x7a, 0x0b, 0x21, 0x28, 0x77, 0x74, 0xdc, 0x39, 0xee, 0xb5, 0x31, 0xc1, 0x83, 0xe3, 0x91, 0xa6,
	0xde, 0x7e, 0xf8, 0x27, 0x05, 0x8a, 0xf1, 0x62, 0xcd, 0x77, 0x5d, 0xef, 0x93, 0xfd, 0x9e, 0xfe,
	0xe4, 0x60, 0x14, 0x04, 0xc1, 0xf0, 0xb8, 0xc3, 0xb7, 0x4c, 0xe3, 0x4d, 0x02, 0x82, 0x72, 0xe0,
	0xf4, 0x68, 0xb1, 0x29, 0x3e, 0x97, 0xc4, 0xfa, 0x03, 0xa9, 0x37, 0xcd, 0x8d, 0x97, 0xa0, 0x86,
	0xf1, 0x00, 0xab, 0x19, 0xf4, 0x2e, 0x34, 0x24, 0xc2, 0xf7, 0x15, 0x63, 0xad, 0x33, 0x22, 0x47,
	0xed, 0x17, 0x87, 0x7c, 0xdb, 0x83, 0x20, 0x1b, 0xaa, 0x6b, 0xe8, 0x3e, 0x6c, 0x47, 0xac, 0x55,
	0x71, 0xf1, 0xf0, 0x73, 0xa8, 0x5d, 0x15, 0xf4, 0x08, 0x20, 0x3b, 0xd4, 0x46, 0xa3, 0x9e, 0x16,
	0x34, 0x36, 0xfb, 0x41, 0xe0, 0x02, 0x64, 0xb1, 0x36, 0x3c, 0x3e, 0xd4, 0xd4, 0xd4, 0xee, 0x1f,
	0xf9, 0x87, 0xc8, 0x1e, 0xf4, 0x15, 0x94, 0x62, 0x4f, 0x93, 0xcf, 0x77, 0xd1, 0xdd, 0x6b, 0x1f,
	0x2d, 0xeb, 0xe1, 0x8b, 0x8d, 0x84, 0x1f, 0x2b, 0x68, 0x0f, 0xca, 0xf1, 0x47, 0xb7, 0xe7, 0xbb,
	0x28, 0xde, 0xa0, 0xae, 0x78, 0x8f, 0x5b, 0xa1, 0xe3, 0x19, 0xa8, 0x9a, 0xcf, 0x4c, 0x9b, 0x9f,
	0x93, 0xf2, 0x59, 0x0c, 0xd5, 0xe3, 0x09, 0x9e, 0x7c, 0x6b, 0xab, 0x6f, 0xaf, 0x94, 0xc9, 0x92,
	0xf3, 0x35, 0xef, 0x49, 0xa2, 0x87, 0xa9, 0x4b, 0x0b, 0x4a, 0xbe, 0x86, 0xd5, 0xef, 0x5d, 0x25,
	0x96, 0xf7, 0xec, 0xf4, 0xef, 0x53, 0x7c, 0x8d, 0xa5, 0x98, 0x6c, 0x85, 0x97, 0x2e, 0x28, 0x5d,
	0x71, 0x72, 0xa3, 0x09, 0x54, 0x57, 0x3c, 0x5a, 0xa1, 0xf7, 0x92, 0x75, 0xec, 0x8a, 0x27, 0xaf,
	0xfa, 0xfb, 0x37, 0xd1, 0xe4, 0xe2, 0x27, 0x50, 0x5d, 0xf1, 0xba, 0x95, 0x98, 0xe5, 0xea, 0xb7,
	0xb1, 0xc4, 0x2c, 0xd7, 0x3d, 0x92, 0xcd, 0x61, 0xeb, 0x8a, 0x67, 0x15, 0xf4, 0xe3, 0x98, 0x8a,
	0xeb, 0x1f, 0x67, 0xea, 0x0f, 0xdf, 0x84, 0xba, 0x9c, 0x71, 0xf8, 0x06, 0x33, 0x0e, 0xdf, 0x7c,
	0xc6, 0x1b, 0x1e, 0x58, 0xd0, 0xf7, 0xa0, 0x5e, 0xbc, 0xf1, 0xa3, 0xe6, 0x45, 0xff, 0x5c, 0x7e,
	0x7a, 0xa8, 0xbf, 0x73, 0x2d, 0x47, 0x2a, 0xd7, 0x01, 0x96, 0x97, 0x62, 0x74, 0x27, 0x36, 0xe4,
	0xd2, 0xbd, 0xbf, 0x7e, 0xf7, 0x0a, 0xa9, 0x54, 0x35, 0x82, 0xea, 0x8a, 0x5b, 0x72, 0x62, 0xc7,
	0xaf, 0xbe, 0x45, 0xd7, 0x37, 0x57, 0x5d, 0x26, 0x1f, 0x2b, 0xe8, 0x30, 0x48, 0xa2, 0xf0, 0x6f,
	0x0a, 0x37, 0x54, 0x85, 0xda, 0xea, 0xa6, 0x77, 0xe1, 0x8b, 0xf4, 0x79, 0xac, 0xa0, 0x01, 0x14,
	0xe3, 0x95, 0xe0, 0xc6, 0x12, 0x71, 0xa3, 0xc2, 0x29, 0x54, 0x12, 0x0d, 0x87, 0xeb, 0xa1, 0x07,
	0x37, 0xb6, 0x4d, 0x81, 0xc7, 0x12, 0x51, 0x7e, 0x4d, 0x7f, 0xd5, 0x52, 0x1e, 0x2b, 0x7b, 0x1f,
	0x7d, 0xf7, 0xe8, 0xd4, 0x64, 0xb3, 0xc5, 0xc9, 0xce, 0xd8, 0xb5, 0x1f, 0x89, 0xbf, 0x01, 0x38,
	0xa6, 0x73, 0xea, 0x50, 0xf6, 0xca, 0xf5, 0xce, 0x1e, 0x59, 0xce, 0xe4, 0x91, 0x48, 0xf5, 0x47,
	0x91, 0xca, 0x93, 0xac, 0xf8, 0xa3, 0xe2, 0x4f, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xe5,
	0x92, 0xf0, 0x84, 0x1c, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// RouterClient is the client API for Router service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RouterClient interface {
	//
	//SendPaymentV2 attempts to route a payment described by the passed
	//PaymentRequest to the final destination. The call returns a stream of
	//payment updates.
	SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error)
	//
	//TrackPaymentV2 returns an update stream for the payment identified by the
	//payment hash.
	TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error)
	//
	//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
	//may cost to send an HTLC to the target end destination.
	EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error)
	//
	//Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
	//the specified route. This method differs from SendPayment in that it
	//allows users to specify a full route manually. This can be used for
	//things like rebalancing, and atomic swaps. It differs from the newer
	//SendToRouteV2 in that it doesn't return the full HTLC information.
	SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error)
	//
	//SendToRouteV2 attempts to make a payment via the specified route. This
	//method differs from SendPayment in that it allows users to specify a full
	//route manually. This can be used for things like rebalancing, and atomic
	//swaps.
	SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error)
	//
	//ResetMissionControl clears all mission control state and starts with a clean
	//slate.
	ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error)
	//
	//QueryMissionControl exposes the internal mission control state to callers.
	//It is a development feature.
	QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error)
	//
	//GetMissionControlConfig returns mission control's current config.
	GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error)
	//
	//SetMissionControlConfig will set mission control's config, if the config
	//provided is valid.
	SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error)
	//
	//QueryProbability returns the current success probability estimate for a
	//given node pair and amount.
	QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error)
	//
	//BuildRoute builds a fully specified route based on a list of hop public
	//keys. It retrieves the relevant channel policies from the graph in order to
	//calculate the correct fees and time locks.
	BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error)
	//
	//SubscribeHtlcEvents creates a uni-directional stream from the server to
	//the client which delivers a stream of htlc events.
	SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error)
	//
	//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
	//described by the passed PaymentRequest to the final destination. The call
	//returns a stream of payment status updates.
	SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error)
	//
	//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
	//the payment identified by the payment hash.
	TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error)
	//*
	//HtlcInterceptor dispatches a bi-directional streaming RPC in which
	//Forwarded HTLC requests are sent to the client and the client responds with
	//a boolean that tells LND if this htlc should be intercepted.
	//In case of interception, the htlc can be either settled, cancelled or
	//resumed later by using the ResolveHoldForward endpoint.
	HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error)
}

type routerClient struct {
	cc *grpc.ClientConn
}

func NewRouterClient(cc *grpc.ClientConn) RouterClient {
	return &routerClient{cc}
}

func (c *routerClient) SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[0], "/routerrpc.Router/SendPaymentV2", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerSendPaymentV2Client{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Router_SendPaymentV2Client interface {
	Recv() (*lnrpc.Payment, error)
	grpc.ClientStream
}

type routerSendPaymentV2Client struct {
	grpc.ClientStream
}

func (x *routerSendPaymentV2Client) Recv() (*lnrpc.Payment, error) {
	m := new(lnrpc.Payment)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *routerClient) TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[1], "/routerrpc.Router/TrackPaymentV2", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerTrackPaymentV2Client{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Router_TrackPaymentV2Client interface {
	Recv() (*lnrpc.Payment, error)
	grpc.ClientStream
}

type routerTrackPaymentV2Client struct {
	grpc.ClientStream
}

func (x *routerTrackPaymentV2Client) Recv() (*lnrpc.Payment, error) {
	m := new(lnrpc.Payment)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *routerClient) EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error) {
	out := new(RouteFeeResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/EstimateRouteFee", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *routerClient) SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error) {
	out := new(SendToRouteResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRoute", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) SendToRouteV2(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*lnrpc.HTLCAttempt, error) {
	out := new(lnrpc.HTLCAttempt)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/SendToRouteV2", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error) {
	out := new(ResetMissionControlResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/ResetMissionControl", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error) {
	out := new(QueryMissionControlResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryMissionControl", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) GetMissionControlConfig(ctx context.Context, in *GetMissionControlConfigRequest, opts ...grpc.CallOption) (*GetMissionControlConfigResponse, error) {
	out := new(GetMissionControlConfigResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/GetMissionControlConfig", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) SetMissionControlConfig(ctx context.Context, in *SetMissionControlConfigRequest, opts ...grpc.CallOption) (*SetMissionControlConfigResponse, error) {
	out := new(SetMissionControlConfigResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/SetMissionControlConfig", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error) {
	out := new(QueryProbabilityResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/QueryProbability", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error) {
	out := new(BuildRouteResponse)
	err := c.cc.Invoke(ctx, "/routerrpc.Router/BuildRoute", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *routerClient) SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[2], "/routerrpc.Router/SubscribeHtlcEvents", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerSubscribeHtlcEventsClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Router_SubscribeHtlcEventsClient interface {
	Recv() (*HtlcEvent, error)
	grpc.ClientStream
}

type routerSubscribeHtlcEventsClient struct {
	grpc.ClientStream
}

func (x *routerSubscribeHtlcEventsClient) Recv() (*HtlcEvent, error) {
	m := new(HtlcEvent)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// Deprecated: Do not use.
func (c *routerClient) SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[3], "/routerrpc.Router/SendPayment", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerSendPaymentClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Router_SendPaymentClient interface {
	Recv() (*PaymentStatus, error)
	grpc.ClientStream
}

type routerSendPaymentClient struct {
	grpc.ClientStream
}

func (x *routerSendPaymentClient) Recv() (*PaymentStatus, error) {
	m := new(PaymentStatus)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// Deprecated: Do not use.
func (c *routerClient) TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[4], "/routerrpc.Router/TrackPayment", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerTrackPaymentClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Router_TrackPaymentClient interface {
	Recv() (*PaymentStatus, error)
	grpc.ClientStream
}

type routerTrackPaymentClient struct {
	grpc.ClientStream
}

func (x *routerTrackPaymentClient) Recv() (*PaymentStatus, error) {
	m := new(PaymentStatus)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *routerClient) HtlcInterceptor(ctx context.Context, opts ...grpc.CallOption) (Router_HtlcInterceptorClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Router_serviceDesc.Streams[5], "/routerrpc.Router/HtlcInterceptor", opts...)
	if err != nil {
		return nil, err
	}
	x := &routerHtlcInterceptorClient{stream}
	return x, nil
}

type Router_HtlcInterceptorClient interface {
	Send(*ForwardHtlcInterceptResponse) error
	Recv() (*ForwardHtlcInterceptRequest, error)
	grpc.ClientStream
}

type routerHtlcInterceptorClient struct {
	grpc.ClientStream
}

func (x *routerHtlcInterceptorClient) Send(m *ForwardHtlcInterceptResponse) error {
	return x.ClientStream.SendMsg(m)
}

func (x *routerHtlcInterceptorClient) Recv() (*ForwardHtlcInterceptRequest, error) {
	m := new(ForwardHtlcInterceptRequest)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// RouterServer is the server API for Router service.
type RouterServer interface {
	//
	//SendPaymentV2 attempts to route a payment described by the passed
	//PaymentRequest to the final destination. The call returns a stream of
	//payment updates.
	SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error
	//
	//TrackPaymentV2 returns an update stream for the payment identified by the
	//payment hash.
	TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error
	//
	//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
	//may cost to send an HTLC to the target end destination.
	EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error)
	//
	//Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
	//the specified route. This method differs from SendPayment in that it
	//allows users to specify a full route manually. This can be used for
	//things like rebalancing, and atomic swaps. It differs from the newer
	//SendToRouteV2 in that it doesn't return the full HTLC information.
	SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error)
	//
	//SendToRouteV2 attempts to make a payment via the specified route. This
	//method differs from SendPayment in that it allows users to specify a full
	//route manually. This can be used for things like rebalancing, and atomic
	//swaps.
	SendToRouteV2(context.Context, *SendToRouteRequest) (*lnrpc.HTLCAttempt, error)
	//
	//ResetMissionControl clears all mission control state and starts with a clean
	//slate.
	ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error)
	//
	//QueryMissionControl exposes the internal mission control state to callers.
	//It is a development feature.
	QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error)
	//
	//GetMissionControlConfig returns mission control's current config.
	GetMissionControlConfig(context.Context, *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error)
	//
	//SetMissionControlConfig will set mission control's config, if the config
	//provided is valid.
	SetMissionControlConfig(context.Context, *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error)
	//
	//QueryProbability returns the current success probability estimate for a
	//given node pair and amount.
	QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error)
	//
	//BuildRoute builds a fully specified route based on a list of hop public
	//keys. It retrieves the relevant channel policies from the graph in order to
	//calculate the correct fees and time locks.
	BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error)
	//
	//SubscribeHtlcEvents creates a uni-directional stream from the server to
	//the client which delivers a stream of htlc events.
	SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error
	//
	//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
	//described by the passed PaymentRequest to the final destination. The call
	//returns a stream of payment status updates.
	SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error
	//
	//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
	//the payment identified by the payment hash.
	TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error
	//*
	//HtlcInterceptor dispatches a bi-directional streaming RPC in which
	//Forwarded HTLC requests are sent to the client and the client responds with
	//a boolean that tells LND if this htlc should be intercepted.
	//In case of interception, the htlc can be either settled, cancelled or
	//resumed later by using the ResolveHoldForward endpoint.
	HtlcInterceptor(Router_HtlcInterceptorServer) error
}

// UnimplementedRouterServer can be embedded to have forward compatible implementations.
type UnimplementedRouterServer struct {
}

func (*UnimplementedRouterServer) SendPaymentV2(req *SendPaymentRequest, srv Router_SendPaymentV2Server) error {
	return status.Errorf(codes.Unimplemented, "method SendPaymentV2 not implemented")
}
func (*UnimplementedRouterServer) TrackPaymentV2(req *TrackPaymentRequest, srv Router_TrackPaymentV2Server) error {
	return status.Errorf(codes.Unimplemented, "method TrackPaymentV2 not implemented")
}
func (*UnimplementedRouterServer) EstimateRouteFee(ctx context.Context, req *RouteFeeRequest) (*RouteFeeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EstimateRouteFee not implemented")
}
func (*UnimplementedRouterServer) SendToRoute(ctx context.Context, req *SendToRouteRequest) (*SendToRouteResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendToRoute not implemented")
}
func (*UnimplementedRouterServer) SendToRouteV2(ctx context.Context, req *SendToRouteRequest) (*lnrpc.HTLCAttempt, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendToRouteV2 not implemented")
}
func (*UnimplementedRouterServer) ResetMissionControl(ctx context.Context, req *ResetMissionControlRequest) (*ResetMissionControlResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ResetMissionControl not implemented")
}
func (*UnimplementedRouterServer) QueryMissionControl(ctx context.Context, req *QueryMissionControlRequest) (*QueryMissionControlResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryMissionControl not implemented")
}
func (*UnimplementedRouterServer) GetMissionControlConfig(ctx context.Context, req *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMissionControlConfig not implemented")
}
func (*UnimplementedRouterServer) SetMissionControlConfig(ctx context.Context, req *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetMissionControlConfig not implemented")
}
func (*UnimplementedRouterServer) QueryProbability(ctx context.Context, req *QueryProbabilityRequest) (*QueryProbabilityResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method QueryProbability not implemented")
}
func (*UnimplementedRouterServer) BuildRoute(ctx context.Context, req *BuildRouteRequest) (*BuildRouteResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BuildRoute not implemented")
}
func (*UnimplementedRouterServer) SubscribeHtlcEvents(req *SubscribeHtlcEventsRequest, srv Router_SubscribeHtlcEventsServer) error {
	return status.Errorf(codes.Unimplemented, "method SubscribeHtlcEvents not implemented")
}
func (*UnimplementedRouterServer) SendPayment(req *SendPaymentRequest, srv Router_SendPaymentServer) error {
	return status.Errorf(codes.Unimplemented, "method SendPayment not implemented")
}
func (*UnimplementedRouterServer) TrackPayment(req *TrackPaymentRequest, srv Router_TrackPaymentServer) error {
	return status.Errorf(codes.Unimplemented, "method TrackPayment not implemented")
}
func (*UnimplementedRouterServer) HtlcInterceptor(srv Router_HtlcInterceptorServer) error {
	return status.Errorf(codes.Unimplemented, "method HtlcInterceptor not implemented")
}

func RegisterRouterServer(s *grpc.Server, srv RouterServer) {
	s.RegisterService(&_Router_serviceDesc, srv)
}

func _Router_SendPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SendPaymentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(RouterServer).SendPaymentV2(m, &routerSendPaymentV2Server{stream})
}

type Router_SendPaymentV2Server interface {
	Send(*lnrpc.Payment) error
	grpc.ServerStream
}

type routerSendPaymentV2Server struct {
	grpc.ServerStream
}

func (x *routerSendPaymentV2Server) Send(m *lnrpc.Payment) error {
	return x.ServerStream.SendMsg(m)
}

func _Router_TrackPaymentV2_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TrackPaymentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(RouterServer).TrackPaymentV2(m, &routerTrackPaymentV2Server{stream})
}

type Router_TrackPaymentV2Server interface {
	Send(*lnrpc.Payment) error
	grpc.ServerStream
}

type routerTrackPaymentV2Server struct {
	grpc.ServerStream
}

func (x *routerTrackPaymentV2Server) Send(m *lnrpc.Payment) error {
	return x.ServerStream.SendMsg(m)
}

func _Router_EstimateRouteFee_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RouteFeeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).EstimateRouteFee(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/EstimateRouteFee",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).EstimateRouteFee(ctx, req.(*RouteFeeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_SendToRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendToRouteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).SendToRoute(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/SendToRoute",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).SendToRoute(ctx, req.(*SendToRouteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_SendToRouteV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendToRouteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).SendToRouteV2(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/SendToRouteV2",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).SendToRouteV2(ctx, req.(*SendToRouteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_ResetMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResetMissionControlRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).ResetMissionControl(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/ResetMissionControl",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).ResetMissionControl(ctx, req.(*ResetMissionControlRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_QueryMissionControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(QueryMissionControlRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).QueryMissionControl(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/QueryMissionControl",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).QueryMissionControl(ctx, req.(*QueryMissionControlRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_GetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMissionControlConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).GetMissionControlConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/GetMissionControlConfig",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).GetMissionControlConfig(ctx, req.(*GetMissionControlConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_SetMissionControlConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetMissionControlConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).SetMissionControlConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/SetMissionControlConfig",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).SetMissionControlConfig(ctx, req.(*SetMissionControlConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_QueryProbability_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(QueryProbabilityRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).QueryProbability(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/QueryProbability",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).QueryProbability(ctx, req.(*QueryProbabilityRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_BuildRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BuildRouteRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RouterServer).BuildRoute(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/routerrpc.Router/BuildRoute",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RouterServer).BuildRoute(ctx, req.(*BuildRouteRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Router_SubscribeHtlcEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SubscribeHtlcEventsRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(RouterServer).SubscribeHtlcEvents(m, &routerSubscribeHtlcEventsServer{stream})
}

type Router_SubscribeHtlcEventsServer interface {
	Send(*HtlcEvent) error
	grpc.ServerStream
}

type routerSubscribeHtlcEventsServer struct {
	grpc.ServerStream
}

func (x *routerSubscribeHtlcEventsServer) Send(m *HtlcEvent) error {
	return x.ServerStream.SendMsg(m)
}

func _Router_SendPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SendPaymentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(RouterServer).SendPayment(m, &routerSendPaymentServer{stream})
}

type Router_SendPaymentServer interface {
	Send(*PaymentStatus) error
	grpc.ServerStream
}

type routerSendPaymentServer struct {
	grpc.ServerStream
}

func (x *routerSendPaymentServer) Send(m *PaymentStatus) error {
	return x.ServerStream.SendMsg(m)
}

func _Router_TrackPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TrackPaymentRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(RouterServer).TrackPayment(m, &routerTrackPaymentServer{stream})
}

type Router_TrackPaymentServer interface {
	Send(*PaymentStatus) error
	grpc.ServerStream
}

type routerTrackPaymentServer struct {
	grpc.ServerStream
}

func (x *routerTrackPaymentServer) Send(m *PaymentStatus) error {
	return x.ServerStream.SendMsg(m)
}

func _Router_HtlcInterceptor_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(RouterServer).HtlcInterceptor(&routerHtlcInterceptorServer{stream})
}

type Router_HtlcInterceptorServer interface {
	Send(*ForwardHtlcInterceptRequest) error
	Recv() (*ForwardHtlcInterceptResponse, error)
	grpc.ServerStream
}

type routerHtlcInterceptorServer struct {
	grpc.ServerStream
}

func (x *routerHtlcInterceptorServer) Send(m *ForwardHtlcInterceptRequest) error {
	return x.ServerStream.SendMsg(m)
}

func (x *routerHtlcInterceptorServer) Recv() (*ForwardHtlcInterceptResponse, error) {
	m := new(ForwardHtlcInterceptResponse)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

var _Router_serviceDesc = grpc.ServiceDesc{
	ServiceName: "routerrpc.Router",
	HandlerType: (*RouterServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "EstimateRouteFee",
			Handler:    _Router_EstimateRouteFee_Handler,
		},
		{
			MethodName: "SendToRoute",
			Handler:    _Router_SendToRoute_Handler,
		},
		{
			MethodName: "SendToRouteV2",
			Handler:    _Router_SendToRouteV2_Handler,
		},
		{
			MethodName: "ResetMissionControl",
			Handler:    _Router_ResetMissionControl_Handler,
		},
		{
			MethodName: "QueryMissionControl",
			Handler:    _Router_QueryMissionControl_Handler,
		},
		{
			MethodName: "GetMissionControlConfig",
			Handler:    _Router_GetMissionControlConfig_Handler,
		},
		{
			MethodName: "SetMissionControlConfig",
			Handler:    _Router_SetMissionControlConfig_Handler,
		},
		{
			MethodName: "QueryProbability",
			Handler:    _Router_QueryProbability_Handler,
		},
		{
			MethodName: "BuildRoute",
			Handler:    _Router_BuildRoute_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "SendPaymentV2",
			Handler:       _Router_SendPaymentV2_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "TrackPaymentV2",
			Handler:       _Router_TrackPaymentV2_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "SubscribeHtlcEvents",
			Handler:       _Router_SubscribeHtlcEvents_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "SendPayment",
			Handler:       _Router_SendPayment_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "TrackPayment",
			Handler:       _Router_TrackPayment_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "HtlcInterceptor",
			Handler:       _Router_HtlcInterceptor_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "routerrpc/router.proto",
}
