// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v3.21.12
// source: routerrpc/router.proto

package routerrpc

import (
	lnrpc "github.com/lightningnetwork/lnd/lnrpc"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

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
	FailureDetail_INVOICE_ALREADY_SETTLED    FailureDetail = 23
	FailureDetail_HTLC_INVOICE_TYPE_MISMATCH FailureDetail = 24
	FailureDetail_AMP_ERROR                  FailureDetail = 25
	FailureDetail_AMP_RECONSTRUCTION         FailureDetail = 26
	FailureDetail_EXTERNAL_VALIDATION_FAILED FailureDetail = 27
)

// Enum value maps for FailureDetail.
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",
		23: "INVOICE_ALREADY_SETTLED",
		24: "HTLC_INVOICE_TYPE_MISMATCH",
		25: "AMP_ERROR",
		26: "AMP_RECONSTRUCTION",
		27: "EXTERNAL_VALIDATION_FAILED",
	}
	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,
		"INVOICE_ALREADY_SETTLED":    23,
		"HTLC_INVOICE_TYPE_MISMATCH": 24,
		"AMP_ERROR":                  25,
		"AMP_RECONSTRUCTION":         26,
		"EXTERNAL_VALIDATION_FAILED": 27,
	}
)

func (x FailureDetail) Enum() *FailureDetail {
	p := new(FailureDetail)
	*p = x
	return p
}

func (x FailureDetail) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FailureDetail) Descriptor() protoreflect.EnumDescriptor {
	return file_routerrpc_router_proto_enumTypes[0].Descriptor()
}

func (FailureDetail) Type() protoreflect.EnumType {
	return &file_routerrpc_router_proto_enumTypes[0]
}

func (x FailureDetail) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FailureDetail.Descriptor instead.
func (FailureDetail) EnumDescriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
}

type ResolveHoldForwardAction int32

const (
	// SETTLE is an action that is used to settle an HTLC instead of forwarding
	// it.
	ResolveHoldForwardAction_SETTLE ResolveHoldForwardAction = 0
	// FAIL is an action that is used to fail an HTLC backwards.
	ResolveHoldForwardAction_FAIL ResolveHoldForwardAction = 1
	// RESUME is an action that is used to resume a forward HTLC.
	ResolveHoldForwardAction_RESUME ResolveHoldForwardAction = 2
	// RESUME_MODIFIED is an action that is used to resume a hold forward HTLC
	// with modifications specified during interception.
	ResolveHoldForwardAction_RESUME_MODIFIED ResolveHoldForwardAction = 3
)

// Enum value maps for ResolveHoldForwardAction.
var (
	ResolveHoldForwardAction_name = map[int32]string{
		0: "SETTLE",
		1: "FAIL",
		2: "RESUME",
		3: "RESUME_MODIFIED",
	}
	ResolveHoldForwardAction_value = map[string]int32{
		"SETTLE":          0,
		"FAIL":            1,
		"RESUME":          2,
		"RESUME_MODIFIED": 3,
	}
)

func (x ResolveHoldForwardAction) Enum() *ResolveHoldForwardAction {
	p := new(ResolveHoldForwardAction)
	*p = x
	return p
}

func (x ResolveHoldForwardAction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ResolveHoldForwardAction) Descriptor() protoreflect.EnumDescriptor {
	return file_routerrpc_router_proto_enumTypes[1].Descriptor()
}

func (ResolveHoldForwardAction) Type() protoreflect.EnumType {
	return &file_routerrpc_router_proto_enumTypes[1]
}

func (x ResolveHoldForwardAction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ResolveHoldForwardAction.Descriptor instead.
func (ResolveHoldForwardAction) EnumDescriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
}

type ChanStatusAction int32

const (
	ChanStatusAction_ENABLE  ChanStatusAction = 0
	ChanStatusAction_DISABLE ChanStatusAction = 1
	ChanStatusAction_AUTO    ChanStatusAction = 2
)

// Enum value maps for ChanStatusAction.
var (
	ChanStatusAction_name = map[int32]string{
		0: "ENABLE",
		1: "DISABLE",
		2: "AUTO",
	}
	ChanStatusAction_value = map[string]int32{
		"ENABLE":  0,
		"DISABLE": 1,
		"AUTO":    2,
	}
)

func (x ChanStatusAction) Enum() *ChanStatusAction {
	p := new(ChanStatusAction)
	*p = x
	return p
}

func (x ChanStatusAction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ChanStatusAction) Descriptor() protoreflect.EnumDescriptor {
	return file_routerrpc_router_proto_enumTypes[2].Descriptor()
}

func (ChanStatusAction) Type() protoreflect.EnumType {
	return &file_routerrpc_router_proto_enumTypes[2]
}

func (x ChanStatusAction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ChanStatusAction.Descriptor instead.
func (ChanStatusAction) EnumDescriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
}

type MissionControlConfig_ProbabilityModel int32

const (
	MissionControlConfig_APRIORI MissionControlConfig_ProbabilityModel = 0
	MissionControlConfig_BIMODAL MissionControlConfig_ProbabilityModel = 1
)

// Enum value maps for MissionControlConfig_ProbabilityModel.
var (
	MissionControlConfig_ProbabilityModel_name = map[int32]string{
		0: "APRIORI",
		1: "BIMODAL",
	}
	MissionControlConfig_ProbabilityModel_value = map[string]int32{
		"APRIORI": 0,
		"BIMODAL": 1,
	}
)

func (x MissionControlConfig_ProbabilityModel) Enum() *MissionControlConfig_ProbabilityModel {
	p := new(MissionControlConfig_ProbabilityModel)
	*p = x
	return p
}

func (x MissionControlConfig_ProbabilityModel) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (MissionControlConfig_ProbabilityModel) Descriptor() protoreflect.EnumDescriptor {
	return file_routerrpc_router_proto_enumTypes[3].Descriptor()
}

func (MissionControlConfig_ProbabilityModel) Type() protoreflect.EnumType {
	return &file_routerrpc_router_proto_enumTypes[3]
}

func (x MissionControlConfig_ProbabilityModel) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use MissionControlConfig_ProbabilityModel.Descriptor instead.
func (MissionControlConfig_ProbabilityModel) EnumDescriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{18, 0}
}

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
)

// Enum value maps for HtlcEvent_EventType.
var (
	HtlcEvent_EventType_name = map[int32]string{
		0: "UNKNOWN",
		1: "SEND",
		2: "RECEIVE",
		3: "FORWARD",
	}
	HtlcEvent_EventType_value = map[string]int32{
		"UNKNOWN": 0,
		"SEND":    1,
		"RECEIVE": 2,
		"FORWARD": 3,
	}
)

func (x HtlcEvent_EventType) Enum() *HtlcEvent_EventType {
	p := new(HtlcEvent_EventType)
	*p = x
	return p
}

func (x HtlcEvent_EventType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HtlcEvent_EventType) Descriptor() protoreflect.EnumDescriptor {
	return file_routerrpc_router_proto_enumTypes[4].Descriptor()
}

func (HtlcEvent_EventType) Type() protoreflect.EnumType {
	return &file_routerrpc_router_proto_enumTypes[4]
}

func (x HtlcEvent_EventType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HtlcEvent_EventType.Descriptor instead.
func (HtlcEvent_EventType) EnumDescriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{26, 0}
}

type SendPaymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	// 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"`
	// 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 optional limit, expressed in seconds, on the time to wait before
	// attempting the first HTLC. Once HTLCs are in flight, the payment will
	// not be aborted until the HTLCs are either settled or failed. If the field
	// is not set or is explicitly set to zero, the default value of 60 seconds
	// will be applied.
	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"`
	// 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" protobuf_val:"bytes,2,opt,name=value"`
	// 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 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"`
	// 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"`
	// 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 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"`
	// An optional payment addr to be included within the last hop of the route.
	// This is also called payment secret in specifications (e.g. BOLT 11).
	PaymentAddr []byte `protobuf:"bytes,20,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,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"`
	// If set, an AMP-payment will be attempted.
	Amp bool `protobuf:"varint,22,opt,name=amp,proto3" json:"amp,omitempty"`
	// The time preference for this payment. Set to -1 to optimize for fees
	// only, to 1 to optimize for reliability only or a value inbetween for a mix.
	TimePref float64 `protobuf:"fixed64,23,opt,name=time_pref,json=timePref,proto3" json:"time_pref,omitempty"`
	// If set, the payment loop can be interrupted by manually canceling the
	// payment context, even before the payment timeout is reached. Note that the
	// payment may still succeed after cancellation, as in-flight attempts can
	// still settle afterwards. Canceling will only prevent further attempts from
	// being sent.
	Cancelable bool `protobuf:"varint,24,opt,name=cancelable,proto3" json:"cancelable,omitempty"`
	// An optional field that can be used to pass an arbitrary set of TLV records
	// to the first hop peer of this payment. 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.
	FirstHopCustomRecords map[uint64][]byte `protobuf:"bytes,25,rep,name=first_hop_custom_records,json=firstHopCustomRecords,proto3" json:"first_hop_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *SendPaymentRequest) Reset() {
	*x = SendPaymentRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendPaymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendPaymentRequest) ProtoMessage() {}

func (x *SendPaymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendPaymentRequest.ProtoReflect.Descriptor instead.
func (*SendPaymentRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{0}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

func (x *SendPaymentRequest) GetAmp() bool {
	if x != nil {
		return x.Amp
	}
	return false
}

func (x *SendPaymentRequest) GetTimePref() float64 {
	if x != nil {
		return x.TimePref
	}
	return 0
}

func (x *SendPaymentRequest) GetCancelable() bool {
	if x != nil {
		return x.Cancelable
	}
	return false
}

func (x *SendPaymentRequest) GetFirstHopCustomRecords() map[uint64][]byte {
	if x != nil {
		return x.FirstHopCustomRecords
	}
	return nil
}

type TrackPaymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *TrackPaymentRequest) Reset() {
	*x = TrackPaymentRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TrackPaymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TrackPaymentRequest) ProtoMessage() {}

func (x *TrackPaymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TrackPaymentRequest.ProtoReflect.Descriptor instead.
func (*TrackPaymentRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{1}
}

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

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

type TrackPaymentsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If set, only the final payment updates are streamed back. Intermediate
	// updates that show which htlcs are still in flight are suppressed.
	NoInflightUpdates bool `protobuf:"varint,1,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *TrackPaymentsRequest) Reset() {
	*x = TrackPaymentsRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TrackPaymentsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TrackPaymentsRequest) ProtoMessage() {}

func (x *TrackPaymentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TrackPaymentsRequest.ProtoReflect.Descriptor instead.
func (*TrackPaymentsRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{2}
}

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

type RouteFeeRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The destination one wishes to obtain a routing fee quote to. If set, this
	// parameter requires the amt_sat parameter also to be set. This parameter
	// combination triggers a graph based routing fee estimation as opposed to a
	// payment probe based estimate in case a payment request is provided. The
	// graph based estimation is an algorithm that is executed on the in memory
	// graph. Hence its runtime is significantly shorter than a payment probe
	// estimation that sends out actual payments to the network.
	Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
	// The amount one wishes to send to the target destination. It is only to be
	// used in combination with the dest parameter.
	AmtSat int64 `protobuf:"varint,2,opt,name=amt_sat,json=amtSat,proto3" json:"amt_sat,omitempty"`
	// A payment request of the target node that the route fee request is intended
	// for. Its parameters are input to probe payments that estimate routing fees.
	// The timeout parameter can be specified to set a maximum time on the probing
	// attempt. Cannot be used in combination with dest and amt_sat.
	PaymentRequest string `protobuf:"bytes,3,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
	// A user preference of how long a probe payment should maximally be allowed to
	// take, denoted in seconds. The probing payment loop is aborted if this
	// timeout is reached. Note that the probing process itself can take longer
	// than the timeout if the HTLC becomes delayed or stuck. Canceling the context
	// of this call will not cancel the payment loop, the duration is only
	// controlled by the timeout parameter.
	Timeout       uint32 `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteFeeRequest) Reset() {
	*x = RouteFeeRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RouteFeeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouteFeeRequest) ProtoMessage() {}

func (x *RouteFeeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RouteFeeRequest.ProtoReflect.Descriptor instead.
func (*RouteFeeRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{3}
}

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

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

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

func (x *RouteFeeRequest) GetTimeout() uint32 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

type RouteFeeResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	// An indication whether a probing payment succeeded or whether and why it
	// failed. FAILURE_REASON_NONE indicates success.
	FailureReason lnrpc.PaymentFailureReason `protobuf:"varint,5,opt,name=failure_reason,json=failureReason,proto3,enum=lnrpc.PaymentFailureReason" json:"failure_reason,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RouteFeeResponse) Reset() {
	*x = RouteFeeResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RouteFeeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouteFeeResponse) ProtoMessage() {}

func (x *RouteFeeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RouteFeeResponse.ProtoReflect.Descriptor instead.
func (*RouteFeeResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{4}
}

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

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

func (x *RouteFeeResponse) GetFailureReason() lnrpc.PaymentFailureReason {
	if x != nil {
		return x.FailureReason
	}
	return lnrpc.PaymentFailureReason(0)
}

type SendToRouteRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	// Whether the payment should be marked as failed when a temporary error is
	// returned from the given route. Set it to true so the payment won't be
	// failed unless a terminal error is occurred, such as payment timeout, no
	// routes, incorrect payment details, or insufficient funds.
	SkipTempErr bool `protobuf:"varint,3,opt,name=skip_temp_err,json=skipTempErr,proto3" json:"skip_temp_err,omitempty"`
	// An optional field that can be used to pass an arbitrary set of TLV records
	// to the first hop peer of this payment. 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.
	FirstHopCustomRecords map[uint64][]byte `protobuf:"bytes,4,rep,name=first_hop_custom_records,json=firstHopCustomRecords,proto3" json:"first_hop_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *SendToRouteRequest) Reset() {
	*x = SendToRouteRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendToRouteRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendToRouteRequest) ProtoMessage() {}

func (x *SendToRouteRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendToRouteRequest.ProtoReflect.Descriptor instead.
func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{5}
}

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

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

func (x *SendToRouteRequest) GetSkipTempErr() bool {
	if x != nil {
		return x.SkipTempErr
	}
	return false
}

func (x *SendToRouteRequest) GetFirstHopCustomRecords() map[uint64][]byte {
	if x != nil {
		return x.FirstHopCustomRecords
	}
	return nil
}

type ResetMissionControlRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetMissionControlRequest) Reset() {
	*x = ResetMissionControlRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResetMissionControlRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetMissionControlRequest) ProtoMessage() {}

func (x *ResetMissionControlRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResetMissionControlRequest.ProtoReflect.Descriptor instead.
func (*ResetMissionControlRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{6}
}

type ResetMissionControlResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ResetMissionControlResponse) Reset() {
	*x = ResetMissionControlResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ResetMissionControlResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetMissionControlResponse) ProtoMessage() {}

func (x *ResetMissionControlResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResetMissionControlResponse.ProtoReflect.Descriptor instead.
func (*ResetMissionControlResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{7}
}

type QueryMissionControlRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryMissionControlRequest) Reset() {
	*x = QueryMissionControlRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryMissionControlRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryMissionControlRequest) ProtoMessage() {}

func (x *QueryMissionControlRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryMissionControlRequest.ProtoReflect.Descriptor instead.
func (*QueryMissionControlRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{8}
}

// QueryMissionControlResponse contains mission control state.
type QueryMissionControlResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Node pair-level mission control state.
	Pairs         []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryMissionControlResponse) Reset() {
	*x = QueryMissionControlResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryMissionControlResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryMissionControlResponse) ProtoMessage() {}

func (x *QueryMissionControlResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryMissionControlResponse.ProtoReflect.Descriptor instead.
func (*QueryMissionControlResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{9}
}

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

type XImportMissionControlRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Node pair-level mission control state to be imported.
	Pairs []*PairHistory `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs,omitempty"`
	// Whether to force override MC pair history. Note that even with force
	// override the failure pair is imported before the success pair and both
	// still clamp existing failure/success amounts.
	Force         bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *XImportMissionControlRequest) Reset() {
	*x = XImportMissionControlRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *XImportMissionControlRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*XImportMissionControlRequest) ProtoMessage() {}

func (x *XImportMissionControlRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use XImportMissionControlRequest.ProtoReflect.Descriptor instead.
func (*XImportMissionControlRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{10}
}

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

func (x *XImportMissionControlRequest) GetForce() bool {
	if x != nil {
		return x.Force
	}
	return false
}

type XImportMissionControlResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *XImportMissionControlResponse) Reset() {
	*x = XImportMissionControlResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *XImportMissionControlResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*XImportMissionControlResponse) ProtoMessage() {}

func (x *XImportMissionControlResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use XImportMissionControlResponse.ProtoReflect.Descriptor instead.
func (*XImportMissionControlResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{11}
}

// PairHistory contains the mission control state for a particular node pair.
type PairHistory struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PairHistory) Reset() {
	*x = PairHistory{}
	mi := &file_routerrpc_router_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PairHistory) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PairHistory) ProtoMessage() {}

func (x *PairHistory) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PairHistory.ProtoReflect.Descriptor instead.
func (*PairHistory) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{12}
}

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

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

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

type PairData struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *PairData) Reset() {
	*x = PairData{}
	mi := &file_routerrpc_router_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PairData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PairData) ProtoMessage() {}

func (x *PairData) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PairData.ProtoReflect.Descriptor instead.
func (*PairData) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{13}
}

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

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

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

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

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

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

type GetMissionControlConfigRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMissionControlConfigRequest) Reset() {
	*x = GetMissionControlConfigRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMissionControlConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMissionControlConfigRequest) ProtoMessage() {}

func (x *GetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
func (*GetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{14}
}

type GetMissionControlConfigResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Mission control's currently active config.
	Config        *MissionControlConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMissionControlConfigResponse) Reset() {
	*x = GetMissionControlConfigResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMissionControlConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMissionControlConfigResponse) ProtoMessage() {}

func (x *GetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
func (*GetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{15}
}

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

type SetMissionControlConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetMissionControlConfigRequest) Reset() {
	*x = SetMissionControlConfigRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetMissionControlConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetMissionControlConfigRequest) ProtoMessage() {}

func (x *SetMissionControlConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetMissionControlConfigRequest.ProtoReflect.Descriptor instead.
func (*SetMissionControlConfigRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{16}
}

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

type SetMissionControlConfigResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetMissionControlConfigResponse) Reset() {
	*x = SetMissionControlConfigResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetMissionControlConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetMissionControlConfigResponse) ProtoMessage() {}

func (x *SetMissionControlConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetMissionControlConfigResponse.ProtoReflect.Descriptor instead.
func (*SetMissionControlConfigResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{17}
}

type MissionControlConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deprecated, use AprioriParameters. The amount of time mission control will
	// take to restore a penalized node or channel back to 50% success probability,
	// expressed 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.
	//
	// Deprecated: Marked as deprecated in routerrpc/router.proto.
	HalfLifeSeconds uint64 `protobuf:"varint,1,opt,name=half_life_seconds,json=halfLifeSeconds,proto3" json:"half_life_seconds,omitempty"`
	// Deprecated, use AprioriParameters. 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.
	//
	// Deprecated: Marked as deprecated in routerrpc/router.proto.
	HopProbability float32 `protobuf:"fixed32,2,opt,name=hop_probability,json=hopProbability,proto3" json:"hop_probability,omitempty"`
	// Deprecated, use AprioriParameters. 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.
	//
	// Deprecated: Marked as deprecated in routerrpc/router.proto.
	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"`
	// ProbabilityModel defines which probability estimator should be used in
	// pathfinding. Note that the bimodal estimator is experimental.
	Model MissionControlConfig_ProbabilityModel `protobuf:"varint,6,opt,name=model,proto3,enum=routerrpc.MissionControlConfig_ProbabilityModel" json:"model,omitempty"`
	// EstimatorConfig is populated dependent on the estimator type.
	//
	// Types that are valid to be assigned to EstimatorConfig:
	//
	//	*MissionControlConfig_Apriori
	//	*MissionControlConfig_Bimodal
	EstimatorConfig isMissionControlConfig_EstimatorConfig `protobuf_oneof:"EstimatorConfig"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *MissionControlConfig) Reset() {
	*x = MissionControlConfig{}
	mi := &file_routerrpc_router_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MissionControlConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MissionControlConfig) ProtoMessage() {}

func (x *MissionControlConfig) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MissionControlConfig.ProtoReflect.Descriptor instead.
func (*MissionControlConfig) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{18}
}

// Deprecated: Marked as deprecated in routerrpc/router.proto.
func (x *MissionControlConfig) GetHalfLifeSeconds() uint64 {
	if x != nil {
		return x.HalfLifeSeconds
	}
	return 0
}

// Deprecated: Marked as deprecated in routerrpc/router.proto.
func (x *MissionControlConfig) GetHopProbability() float32 {
	if x != nil {
		return x.HopProbability
	}
	return 0
}

// Deprecated: Marked as deprecated in routerrpc/router.proto.
func (x *MissionControlConfig) GetWeight() float32 {
	if x != nil {
		return x.Weight
	}
	return 0
}

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

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

func (x *MissionControlConfig) GetModel() MissionControlConfig_ProbabilityModel {
	if x != nil {
		return x.Model
	}
	return MissionControlConfig_APRIORI
}

func (x *MissionControlConfig) GetEstimatorConfig() isMissionControlConfig_EstimatorConfig {
	if x != nil {
		return x.EstimatorConfig
	}
	return nil
}

func (x *MissionControlConfig) GetApriori() *AprioriParameters {
	if x != nil {
		if x, ok := x.EstimatorConfig.(*MissionControlConfig_Apriori); ok {
			return x.Apriori
		}
	}
	return nil
}

func (x *MissionControlConfig) GetBimodal() *BimodalParameters {
	if x != nil {
		if x, ok := x.EstimatorConfig.(*MissionControlConfig_Bimodal); ok {
			return x.Bimodal
		}
	}
	return nil
}

type isMissionControlConfig_EstimatorConfig interface {
	isMissionControlConfig_EstimatorConfig()
}

type MissionControlConfig_Apriori struct {
	Apriori *AprioriParameters `protobuf:"bytes,7,opt,name=apriori,proto3,oneof"`
}

type MissionControlConfig_Bimodal struct {
	Bimodal *BimodalParameters `protobuf:"bytes,8,opt,name=bimodal,proto3,oneof"`
}

func (*MissionControlConfig_Apriori) isMissionControlConfig_EstimatorConfig() {}

func (*MissionControlConfig_Bimodal) isMissionControlConfig_EstimatorConfig() {}

type BimodalParameters struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// NodeWeight defines how strongly other previous forwardings on channels of a
	// router should be taken into account when computing a channel's probability
	// to route. The allowed values are in the range [0, 1], where a value of 0
	// means that only direct information about a channel is taken into account.
	NodeWeight float64 `protobuf:"fixed64,1,opt,name=node_weight,json=nodeWeight,proto3" json:"node_weight,omitempty"`
	// ScaleMsat describes the scale over which channels statistically have some
	// liquidity left. The value determines how quickly the bimodal distribution
	// drops off from the edges of a channel. A larger value (compared to typical
	// channel capacities) means that the drop off is slow and that channel
	// balances are distributed more uniformly. A small value leads to the
	// assumption of very unbalanced channels.
	ScaleMsat uint64 `protobuf:"varint,2,opt,name=scale_msat,json=scaleMsat,proto3" json:"scale_msat,omitempty"`
	// DecayTime describes the information decay of knowledge about previous
	// successes and failures in channels. The smaller the decay time, the quicker
	// we forget about past forwardings.
	DecayTime     uint64 `protobuf:"varint,3,opt,name=decay_time,json=decayTime,proto3" json:"decay_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BimodalParameters) Reset() {
	*x = BimodalParameters{}
	mi := &file_routerrpc_router_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BimodalParameters) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BimodalParameters) ProtoMessage() {}

func (x *BimodalParameters) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BimodalParameters.ProtoReflect.Descriptor instead.
func (*BimodalParameters) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{19}
}

func (x *BimodalParameters) GetNodeWeight() float64 {
	if x != nil {
		return x.NodeWeight
	}
	return 0
}

func (x *BimodalParameters) GetScaleMsat() uint64 {
	if x != nil {
		return x.ScaleMsat
	}
	return 0
}

func (x *BimodalParameters) GetDecayTime() uint64 {
	if x != nil {
		return x.DecayTime
	}
	return 0
}

type AprioriParameters struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The amount of time mission control will take to restore a penalized node
	// or channel back to 50% success probability, expressed 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 float64 `protobuf:"fixed64,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 float64 `protobuf:"fixed64,3,opt,name=weight,proto3" json:"weight,omitempty"`
	// The fraction of a channel's capacity that we consider to have liquidity. For
	// amounts that come close to or exceed the fraction, an additional penalty is
	// applied. A value of 1.0 disables the capacity factor. Allowed values are in
	// [0.75, 1.0].
	CapacityFraction float64 `protobuf:"fixed64,4,opt,name=capacity_fraction,json=capacityFraction,proto3" json:"capacity_fraction,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *AprioriParameters) Reset() {
	*x = AprioriParameters{}
	mi := &file_routerrpc_router_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AprioriParameters) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AprioriParameters) ProtoMessage() {}

func (x *AprioriParameters) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AprioriParameters.ProtoReflect.Descriptor instead.
func (*AprioriParameters) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{20}
}

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

func (x *AprioriParameters) GetHopProbability() float64 {
	if x != nil {
		return x.HopProbability
	}
	return 0
}

func (x *AprioriParameters) GetWeight() float64 {
	if x != nil {
		return x.Weight
	}
	return 0
}

func (x *AprioriParameters) GetCapacityFraction() float64 {
	if x != nil {
		return x.CapacityFraction
	}
	return 0
}

type QueryProbabilityRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryProbabilityRequest) Reset() {
	*x = QueryProbabilityRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryProbabilityRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryProbabilityRequest) ProtoMessage() {}

func (x *QueryProbabilityRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryProbabilityRequest.ProtoReflect.Descriptor instead.
func (*QueryProbabilityRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{21}
}

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

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

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

type QueryProbabilityResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *QueryProbabilityResponse) Reset() {
	*x = QueryProbabilityResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryProbabilityResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryProbabilityResponse) ProtoMessage() {}

func (x *QueryProbabilityResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryProbabilityResponse.ProtoReflect.Descriptor instead.
func (*QueryProbabilityResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{22}
}

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

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

type BuildRouteRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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.
	// This is also called payment secret in specifications (e.g. BOLT 11).
	PaymentAddr []byte `protobuf:"bytes,5,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
	// An optional field that can be used to pass an arbitrary set of TLV records
	// to the first hop peer of this payment. 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.
	FirstHopCustomRecords map[uint64][]byte `protobuf:"bytes,6,rep,name=first_hop_custom_records,json=firstHopCustomRecords,proto3" json:"first_hop_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *BuildRouteRequest) Reset() {
	*x = BuildRouteRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BuildRouteRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BuildRouteRequest) ProtoMessage() {}

func (x *BuildRouteRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BuildRouteRequest.ProtoReflect.Descriptor instead.
func (*BuildRouteRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{23}
}

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

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

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

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

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

func (x *BuildRouteRequest) GetFirstHopCustomRecords() map[uint64][]byte {
	if x != nil {
		return x.FirstHopCustomRecords
	}
	return nil
}

type BuildRouteResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Fully specified route that can be used to execute the payment.
	Route         *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BuildRouteResponse) Reset() {
	*x = BuildRouteResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BuildRouteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BuildRouteResponse) ProtoMessage() {}

func (x *BuildRouteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BuildRouteResponse.ProtoReflect.Descriptor instead.
func (*BuildRouteResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{24}
}

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

type SubscribeHtlcEventsRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SubscribeHtlcEventsRequest) Reset() {
	*x = SubscribeHtlcEventsRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribeHtlcEventsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeHtlcEventsRequest) ProtoMessage() {}

func (x *SubscribeHtlcEventsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeHtlcEventsRequest.ProtoReflect.Descriptor instead.
func (*SubscribeHtlcEventsRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{25}
}

// 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 {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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
	//	*HtlcEvent_SubscribedEvent
	//	*HtlcEvent_FinalHtlcEvent
	Event         isHtlcEvent_Event `protobuf_oneof:"event"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HtlcEvent) Reset() {
	*x = HtlcEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HtlcEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HtlcEvent) ProtoMessage() {}

func (x *HtlcEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HtlcEvent.ProtoReflect.Descriptor instead.
func (*HtlcEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{26}
}

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

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

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

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

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

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

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

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

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

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

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

func (x *HtlcEvent) GetSubscribedEvent() *SubscribedEvent {
	if x != nil {
		if x, ok := x.Event.(*HtlcEvent_SubscribedEvent); ok {
			return x.SubscribedEvent
		}
	}
	return nil
}

func (x *HtlcEvent) GetFinalHtlcEvent() *FinalHtlcEvent {
	if x != nil {
		if x, ok := x.Event.(*HtlcEvent_FinalHtlcEvent); ok {
			return x.FinalHtlcEvent
		}
	}
	return nil
}

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"`
}

type HtlcEvent_SubscribedEvent struct {
	SubscribedEvent *SubscribedEvent `protobuf:"bytes,11,opt,name=subscribed_event,json=subscribedEvent,proto3,oneof"`
}

type HtlcEvent_FinalHtlcEvent struct {
	FinalHtlcEvent *FinalHtlcEvent `protobuf:"bytes,12,opt,name=final_htlc_event,json=finalHtlcEvent,proto3,oneof"`
}

func (*HtlcEvent_ForwardEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_ForwardFailEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_SettleEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_LinkFailEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_SubscribedEvent) isHtlcEvent_Event() {}

func (*HtlcEvent_FinalHtlcEvent) isHtlcEvent_Event() {}

type HtlcInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *HtlcInfo) Reset() {
	*x = HtlcInfo{}
	mi := &file_routerrpc_router_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HtlcInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HtlcInfo) ProtoMessage() {}

func (x *HtlcInfo) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HtlcInfo.ProtoReflect.Descriptor instead.
func (*HtlcInfo) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{27}
}

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

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

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

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

type ForwardEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Info contains details about the htlc that was forwarded.
	Info          *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ForwardEvent) Reset() {
	*x = ForwardEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForwardEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForwardEvent) ProtoMessage() {}

func (x *ForwardEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForwardEvent.ProtoReflect.Descriptor instead.
func (*ForwardEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{28}
}

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

type ForwardFailEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ForwardFailEvent) Reset() {
	*x = ForwardFailEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForwardFailEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForwardFailEvent) ProtoMessage() {}

func (x *ForwardFailEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForwardFailEvent.ProtoReflect.Descriptor instead.
func (*ForwardFailEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{29}
}

type SettleEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The revealed preimage.
	Preimage      []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SettleEvent) Reset() {
	*x = SettleEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SettleEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SettleEvent) ProtoMessage() {}

func (x *SettleEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SettleEvent.ProtoReflect.Descriptor instead.
func (*SettleEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{30}
}

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

type FinalHtlcEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Settled       bool                   `protobuf:"varint,1,opt,name=settled,proto3" json:"settled,omitempty"`
	Offchain      bool                   `protobuf:"varint,2,opt,name=offchain,proto3" json:"offchain,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FinalHtlcEvent) Reset() {
	*x = FinalHtlcEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FinalHtlcEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FinalHtlcEvent) ProtoMessage() {}

func (x *FinalHtlcEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FinalHtlcEvent.ProtoReflect.Descriptor instead.
func (*FinalHtlcEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{31}
}

func (x *FinalHtlcEvent) GetSettled() bool {
	if x != nil {
		return x.Settled
	}
	return false
}

func (x *FinalHtlcEvent) GetOffchain() bool {
	if x != nil {
		return x.Offchain
	}
	return false
}

type SubscribedEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SubscribedEvent) Reset() {
	*x = SubscribedEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribedEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribedEvent) ProtoMessage() {}

func (x *SubscribedEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribedEvent.ProtoReflect.Descriptor instead.
func (*SubscribedEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{32}
}

type LinkFailEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LinkFailEvent) Reset() {
	*x = LinkFailEvent{}
	mi := &file_routerrpc_router_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LinkFailEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkFailEvent) ProtoMessage() {}

func (x *LinkFailEvent) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkFailEvent.ProtoReflect.Descriptor instead.
func (*LinkFailEvent) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{33}
}

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

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

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

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

type CircuitKey struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// / 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CircuitKey) Reset() {
	*x = CircuitKey{}
	mi := &file_routerrpc_router_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CircuitKey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CircuitKey) ProtoMessage() {}

func (x *CircuitKey) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CircuitKey.ProtoReflect.Descriptor instead.
func (*CircuitKey) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{34}
}

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

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

type ForwardHtlcInterceptRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The key of this forwarded htlc. It defines the incoming channel id and
	// the index in this channel.
	//
	// Interceptor clients should handle requests for the same circuit key
	// idempotently. Requests may be replayed after reconnect, and an htlc that was
	// previously offered off-chain may be offered again after it moves on-chain.
	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. This is set to a sentinel value (all bits set)
	// if the outgoing_requested_node_id is specified for blinded routes.
	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" protobuf_val:"bytes,2,opt,name=value"`
	// The onion blob for the next hop
	OnionBlob []byte `protobuf:"bytes,9,opt,name=onion_blob,json=onionBlob,proto3" json:"onion_blob,omitempty"`
	// The block height at which this htlc will be auto-failed to prevent the
	// channel from force-closing. For on-chain htlcs, this field is the
	// settlement deadline instead and no automatic fail-back is attempted.
	AutoFailHeight int32 `protobuf:"varint,10,opt,name=auto_fail_height,json=autoFailHeight,proto3" json:"auto_fail_height,omitempty"`
	// The custom records of the peer's incoming p2p wire message.
	InWireCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=in_wire_custom_records,json=inWireCustomRecords,proto3" json:"in_wire_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// The requested outgoing node for a blinded forward. When non-empty, this
	// field contains exactly one 33-byte compressed public key and
	// outgoing_requested_chan_id is set to 18446744073709551615
	// (0xffffffffffffffff). Clients MUST NOT interpret that value as an actual
	// channel ID; the presence of this field identifies a node-addressed
	// forward.
	//
	// The possible next-hop representations are:
	//
	//	node ID empty, channel ID 0: final receive;
	//	node ID empty, ordinary channel ID: channel-addressed forward;
	//	node ID present, channel ID MaxUint64: node-addressed forward.
	OutgoingRequestedNodeId []byte `protobuf:"bytes,12,opt,name=outgoing_requested_node_id,json=outgoingRequestedNodeId,proto3" json:"outgoing_requested_node_id,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *ForwardHtlcInterceptRequest) Reset() {
	*x = ForwardHtlcInterceptRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForwardHtlcInterceptRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForwardHtlcInterceptRequest) ProtoMessage() {}

func (x *ForwardHtlcInterceptRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForwardHtlcInterceptRequest.ProtoReflect.Descriptor instead.
func (*ForwardHtlcInterceptRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{35}
}

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

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

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

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

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

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

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

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

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

func (x *ForwardHtlcInterceptRequest) GetAutoFailHeight() int32 {
	if x != nil {
		return x.AutoFailHeight
	}
	return 0
}

func (x *ForwardHtlcInterceptRequest) GetInWireCustomRecords() map[uint64][]byte {
	if x != nil {
		return x.InWireCustomRecords
	}
	return nil
}

func (x *ForwardHtlcInterceptRequest) GetOutgoingRequestedNodeId() []byte {
	if x != nil {
		return x.OutgoingRequestedNodeId
	}
	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).
// - `ResumeModified`: Execute the default behavior (usually forward) with HTLC
// field modifications.
// - `Reject`: Fail the htlc backwards.
// - `Settle`: Settle this htlc with a given preimage.
//
// Once the incoming channel has force-closed and the HTLC is being resolved
// on-chain (see auto_fail_height), only `Settle` has any effect. The HTLC can no
// longer be resumed or failed back off-chain, so `Resume`, `ResumeModified`, and
// `Fail` return a stream-terminating error. The HTLC stays held until it is
// settled with a preimage, the on-chain resolver completes, or it expires
// on-chain. Clients should reconnect to receive any held HTLCs that remain
// unresolved.
type ForwardHtlcInterceptResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// *
	// 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"`
	// Encrypted failure message in case the resolve action is Fail.
	//
	// If failure_message is specified, the failure_code field must be set
	// to zero.
	FailureMessage []byte `protobuf:"bytes,4,opt,name=failure_message,json=failureMessage,proto3" json:"failure_message,omitempty"`
	// Return the specified failure code in case the resolve action is Fail. The
	// message data fields are populated automatically.
	//
	// If a non-zero failure_code is specified, failure_message must not be set.
	//
	// For backwards-compatibility reasons, TEMPORARY_CHANNEL_FAILURE is the
	// default value for this field.
	FailureCode lnrpc.Failure_FailureCode `protobuf:"varint,5,opt,name=failure_code,json=failureCode,proto3,enum=lnrpc.Failure_FailureCode" json:"failure_code,omitempty"`
	// The amount that was set on the p2p wire message of the incoming HTLC.
	// This field is ignored if the action is not RESUME_MODIFIED or the amount
	// is zero.
	InAmountMsat uint64 `protobuf:"varint,6,opt,name=in_amount_msat,json=inAmountMsat,proto3" json:"in_amount_msat,omitempty"`
	// The amount to set on the p2p wire message of the resumed HTLC. This field
	// is ignored if the action is not RESUME_MODIFIED or the amount is zero.
	OutAmountMsat uint64 `protobuf:"varint,7,opt,name=out_amount_msat,json=outAmountMsat,proto3" json:"out_amount_msat,omitempty"`
	// Any custom records that should be set on the p2p wire message message of
	// the resumed HTLC. This field is ignored if the action is not
	// RESUME_MODIFIED.
	//
	// This map will merge with the existing set of custom records (if any),
	// replacing any conflicting types. Note that there currently is no support
	// for deleting existing custom records (they can only be replaced).
	OutWireCustomRecords map[uint64][]byte `protobuf:"bytes,8,rep,name=out_wire_custom_records,json=outWireCustomRecords,proto3" json:"out_wire_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

func (x *ForwardHtlcInterceptResponse) Reset() {
	*x = ForwardHtlcInterceptResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForwardHtlcInterceptResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForwardHtlcInterceptResponse) ProtoMessage() {}

func (x *ForwardHtlcInterceptResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForwardHtlcInterceptResponse.ProtoReflect.Descriptor instead.
func (*ForwardHtlcInterceptResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{36}
}

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

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

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

func (x *ForwardHtlcInterceptResponse) GetFailureMessage() []byte {
	if x != nil {
		return x.FailureMessage
	}
	return nil
}

func (x *ForwardHtlcInterceptResponse) GetFailureCode() lnrpc.Failure_FailureCode {
	if x != nil {
		return x.FailureCode
	}
	return lnrpc.Failure_FailureCode(0)
}

func (x *ForwardHtlcInterceptResponse) GetInAmountMsat() uint64 {
	if x != nil {
		return x.InAmountMsat
	}
	return 0
}

func (x *ForwardHtlcInterceptResponse) GetOutAmountMsat() uint64 {
	if x != nil {
		return x.OutAmountMsat
	}
	return 0
}

func (x *ForwardHtlcInterceptResponse) GetOutWireCustomRecords() map[uint64][]byte {
	if x != nil {
		return x.OutWireCustomRecords
	}
	return nil
}

type UpdateChanStatusRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ChanPoint     *lnrpc.ChannelPoint    `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
	Action        ChanStatusAction       `protobuf:"varint,2,opt,name=action,proto3,enum=routerrpc.ChanStatusAction" json:"action,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateChanStatusRequest) Reset() {
	*x = UpdateChanStatusRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateChanStatusRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateChanStatusRequest) ProtoMessage() {}

func (x *UpdateChanStatusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateChanStatusRequest.ProtoReflect.Descriptor instead.
func (*UpdateChanStatusRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{37}
}

func (x *UpdateChanStatusRequest) GetChanPoint() *lnrpc.ChannelPoint {
	if x != nil {
		return x.ChanPoint
	}
	return nil
}

func (x *UpdateChanStatusRequest) GetAction() ChanStatusAction {
	if x != nil {
		return x.Action
	}
	return ChanStatusAction_ENABLE
}

type UpdateChanStatusResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateChanStatusResponse) Reset() {
	*x = UpdateChanStatusResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateChanStatusResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateChanStatusResponse) ProtoMessage() {}

func (x *UpdateChanStatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateChanStatusResponse.ProtoReflect.Descriptor instead.
func (*UpdateChanStatusResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{38}
}

type AddAliasesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	AliasMaps     []*lnrpc.AliasMap      `protobuf:"bytes,1,rep,name=alias_maps,json=aliasMaps,proto3" json:"alias_maps,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddAliasesRequest) Reset() {
	*x = AddAliasesRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddAliasesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddAliasesRequest) ProtoMessage() {}

func (x *AddAliasesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddAliasesRequest.ProtoReflect.Descriptor instead.
func (*AddAliasesRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{39}
}

func (x *AddAliasesRequest) GetAliasMaps() []*lnrpc.AliasMap {
	if x != nil {
		return x.AliasMaps
	}
	return nil
}

type AddAliasesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	AliasMaps     []*lnrpc.AliasMap      `protobuf:"bytes,1,rep,name=alias_maps,json=aliasMaps,proto3" json:"alias_maps,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddAliasesResponse) Reset() {
	*x = AddAliasesResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddAliasesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddAliasesResponse) ProtoMessage() {}

func (x *AddAliasesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddAliasesResponse.ProtoReflect.Descriptor instead.
func (*AddAliasesResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{40}
}

func (x *AddAliasesResponse) GetAliasMaps() []*lnrpc.AliasMap {
	if x != nil {
		return x.AliasMaps
	}
	return nil
}

type DeleteAliasesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	AliasMaps     []*lnrpc.AliasMap      `protobuf:"bytes,1,rep,name=alias_maps,json=aliasMaps,proto3" json:"alias_maps,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteAliasesRequest) Reset() {
	*x = DeleteAliasesRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteAliasesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteAliasesRequest) ProtoMessage() {}

func (x *DeleteAliasesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteAliasesRequest.ProtoReflect.Descriptor instead.
func (*DeleteAliasesRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{41}
}

func (x *DeleteAliasesRequest) GetAliasMaps() []*lnrpc.AliasMap {
	if x != nil {
		return x.AliasMaps
	}
	return nil
}

type DeleteAliasesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	AliasMaps     []*lnrpc.AliasMap      `protobuf:"bytes,1,rep,name=alias_maps,json=aliasMaps,proto3" json:"alias_maps,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteAliasesResponse) Reset() {
	*x = DeleteAliasesResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteAliasesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteAliasesResponse) ProtoMessage() {}

func (x *DeleteAliasesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteAliasesResponse.ProtoReflect.Descriptor instead.
func (*DeleteAliasesResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{42}
}

func (x *DeleteAliasesResponse) GetAliasMaps() []*lnrpc.AliasMap {
	if x != nil {
		return x.AliasMaps
	}
	return nil
}

type FindBaseAliasRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The alias we want to look up the base scid for.
	Alias         uint64 `protobuf:"varint,1,opt,name=alias,proto3" json:"alias,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FindBaseAliasRequest) Reset() {
	*x = FindBaseAliasRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FindBaseAliasRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindBaseAliasRequest) ProtoMessage() {}

func (x *FindBaseAliasRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindBaseAliasRequest.ProtoReflect.Descriptor instead.
func (*FindBaseAliasRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{43}
}

func (x *FindBaseAliasRequest) GetAlias() uint64 {
	if x != nil {
		return x.Alias
	}
	return 0
}

type FindBaseAliasResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The base scid that resulted from the base scid look up.
	Base          uint64 `protobuf:"varint,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FindBaseAliasResponse) Reset() {
	*x = FindBaseAliasResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FindBaseAliasResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FindBaseAliasResponse) ProtoMessage() {}

func (x *FindBaseAliasResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[44]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FindBaseAliasResponse.ProtoReflect.Descriptor instead.
func (*FindBaseAliasResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{44}
}

func (x *FindBaseAliasResponse) GetBase() uint64 {
	if x != nil {
		return x.Base
	}
	return 0
}

type DeleteForwardingHistoryRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specify the cutoff time for deletion using one of the following options.
	// Events with a timestamp at or before the cutoff are deleted.
	//
	// Types that are valid to be assigned to TimeSpec:
	//
	//	*DeleteForwardingHistoryRequest_DeleteBeforeTime
	//	*DeleteForwardingHistoryRequest_DeleteBeforeDuration
	TimeSpec      isDeleteForwardingHistoryRequest_TimeSpec `protobuf_oneof:"time_spec"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteForwardingHistoryRequest) Reset() {
	*x = DeleteForwardingHistoryRequest{}
	mi := &file_routerrpc_router_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteForwardingHistoryRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteForwardingHistoryRequest) ProtoMessage() {}

func (x *DeleteForwardingHistoryRequest) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteForwardingHistoryRequest.ProtoReflect.Descriptor instead.
func (*DeleteForwardingHistoryRequest) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{45}
}

func (x *DeleteForwardingHistoryRequest) GetTimeSpec() isDeleteForwardingHistoryRequest_TimeSpec {
	if x != nil {
		return x.TimeSpec
	}
	return nil
}

func (x *DeleteForwardingHistoryRequest) GetDeleteBeforeTime() uint64 {
	if x != nil {
		if x, ok := x.TimeSpec.(*DeleteForwardingHistoryRequest_DeleteBeforeTime); ok {
			return x.DeleteBeforeTime
		}
	}
	return 0
}

func (x *DeleteForwardingHistoryRequest) GetDeleteBeforeDuration() string {
	if x != nil {
		if x, ok := x.TimeSpec.(*DeleteForwardingHistoryRequest_DeleteBeforeDuration); ok {
			return x.DeleteBeforeDuration
		}
	}
	return ""
}

type isDeleteForwardingHistoryRequest_TimeSpec interface {
	isDeleteForwardingHistoryRequest_TimeSpec()
}

type DeleteForwardingHistoryRequest_DeleteBeforeTime struct {
	// Absolute Unix timestamp (seconds). Events at or before this time
	// are deleted.
	DeleteBeforeTime uint64 `protobuf:"varint,1,opt,name=delete_before_time,json=deleteBeforeTime,proto3,oneof"`
}

type DeleteForwardingHistoryRequest_DeleteBeforeDuration struct {
	// Relative duration string indicating how far back to delete, e.g.
	// "-30d" deletes events at or before 30 days ago.
	// Standard Go: "-24h", "-1.5h"
	// Custom units: "-1d", "-1w", "-1M", "-1y"
	// Supported: ns, us/µs, ms, s, m, h, d (days), w (weeks),
	// M (months=30.44d), y (years=365.25d).
	// Use negative values to specify time in the past.
	DeleteBeforeDuration string `protobuf:"bytes,2,opt,name=delete_before_duration,json=deleteBeforeDuration,proto3,oneof"`
}

func (*DeleteForwardingHistoryRequest_DeleteBeforeTime) isDeleteForwardingHistoryRequest_TimeSpec() {}

func (*DeleteForwardingHistoryRequest_DeleteBeforeDuration) isDeleteForwardingHistoryRequest_TimeSpec() {
}

type DeleteForwardingHistoryResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Number of forwarding events deleted.
	EventsDeleted uint64 `protobuf:"varint,1,opt,name=events_deleted,json=eventsDeleted,proto3" json:"events_deleted,omitempty"`
	// Total fees earned from deleted events (in millisatoshis).
	// This is the sum of (amt_in - amt_out) for all deleted events, which
	// can be used for accounting purposes.
	TotalFeeMsat int64 `protobuf:"varint,2,opt,name=total_fee_msat,json=totalFeeMsat,proto3" json:"total_fee_msat,omitempty"`
	// Status message.
	Status        string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteForwardingHistoryResponse) Reset() {
	*x = DeleteForwardingHistoryResponse{}
	mi := &file_routerrpc_router_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteForwardingHistoryResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteForwardingHistoryResponse) ProtoMessage() {}

func (x *DeleteForwardingHistoryResponse) ProtoReflect() protoreflect.Message {
	mi := &file_routerrpc_router_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteForwardingHistoryResponse.ProtoReflect.Descriptor instead.
func (*DeleteForwardingHistoryResponse) Descriptor() ([]byte, []int) {
	return file_routerrpc_router_proto_rawDescGZIP(), []int{46}
}

func (x *DeleteForwardingHistoryResponse) GetEventsDeleted() uint64 {
	if x != nil {
		return x.EventsDeleted
	}
	return 0
}

func (x *DeleteForwardingHistoryResponse) GetTotalFeeMsat() int64 {
	if x != nil {
		return x.TotalFeeMsat
	}
	return 0
}

func (x *DeleteForwardingHistoryResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

var File_routerrpc_router_proto protoreflect.FileDescriptor

const file_routerrpc_router_proto_rawDesc = "" +
	"\n" +
	"\x16routerrpc/router.proto\x12\trouterrpc\x1a\x0flightning.proto\"\xa7\t\n" +
	"\x12SendPaymentRequest\x12\x12\n" +
	"\x04dest\x18\x01 \x01(\fR\x04dest\x12\x10\n" +
	"\x03amt\x18\x02 \x01(\x03R\x03amt\x12!\n" +
	"\fpayment_hash\x18\x03 \x01(\fR\vpaymentHash\x12(\n" +
	"\x10final_cltv_delta\x18\x04 \x01(\x05R\x0efinalCltvDelta\x12'\n" +
	"\x0fpayment_request\x18\x05 \x01(\tR\x0epaymentRequest\x12'\n" +
	"\x0ftimeout_seconds\x18\x06 \x01(\x05R\x0etimeoutSeconds\x12\"\n" +
	"\rfee_limit_sat\x18\a \x01(\x03R\vfeeLimitSat\x12\x1d\n" +
	"\n" +
	"cltv_limit\x18\t \x01(\x05R\tcltvLimit\x121\n" +
	"\vroute_hints\x18\n" +
	" \x03(\v2\x10.lnrpc.RouteHintR\n" +
	"routeHints\x12d\n" +
	"\x13dest_custom_records\x18\v \x03(\v24.routerrpc.SendPaymentRequest.DestCustomRecordsEntryR\x11destCustomRecords\x12\x19\n" +
	"\bamt_msat\x18\f \x01(\x03R\aamtMsat\x12$\n" +
	"\x0efee_limit_msat\x18\r \x01(\x03R\ffeeLimitMsat\x12&\n" +
	"\x0flast_hop_pubkey\x18\x0e \x01(\fR\rlastHopPubkey\x12,\n" +
	"\x12allow_self_payment\x18\x0f \x01(\bR\x10allowSelfPayment\x126\n" +
	"\rdest_features\x18\x10 \x03(\x0e2\x11.lnrpc.FeatureBitR\fdestFeatures\x12\x1b\n" +
	"\tmax_parts\x18\x11 \x01(\rR\bmaxParts\x12.\n" +
	"\x13no_inflight_updates\x18\x12 \x01(\bR\x11noInflightUpdates\x12*\n" +
	"\x11outgoing_chan_ids\x18\x13 \x03(\x04R\x0foutgoingChanIds\x12!\n" +
	"\fpayment_addr\x18\x14 \x01(\fR\vpaymentAddr\x12-\n" +
	"\x13max_shard_size_msat\x18\x15 \x01(\x04R\x10maxShardSizeMsat\x12\x10\n" +
	"\x03amp\x18\x16 \x01(\bR\x03amp\x12\x1b\n" +
	"\ttime_pref\x18\x17 \x01(\x01R\btimePref\x12\x1e\n" +
	"\n" +
	"cancelable\x18\x18 \x01(\bR\n" +
	"cancelable\x12q\n" +
	"\x18first_hop_custom_records\x18\x19 \x03(\v28.routerrpc.SendPaymentRequest.FirstHopCustomRecordsEntryR\x15firstHopCustomRecords\x1aD\n" +
	"\x16DestCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1aH\n" +
	"\x1aFirstHopCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01J\x04\b\b\x10\t\"h\n" +
	"\x13TrackPaymentRequest\x12!\n" +
	"\fpayment_hash\x18\x01 \x01(\fR\vpaymentHash\x12.\n" +
	"\x13no_inflight_updates\x18\x02 \x01(\bR\x11noInflightUpdates\"F\n" +
	"\x14TrackPaymentsRequest\x12.\n" +
	"\x13no_inflight_updates\x18\x01 \x01(\bR\x11noInflightUpdates\"\x81\x01\n" +
	"\x0fRouteFeeRequest\x12\x12\n" +
	"\x04dest\x18\x01 \x01(\fR\x04dest\x12\x17\n" +
	"\aamt_sat\x18\x02 \x01(\x03R\x06amtSat\x12'\n" +
	"\x0fpayment_request\x18\x03 \x01(\tR\x0epaymentRequest\x12\x18\n" +
	"\atimeout\x18\x04 \x01(\rR\atimeout\"\xa8\x01\n" +
	"\x10RouteFeeResponse\x12(\n" +
	"\x10routing_fee_msat\x18\x01 \x01(\x03R\x0eroutingFeeMsat\x12&\n" +
	"\x0ftime_lock_delay\x18\x02 \x01(\x03R\rtimeLockDelay\x12B\n" +
	"\x0efailure_reason\x18\x05 \x01(\x0e2\x1b.lnrpc.PaymentFailureReasonR\rfailureReason\"\xbc\x02\n" +
	"\x12SendToRouteRequest\x12!\n" +
	"\fpayment_hash\x18\x01 \x01(\fR\vpaymentHash\x12\"\n" +
	"\x05route\x18\x02 \x01(\v2\f.lnrpc.RouteR\x05route\x12\"\n" +
	"\rskip_temp_err\x18\x03 \x01(\bR\vskipTempErr\x12q\n" +
	"\x18first_hop_custom_records\x18\x04 \x03(\v28.routerrpc.SendToRouteRequest.FirstHopCustomRecordsEntryR\x15firstHopCustomRecords\x1aH\n" +
	"\x1aFirstHopCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\x1c\n" +
	"\x1aResetMissionControlRequest\"\x1d\n" +
	"\x1bResetMissionControlResponse\"\x1c\n" +
	"\x1aQueryMissionControlRequest\"Q\n" +
	"\x1bQueryMissionControlResponse\x12,\n" +
	"\x05pairs\x18\x02 \x03(\v2\x16.routerrpc.PairHistoryR\x05pairsJ\x04\b\x01\x10\x02\"b\n" +
	"\x1cXImportMissionControlRequest\x12,\n" +
	"\x05pairs\x18\x01 \x03(\v2\x16.routerrpc.PairHistoryR\x05pairs\x12\x14\n" +
	"\x05force\x18\x02 \x01(\bR\x05force\"\x1f\n" +
	"\x1dXImportMissionControlResponse\"\x8a\x01\n" +
	"\vPairHistory\x12\x1b\n" +
	"\tnode_from\x18\x01 \x01(\fR\bnodeFrom\x12\x17\n" +
	"\anode_to\x18\x02 \x01(\fR\x06nodeTo\x12-\n" +
	"\ahistory\x18\a \x01(\v2\x13.routerrpc.PairDataR\ahistoryJ\x04\b\x03\x10\x04J\x04\b\x04\x10\x05J\x04\b\x05\x10\x06J\x04\b\x06\x10\a\"\xe8\x01\n" +
	"\bPairData\x12\x1b\n" +
	"\tfail_time\x18\x01 \x01(\x03R\bfailTime\x12 \n" +
	"\ffail_amt_sat\x18\x02 \x01(\x03R\n" +
	"failAmtSat\x12\"\n" +
	"\rfail_amt_msat\x18\x04 \x01(\x03R\vfailAmtMsat\x12!\n" +
	"\fsuccess_time\x18\x05 \x01(\x03R\vsuccessTime\x12&\n" +
	"\x0fsuccess_amt_sat\x18\x06 \x01(\x03R\rsuccessAmtSat\x12(\n" +
	"\x10success_amt_msat\x18\a \x01(\x03R\x0esuccessAmtMsatJ\x04\b\x03\x10\x04\" \n" +
	"\x1eGetMissionControlConfigRequest\"Z\n" +
	"\x1fGetMissionControlConfigResponse\x127\n" +
	"\x06config\x18\x01 \x01(\v2\x1f.routerrpc.MissionControlConfigR\x06config\"Y\n" +
	"\x1eSetMissionControlConfigRequest\x127\n" +
	"\x06config\x18\x01 \x01(\v2\x1f.routerrpc.MissionControlConfigR\x06config\"!\n" +
	"\x1fSetMissionControlConfigResponse\"\x89\x04\n" +
	"\x14MissionControlConfig\x12.\n" +
	"\x11half_life_seconds\x18\x01 \x01(\x04B\x02\x18\x01R\x0fhalfLifeSeconds\x12+\n" +
	"\x0fhop_probability\x18\x02 \x01(\x02B\x02\x18\x01R\x0ehopProbability\x12\x1a\n" +
	"\x06weight\x18\x03 \x01(\x02B\x02\x18\x01R\x06weight\x126\n" +
	"\x17maximum_payment_results\x18\x04 \x01(\rR\x15maximumPaymentResults\x12C\n" +
	"\x1eminimum_failure_relax_interval\x18\x05 \x01(\x04R\x1bminimumFailureRelaxInterval\x12F\n" +
	"\x05model\x18\x06 \x01(\x0e20.routerrpc.MissionControlConfig.ProbabilityModelR\x05model\x128\n" +
	"\aapriori\x18\a \x01(\v2\x1c.routerrpc.AprioriParametersH\x00R\aapriori\x128\n" +
	"\abimodal\x18\b \x01(\v2\x1c.routerrpc.BimodalParametersH\x00R\abimodal\",\n" +
	"\x10ProbabilityModel\x12\v\n" +
	"\aAPRIORI\x10\x00\x12\v\n" +
	"\aBIMODAL\x10\x01B\x11\n" +
	"\x0fEstimatorConfig\"r\n" +
	"\x11BimodalParameters\x12\x1f\n" +
	"\vnode_weight\x18\x01 \x01(\x01R\n" +
	"nodeWeight\x12\x1d\n" +
	"\n" +
	"scale_msat\x18\x02 \x01(\x04R\tscaleMsat\x12\x1d\n" +
	"\n" +
	"decay_time\x18\x03 \x01(\x04R\tdecayTime\"\xad\x01\n" +
	"\x11AprioriParameters\x12*\n" +
	"\x11half_life_seconds\x18\x01 \x01(\x04R\x0fhalfLifeSeconds\x12'\n" +
	"\x0fhop_probability\x18\x02 \x01(\x01R\x0ehopProbability\x12\x16\n" +
	"\x06weight\x18\x03 \x01(\x01R\x06weight\x12+\n" +
	"\x11capacity_fraction\x18\x04 \x01(\x01R\x10capacityFraction\"j\n" +
	"\x17QueryProbabilityRequest\x12\x1b\n" +
	"\tfrom_node\x18\x01 \x01(\fR\bfromNode\x12\x17\n" +
	"\ato_node\x18\x02 \x01(\fR\x06toNode\x12\x19\n" +
	"\bamt_msat\x18\x03 \x01(\x03R\aamtMsat\"k\n" +
	"\x18QueryProbabilityResponse\x12 \n" +
	"\vprobability\x18\x01 \x01(\x01R\vprobability\x12-\n" +
	"\ahistory\x18\x02 \x01(\v2\x13.routerrpc.PairDataR\ahistory\"\x86\x03\n" +
	"\x11BuildRouteRequest\x12\x19\n" +
	"\bamt_msat\x18\x01 \x01(\x03R\aamtMsat\x12(\n" +
	"\x10final_cltv_delta\x18\x02 \x01(\x05R\x0efinalCltvDelta\x12,\n" +
	"\x10outgoing_chan_id\x18\x03 \x01(\x04B\x020\x01R\x0eoutgoingChanId\x12\x1f\n" +
	"\vhop_pubkeys\x18\x04 \x03(\fR\n" +
	"hopPubkeys\x12!\n" +
	"\fpayment_addr\x18\x05 \x01(\fR\vpaymentAddr\x12p\n" +
	"\x18first_hop_custom_records\x18\x06 \x03(\v27.routerrpc.BuildRouteRequest.FirstHopCustomRecordsEntryR\x15firstHopCustomRecords\x1aH\n" +
	"\x1aFirstHopCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"8\n" +
	"\x12BuildRouteResponse\x12\"\n" +
	"\x05route\x18\x01 \x01(\v2\f.lnrpc.RouteR\x05route\"\x1c\n" +
	"\x1aSubscribeHtlcEventsRequest\"\x86\x06\n" +
	"\tHtlcEvent\x12.\n" +
	"\x13incoming_channel_id\x18\x01 \x01(\x04R\x11incomingChannelId\x12.\n" +
	"\x13outgoing_channel_id\x18\x02 \x01(\x04R\x11outgoingChannelId\x12(\n" +
	"\x10incoming_htlc_id\x18\x03 \x01(\x04R\x0eincomingHtlcId\x12(\n" +
	"\x10outgoing_htlc_id\x18\x04 \x01(\x04R\x0eoutgoingHtlcId\x12!\n" +
	"\ftimestamp_ns\x18\x05 \x01(\x04R\vtimestampNs\x12=\n" +
	"\n" +
	"event_type\x18\x06 \x01(\x0e2\x1e.routerrpc.HtlcEvent.EventTypeR\teventType\x12>\n" +
	"\rforward_event\x18\a \x01(\v2\x17.routerrpc.ForwardEventH\x00R\fforwardEvent\x12K\n" +
	"\x12forward_fail_event\x18\b \x01(\v2\x1b.routerrpc.ForwardFailEventH\x00R\x10forwardFailEvent\x12;\n" +
	"\fsettle_event\x18\t \x01(\v2\x16.routerrpc.SettleEventH\x00R\vsettleEvent\x12B\n" +
	"\x0flink_fail_event\x18\n" +
	" \x01(\v2\x18.routerrpc.LinkFailEventH\x00R\rlinkFailEvent\x12G\n" +
	"\x10subscribed_event\x18\v \x01(\v2\x1a.routerrpc.SubscribedEventH\x00R\x0fsubscribedEvent\x12E\n" +
	"\x10final_htlc_event\x18\f \x01(\v2\x19.routerrpc.FinalHtlcEventH\x00R\x0efinalHtlcEvent\"<\n" +
	"\tEventType\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\b\n" +
	"\x04SEND\x10\x01\x12\v\n" +
	"\aRECEIVE\x10\x02\x12\v\n" +
	"\aFORWARD\x10\x03B\a\n" +
	"\x05event\"\xbc\x01\n" +
	"\bHtlcInfo\x12+\n" +
	"\x11incoming_timelock\x18\x01 \x01(\rR\x10incomingTimelock\x12+\n" +
	"\x11outgoing_timelock\x18\x02 \x01(\rR\x10outgoingTimelock\x12*\n" +
	"\x11incoming_amt_msat\x18\x03 \x01(\x04R\x0fincomingAmtMsat\x12*\n" +
	"\x11outgoing_amt_msat\x18\x04 \x01(\x04R\x0foutgoingAmtMsat\"7\n" +
	"\fForwardEvent\x12'\n" +
	"\x04info\x18\x01 \x01(\v2\x13.routerrpc.HtlcInfoR\x04info\"\x12\n" +
	"\x10ForwardFailEvent\")\n" +
	"\vSettleEvent\x12\x1a\n" +
	"\bpreimage\x18\x01 \x01(\fR\bpreimage\"F\n" +
	"\x0eFinalHtlcEvent\x12\x18\n" +
	"\asettled\x18\x01 \x01(\bR\asettled\x12\x1a\n" +
	"\boffchain\x18\x02 \x01(\bR\boffchain\"\x11\n" +
	"\x0fSubscribedEvent\"\xdf\x01\n" +
	"\rLinkFailEvent\x12'\n" +
	"\x04info\x18\x01 \x01(\v2\x13.routerrpc.HtlcInfoR\x04info\x12=\n" +
	"\fwire_failure\x18\x02 \x01(\x0e2\x1a.lnrpc.Failure.FailureCodeR\vwireFailure\x12?\n" +
	"\x0efailure_detail\x18\x03 \x01(\x0e2\x18.routerrpc.FailureDetailR\rfailureDetail\x12%\n" +
	"\x0efailure_string\x18\x04 \x01(\tR\rfailureString\">\n" +
	"\n" +
	"CircuitKey\x12\x17\n" +
	"\achan_id\x18\x01 \x01(\x04R\x06chanId\x12\x17\n" +
	"\ahtlc_id\x18\x02 \x01(\x04R\x06htlcId\"\xe4\x06\n" +
	"\x1bForwardHtlcInterceptRequest\x12G\n" +
	"\x14incoming_circuit_key\x18\x01 \x01(\v2\x15.routerrpc.CircuitKeyR\x12incomingCircuitKey\x120\n" +
	"\x14incoming_amount_msat\x18\x05 \x01(\x04R\x12incomingAmountMsat\x12'\n" +
	"\x0fincoming_expiry\x18\x06 \x01(\rR\x0eincomingExpiry\x12!\n" +
	"\fpayment_hash\x18\x02 \x01(\fR\vpaymentHash\x12;\n" +
	"\x1aoutgoing_requested_chan_id\x18\a \x01(\x04R\x17outgoingRequestedChanId\x120\n" +
	"\x14outgoing_amount_msat\x18\x03 \x01(\x04R\x12outgoingAmountMsat\x12'\n" +
	"\x0foutgoing_expiry\x18\x04 \x01(\rR\x0eoutgoingExpiry\x12`\n" +
	"\x0ecustom_records\x18\b \x03(\v29.routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntryR\rcustomRecords\x12\x1d\n" +
	"\n" +
	"onion_blob\x18\t \x01(\fR\tonionBlob\x12(\n" +
	"\x10auto_fail_height\x18\n" +
	" \x01(\x05R\x0eautoFailHeight\x12t\n" +
	"\x16in_wire_custom_records\x18\v \x03(\v2?.routerrpc.ForwardHtlcInterceptRequest.InWireCustomRecordsEntryR\x13inWireCustomRecords\x12;\n" +
	"\x1aoutgoing_requested_node_id\x18\f \x01(\fR\x17outgoingRequestedNodeId\x1a@\n" +
	"\x12CustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1aF\n" +
	"\x18InWireCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\xb9\x04\n" +
	"\x1cForwardHtlcInterceptResponse\x12G\n" +
	"\x14incoming_circuit_key\x18\x01 \x01(\v2\x15.routerrpc.CircuitKeyR\x12incomingCircuitKey\x12;\n" +
	"\x06action\x18\x02 \x01(\x0e2#.routerrpc.ResolveHoldForwardActionR\x06action\x12\x1a\n" +
	"\bpreimage\x18\x03 \x01(\fR\bpreimage\x12'\n" +
	"\x0ffailure_message\x18\x04 \x01(\fR\x0efailureMessage\x12=\n" +
	"\ffailure_code\x18\x05 \x01(\x0e2\x1a.lnrpc.Failure.FailureCodeR\vfailureCode\x12$\n" +
	"\x0ein_amount_msat\x18\x06 \x01(\x04R\finAmountMsat\x12&\n" +
	"\x0fout_amount_msat\x18\a \x01(\x04R\routAmountMsat\x12x\n" +
	"\x17out_wire_custom_records\x18\b \x03(\v2A.routerrpc.ForwardHtlcInterceptResponse.OutWireCustomRecordsEntryR\x14outWireCustomRecords\x1aG\n" +
	"\x19OutWireCustomRecordsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\x82\x01\n" +
	"\x17UpdateChanStatusRequest\x122\n" +
	"\n" +
	"chan_point\x18\x01 \x01(\v2\x13.lnrpc.ChannelPointR\tchanPoint\x123\n" +
	"\x06action\x18\x02 \x01(\x0e2\x1b.routerrpc.ChanStatusActionR\x06action\"\x1a\n" +
	"\x18UpdateChanStatusResponse\"C\n" +
	"\x11AddAliasesRequest\x12.\n" +
	"\n" +
	"alias_maps\x18\x01 \x03(\v2\x0f.lnrpc.AliasMapR\taliasMaps\"D\n" +
	"\x12AddAliasesResponse\x12.\n" +
	"\n" +
	"alias_maps\x18\x01 \x03(\v2\x0f.lnrpc.AliasMapR\taliasMaps\"F\n" +
	"\x14DeleteAliasesRequest\x12.\n" +
	"\n" +
	"alias_maps\x18\x01 \x03(\v2\x0f.lnrpc.AliasMapR\taliasMaps\"G\n" +
	"\x15DeleteAliasesResponse\x12.\n" +
	"\n" +
	"alias_maps\x18\x01 \x03(\v2\x0f.lnrpc.AliasMapR\taliasMaps\",\n" +
	"\x14FindBaseAliasRequest\x12\x14\n" +
	"\x05alias\x18\x01 \x01(\x04R\x05alias\"+\n" +
	"\x15FindBaseAliasResponse\x12\x12\n" +
	"\x04base\x18\x01 \x01(\x04R\x04base\"\x95\x01\n" +
	"\x1eDeleteForwardingHistoryRequest\x12.\n" +
	"\x12delete_before_time\x18\x01 \x01(\x04H\x00R\x10deleteBeforeTime\x126\n" +
	"\x16delete_before_duration\x18\x02 \x01(\tH\x00R\x14deleteBeforeDurationB\v\n" +
	"\ttime_spec\"\x86\x01\n" +
	"\x1fDeleteForwardingHistoryResponse\x12%\n" +
	"\x0eevents_deleted\x18\x01 \x01(\x04R\reventsDeleted\x12$\n" +
	"\x0etotal_fee_msat\x18\x02 \x01(\x03R\ftotalFeeMsat\x12\x16\n" +
	"\x06status\x18\x03 \x01(\tR\x06status*\x85\x05\n" +
	"\rFailureDetail\x12\v\n" +
	"\aUNKNOWN\x10\x00\x12\r\n" +
	"\tNO_DETAIL\x10\x01\x12\x10\n" +
	"\fONION_DECODE\x10\x02\x12\x15\n" +
	"\x11LINK_NOT_ELIGIBLE\x10\x03\x12\x14\n" +
	"\x10ON_CHAIN_TIMEOUT\x10\x04\x12\x14\n" +
	"\x10HTLC_EXCEEDS_MAX\x10\x05\x12\x18\n" +
	"\x14INSUFFICIENT_BALANCE\x10\x06\x12\x16\n" +
	"\x12INCOMPLETE_FORWARD\x10\a\x12\x13\n" +
	"\x0fHTLC_ADD_FAILED\x10\b\x12\x15\n" +
	"\x11FORWARDS_DISABLED\x10\t\x12\x14\n" +
	"\x10INVOICE_CANCELED\x10\n" +
	"\x12\x15\n" +
	"\x11INVOICE_UNDERPAID\x10\v\x12\x1b\n" +
	"\x17INVOICE_EXPIRY_TOO_SOON\x10\f\x12\x14\n" +
	"\x10INVOICE_NOT_OPEN\x10\r\x12\x17\n" +
	"\x13MPP_INVOICE_TIMEOUT\x10\x0e\x12\x14\n" +
	"\x10ADDRESS_MISMATCH\x10\x0f\x12\x16\n" +
	"\x12SET_TOTAL_MISMATCH\x10\x10\x12\x15\n" +
	"\x11SET_TOTAL_TOO_LOW\x10\x11\x12\x10\n" +
	"\fSET_OVERPAID\x10\x12\x12\x13\n" +
	"\x0fUNKNOWN_INVOICE\x10\x13\x12\x13\n" +
	"\x0fINVALID_KEYSEND\x10\x14\x12\x13\n" +
	"\x0fMPP_IN_PROGRESS\x10\x15\x12\x12\n" +
	"\x0eCIRCULAR_ROUTE\x10\x16\x12\x1b\n" +
	"\x17INVOICE_ALREADY_SETTLED\x10\x17\x12\x1e\n" +
	"\x1aHTLC_INVOICE_TYPE_MISMATCH\x10\x18\x12\r\n" +
	"\tAMP_ERROR\x10\x19\x12\x16\n" +
	"\x12AMP_RECONSTRUCTION\x10\x1a\x12\x1e\n" +
	"\x1aEXTERNAL_VALIDATION_FAILED\x10\x1b*Q\n" +
	"\x18ResolveHoldForwardAction\x12\n" +
	"\n" +
	"\x06SETTLE\x10\x00\x12\b\n" +
	"\x04FAIL\x10\x01\x12\n" +
	"\n" +
	"\x06RESUME\x10\x02\x12\x13\n" +
	"\x0fRESUME_MODIFIED\x10\x03*5\n" +
	"\x10ChanStatusAction\x12\n" +
	"\n" +
	"\x06ENABLE\x10\x00\x12\v\n" +
	"\aDISABLE\x10\x01\x12\b\n" +
	"\x04AUTO\x10\x022\xc5\r\n" +
	"\x06Router\x12@\n" +
	"\rSendPaymentV2\x12\x1d.routerrpc.SendPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12B\n" +
	"\x0eTrackPaymentV2\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12B\n" +
	"\rTrackPayments\x12\x1f.routerrpc.TrackPaymentsRequest\x1a\x0e.lnrpc.Payment0\x01\x12K\n" +
	"\x10EstimateRouteFee\x12\x1a.routerrpc.RouteFeeRequest\x1a\x1b.routerrpc.RouteFeeResponse\x12B\n" +
	"\rSendToRouteV2\x12\x1d.routerrpc.SendToRouteRequest\x1a\x12.lnrpc.HTLCAttempt\x12d\n" +
	"\x13ResetMissionControl\x12%.routerrpc.ResetMissionControlRequest\x1a&.routerrpc.ResetMissionControlResponse\x12d\n" +
	"\x13QueryMissionControl\x12%.routerrpc.QueryMissionControlRequest\x1a&.routerrpc.QueryMissionControlResponse\x12j\n" +
	"\x15XImportMissionControl\x12'.routerrpc.XImportMissionControlRequest\x1a(.routerrpc.XImportMissionControlResponse\x12p\n" +
	"\x17GetMissionControlConfig\x12).routerrpc.GetMissionControlConfigRequest\x1a*.routerrpc.GetMissionControlConfigResponse\x12p\n" +
	"\x17SetMissionControlConfig\x12).routerrpc.SetMissionControlConfigRequest\x1a*.routerrpc.SetMissionControlConfigResponse\x12[\n" +
	"\x10QueryProbability\x12\".routerrpc.QueryProbabilityRequest\x1a#.routerrpc.QueryProbabilityResponse\x12I\n" +
	"\n" +
	"BuildRoute\x12\x1c.routerrpc.BuildRouteRequest\x1a\x1d.routerrpc.BuildRouteResponse\x12T\n" +
	"\x13SubscribeHtlcEvents\x12%.routerrpc.SubscribeHtlcEventsRequest\x1a\x14.routerrpc.HtlcEvent0\x01\x12f\n" +
	"\x0fHtlcInterceptor\x12'.routerrpc.ForwardHtlcInterceptResponse\x1a&.routerrpc.ForwardHtlcInterceptRequest(\x010\x01\x12[\n" +
	"\x10UpdateChanStatus\x12\".routerrpc.UpdateChanStatusRequest\x1a#.routerrpc.UpdateChanStatusResponse\x12S\n" +
	"\x14XAddLocalChanAliases\x12\x1c.routerrpc.AddAliasesRequest\x1a\x1d.routerrpc.AddAliasesResponse\x12\\\n" +
	"\x17XDeleteLocalChanAliases\x12\x1f.routerrpc.DeleteAliasesRequest\x1a .routerrpc.DeleteAliasesResponse\x12\\\n" +
	"\x17XFindBaseLocalChanAlias\x12\x1f.routerrpc.FindBaseAliasRequest\x1a .routerrpc.FindBaseAliasResponse\x12p\n" +
	"\x17DeleteForwardingHistory\x12).routerrpc.DeleteForwardingHistoryRequest\x1a*.routerrpc.DeleteForwardingHistoryResponseB1Z/github.com/lightningnetwork/lnd/lnrpc/routerrpcb\x06proto3"

var (
	file_routerrpc_router_proto_rawDescOnce sync.Once
	file_routerrpc_router_proto_rawDescData []byte
)

func file_routerrpc_router_proto_rawDescGZIP() []byte {
	file_routerrpc_router_proto_rawDescOnce.Do(func() {
		file_routerrpc_router_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_routerrpc_router_proto_rawDesc), len(file_routerrpc_router_proto_rawDesc)))
	})
	return file_routerrpc_router_proto_rawDescData
}

var file_routerrpc_router_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_routerrpc_router_proto_msgTypes = make([]protoimpl.MessageInfo, 54)
var file_routerrpc_router_proto_goTypes = []any{
	(FailureDetail)(0),                         // 0: routerrpc.FailureDetail
	(ResolveHoldForwardAction)(0),              // 1: routerrpc.ResolveHoldForwardAction
	(ChanStatusAction)(0),                      // 2: routerrpc.ChanStatusAction
	(MissionControlConfig_ProbabilityModel)(0), // 3: routerrpc.MissionControlConfig.ProbabilityModel
	(HtlcEvent_EventType)(0),                   // 4: routerrpc.HtlcEvent.EventType
	(*SendPaymentRequest)(nil),                 // 5: routerrpc.SendPaymentRequest
	(*TrackPaymentRequest)(nil),                // 6: routerrpc.TrackPaymentRequest
	(*TrackPaymentsRequest)(nil),               // 7: routerrpc.TrackPaymentsRequest
	(*RouteFeeRequest)(nil),                    // 8: routerrpc.RouteFeeRequest
	(*RouteFeeResponse)(nil),                   // 9: routerrpc.RouteFeeResponse
	(*SendToRouteRequest)(nil),                 // 10: routerrpc.SendToRouteRequest
	(*ResetMissionControlRequest)(nil),         // 11: routerrpc.ResetMissionControlRequest
	(*ResetMissionControlResponse)(nil),        // 12: routerrpc.ResetMissionControlResponse
	(*QueryMissionControlRequest)(nil),         // 13: routerrpc.QueryMissionControlRequest
	(*QueryMissionControlResponse)(nil),        // 14: routerrpc.QueryMissionControlResponse
	(*XImportMissionControlRequest)(nil),       // 15: routerrpc.XImportMissionControlRequest
	(*XImportMissionControlResponse)(nil),      // 16: routerrpc.XImportMissionControlResponse
	(*PairHistory)(nil),                        // 17: routerrpc.PairHistory
	(*PairData)(nil),                           // 18: routerrpc.PairData
	(*GetMissionControlConfigRequest)(nil),     // 19: routerrpc.GetMissionControlConfigRequest
	(*GetMissionControlConfigResponse)(nil),    // 20: routerrpc.GetMissionControlConfigResponse
	(*SetMissionControlConfigRequest)(nil),     // 21: routerrpc.SetMissionControlConfigRequest
	(*SetMissionControlConfigResponse)(nil),    // 22: routerrpc.SetMissionControlConfigResponse
	(*MissionControlConfig)(nil),               // 23: routerrpc.MissionControlConfig
	(*BimodalParameters)(nil),                  // 24: routerrpc.BimodalParameters
	(*AprioriParameters)(nil),                  // 25: routerrpc.AprioriParameters
	(*QueryProbabilityRequest)(nil),            // 26: routerrpc.QueryProbabilityRequest
	(*QueryProbabilityResponse)(nil),           // 27: routerrpc.QueryProbabilityResponse
	(*BuildRouteRequest)(nil),                  // 28: routerrpc.BuildRouteRequest
	(*BuildRouteResponse)(nil),                 // 29: routerrpc.BuildRouteResponse
	(*SubscribeHtlcEventsRequest)(nil),         // 30: routerrpc.SubscribeHtlcEventsRequest
	(*HtlcEvent)(nil),                          // 31: routerrpc.HtlcEvent
	(*HtlcInfo)(nil),                           // 32: routerrpc.HtlcInfo
	(*ForwardEvent)(nil),                       // 33: routerrpc.ForwardEvent
	(*ForwardFailEvent)(nil),                   // 34: routerrpc.ForwardFailEvent
	(*SettleEvent)(nil),                        // 35: routerrpc.SettleEvent
	(*FinalHtlcEvent)(nil),                     // 36: routerrpc.FinalHtlcEvent
	(*SubscribedEvent)(nil),                    // 37: routerrpc.SubscribedEvent
	(*LinkFailEvent)(nil),                      // 38: routerrpc.LinkFailEvent
	(*CircuitKey)(nil),                         // 39: routerrpc.CircuitKey
	(*ForwardHtlcInterceptRequest)(nil),        // 40: routerrpc.ForwardHtlcInterceptRequest
	(*ForwardHtlcInterceptResponse)(nil),       // 41: routerrpc.ForwardHtlcInterceptResponse
	(*UpdateChanStatusRequest)(nil),            // 42: routerrpc.UpdateChanStatusRequest
	(*UpdateChanStatusResponse)(nil),           // 43: routerrpc.UpdateChanStatusResponse
	(*AddAliasesRequest)(nil),                  // 44: routerrpc.AddAliasesRequest
	(*AddAliasesResponse)(nil),                 // 45: routerrpc.AddAliasesResponse
	(*DeleteAliasesRequest)(nil),               // 46: routerrpc.DeleteAliasesRequest
	(*DeleteAliasesResponse)(nil),              // 47: routerrpc.DeleteAliasesResponse
	(*FindBaseAliasRequest)(nil),               // 48: routerrpc.FindBaseAliasRequest
	(*FindBaseAliasResponse)(nil),              // 49: routerrpc.FindBaseAliasResponse
	(*DeleteForwardingHistoryRequest)(nil),     // 50: routerrpc.DeleteForwardingHistoryRequest
	(*DeleteForwardingHistoryResponse)(nil),    // 51: routerrpc.DeleteForwardingHistoryResponse
	nil,                                        // 52: routerrpc.SendPaymentRequest.DestCustomRecordsEntry
	nil,                                        // 53: routerrpc.SendPaymentRequest.FirstHopCustomRecordsEntry
	nil,                                        // 54: routerrpc.SendToRouteRequest.FirstHopCustomRecordsEntry
	nil,                                        // 55: routerrpc.BuildRouteRequest.FirstHopCustomRecordsEntry
	nil,                                        // 56: routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
	nil,                                        // 57: routerrpc.ForwardHtlcInterceptRequest.InWireCustomRecordsEntry
	nil,                                        // 58: routerrpc.ForwardHtlcInterceptResponse.OutWireCustomRecordsEntry
	(*lnrpc.RouteHint)(nil),                    // 59: lnrpc.RouteHint
	(lnrpc.FeatureBit)(0),                      // 60: lnrpc.FeatureBit
	(lnrpc.PaymentFailureReason)(0),            // 61: lnrpc.PaymentFailureReason
	(*lnrpc.Route)(nil),                        // 62: lnrpc.Route
	(lnrpc.Failure_FailureCode)(0),             // 63: lnrpc.Failure.FailureCode
	(*lnrpc.ChannelPoint)(nil),                 // 64: lnrpc.ChannelPoint
	(*lnrpc.AliasMap)(nil),                     // 65: lnrpc.AliasMap
	(*lnrpc.Payment)(nil),                      // 66: lnrpc.Payment
	(*lnrpc.HTLCAttempt)(nil),                  // 67: lnrpc.HTLCAttempt
}
var file_routerrpc_router_proto_depIdxs = []int32{
	59, // 0: routerrpc.SendPaymentRequest.route_hints:type_name -> lnrpc.RouteHint
	52, // 1: routerrpc.SendPaymentRequest.dest_custom_records:type_name -> routerrpc.SendPaymentRequest.DestCustomRecordsEntry
	60, // 2: routerrpc.SendPaymentRequest.dest_features:type_name -> lnrpc.FeatureBit
	53, // 3: routerrpc.SendPaymentRequest.first_hop_custom_records:type_name -> routerrpc.SendPaymentRequest.FirstHopCustomRecordsEntry
	61, // 4: routerrpc.RouteFeeResponse.failure_reason:type_name -> lnrpc.PaymentFailureReason
	62, // 5: routerrpc.SendToRouteRequest.route:type_name -> lnrpc.Route
	54, // 6: routerrpc.SendToRouteRequest.first_hop_custom_records:type_name -> routerrpc.SendToRouteRequest.FirstHopCustomRecordsEntry
	17, // 7: routerrpc.QueryMissionControlResponse.pairs:type_name -> routerrpc.PairHistory
	17, // 8: routerrpc.XImportMissionControlRequest.pairs:type_name -> routerrpc.PairHistory
	18, // 9: routerrpc.PairHistory.history:type_name -> routerrpc.PairData
	23, // 10: routerrpc.GetMissionControlConfigResponse.config:type_name -> routerrpc.MissionControlConfig
	23, // 11: routerrpc.SetMissionControlConfigRequest.config:type_name -> routerrpc.MissionControlConfig
	3,  // 12: routerrpc.MissionControlConfig.model:type_name -> routerrpc.MissionControlConfig.ProbabilityModel
	25, // 13: routerrpc.MissionControlConfig.apriori:type_name -> routerrpc.AprioriParameters
	24, // 14: routerrpc.MissionControlConfig.bimodal:type_name -> routerrpc.BimodalParameters
	18, // 15: routerrpc.QueryProbabilityResponse.history:type_name -> routerrpc.PairData
	55, // 16: routerrpc.BuildRouteRequest.first_hop_custom_records:type_name -> routerrpc.BuildRouteRequest.FirstHopCustomRecordsEntry
	62, // 17: routerrpc.BuildRouteResponse.route:type_name -> lnrpc.Route
	4,  // 18: routerrpc.HtlcEvent.event_type:type_name -> routerrpc.HtlcEvent.EventType
	33, // 19: routerrpc.HtlcEvent.forward_event:type_name -> routerrpc.ForwardEvent
	34, // 20: routerrpc.HtlcEvent.forward_fail_event:type_name -> routerrpc.ForwardFailEvent
	35, // 21: routerrpc.HtlcEvent.settle_event:type_name -> routerrpc.SettleEvent
	38, // 22: routerrpc.HtlcEvent.link_fail_event:type_name -> routerrpc.LinkFailEvent
	37, // 23: routerrpc.HtlcEvent.subscribed_event:type_name -> routerrpc.SubscribedEvent
	36, // 24: routerrpc.HtlcEvent.final_htlc_event:type_name -> routerrpc.FinalHtlcEvent
	32, // 25: routerrpc.ForwardEvent.info:type_name -> routerrpc.HtlcInfo
	32, // 26: routerrpc.LinkFailEvent.info:type_name -> routerrpc.HtlcInfo
	63, // 27: routerrpc.LinkFailEvent.wire_failure:type_name -> lnrpc.Failure.FailureCode
	0,  // 28: routerrpc.LinkFailEvent.failure_detail:type_name -> routerrpc.FailureDetail
	39, // 29: routerrpc.ForwardHtlcInterceptRequest.incoming_circuit_key:type_name -> routerrpc.CircuitKey
	56, // 30: routerrpc.ForwardHtlcInterceptRequest.custom_records:type_name -> routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry
	57, // 31: routerrpc.ForwardHtlcInterceptRequest.in_wire_custom_records:type_name -> routerrpc.ForwardHtlcInterceptRequest.InWireCustomRecordsEntry
	39, // 32: routerrpc.ForwardHtlcInterceptResponse.incoming_circuit_key:type_name -> routerrpc.CircuitKey
	1,  // 33: routerrpc.ForwardHtlcInterceptResponse.action:type_name -> routerrpc.ResolveHoldForwardAction
	63, // 34: routerrpc.ForwardHtlcInterceptResponse.failure_code:type_name -> lnrpc.Failure.FailureCode
	58, // 35: routerrpc.ForwardHtlcInterceptResponse.out_wire_custom_records:type_name -> routerrpc.ForwardHtlcInterceptResponse.OutWireCustomRecordsEntry
	64, // 36: routerrpc.UpdateChanStatusRequest.chan_point:type_name -> lnrpc.ChannelPoint
	2,  // 37: routerrpc.UpdateChanStatusRequest.action:type_name -> routerrpc.ChanStatusAction
	65, // 38: routerrpc.AddAliasesRequest.alias_maps:type_name -> lnrpc.AliasMap
	65, // 39: routerrpc.AddAliasesResponse.alias_maps:type_name -> lnrpc.AliasMap
	65, // 40: routerrpc.DeleteAliasesRequest.alias_maps:type_name -> lnrpc.AliasMap
	65, // 41: routerrpc.DeleteAliasesResponse.alias_maps:type_name -> lnrpc.AliasMap
	5,  // 42: routerrpc.Router.SendPaymentV2:input_type -> routerrpc.SendPaymentRequest
	6,  // 43: routerrpc.Router.TrackPaymentV2:input_type -> routerrpc.TrackPaymentRequest
	7,  // 44: routerrpc.Router.TrackPayments:input_type -> routerrpc.TrackPaymentsRequest
	8,  // 45: routerrpc.Router.EstimateRouteFee:input_type -> routerrpc.RouteFeeRequest
	10, // 46: routerrpc.Router.SendToRouteV2:input_type -> routerrpc.SendToRouteRequest
	11, // 47: routerrpc.Router.ResetMissionControl:input_type -> routerrpc.ResetMissionControlRequest
	13, // 48: routerrpc.Router.QueryMissionControl:input_type -> routerrpc.QueryMissionControlRequest
	15, // 49: routerrpc.Router.XImportMissionControl:input_type -> routerrpc.XImportMissionControlRequest
	19, // 50: routerrpc.Router.GetMissionControlConfig:input_type -> routerrpc.GetMissionControlConfigRequest
	21, // 51: routerrpc.Router.SetMissionControlConfig:input_type -> routerrpc.SetMissionControlConfigRequest
	26, // 52: routerrpc.Router.QueryProbability:input_type -> routerrpc.QueryProbabilityRequest
	28, // 53: routerrpc.Router.BuildRoute:input_type -> routerrpc.BuildRouteRequest
	30, // 54: routerrpc.Router.SubscribeHtlcEvents:input_type -> routerrpc.SubscribeHtlcEventsRequest
	41, // 55: routerrpc.Router.HtlcInterceptor:input_type -> routerrpc.ForwardHtlcInterceptResponse
	42, // 56: routerrpc.Router.UpdateChanStatus:input_type -> routerrpc.UpdateChanStatusRequest
	44, // 57: routerrpc.Router.XAddLocalChanAliases:input_type -> routerrpc.AddAliasesRequest
	46, // 58: routerrpc.Router.XDeleteLocalChanAliases:input_type -> routerrpc.DeleteAliasesRequest
	48, // 59: routerrpc.Router.XFindBaseLocalChanAlias:input_type -> routerrpc.FindBaseAliasRequest
	50, // 60: routerrpc.Router.DeleteForwardingHistory:input_type -> routerrpc.DeleteForwardingHistoryRequest
	66, // 61: routerrpc.Router.SendPaymentV2:output_type -> lnrpc.Payment
	66, // 62: routerrpc.Router.TrackPaymentV2:output_type -> lnrpc.Payment
	66, // 63: routerrpc.Router.TrackPayments:output_type -> lnrpc.Payment
	9,  // 64: routerrpc.Router.EstimateRouteFee:output_type -> routerrpc.RouteFeeResponse
	67, // 65: routerrpc.Router.SendToRouteV2:output_type -> lnrpc.HTLCAttempt
	12, // 66: routerrpc.Router.ResetMissionControl:output_type -> routerrpc.ResetMissionControlResponse
	14, // 67: routerrpc.Router.QueryMissionControl:output_type -> routerrpc.QueryMissionControlResponse
	16, // 68: routerrpc.Router.XImportMissionControl:output_type -> routerrpc.XImportMissionControlResponse
	20, // 69: routerrpc.Router.GetMissionControlConfig:output_type -> routerrpc.GetMissionControlConfigResponse
	22, // 70: routerrpc.Router.SetMissionControlConfig:output_type -> routerrpc.SetMissionControlConfigResponse
	27, // 71: routerrpc.Router.QueryProbability:output_type -> routerrpc.QueryProbabilityResponse
	29, // 72: routerrpc.Router.BuildRoute:output_type -> routerrpc.BuildRouteResponse
	31, // 73: routerrpc.Router.SubscribeHtlcEvents:output_type -> routerrpc.HtlcEvent
	40, // 74: routerrpc.Router.HtlcInterceptor:output_type -> routerrpc.ForwardHtlcInterceptRequest
	43, // 75: routerrpc.Router.UpdateChanStatus:output_type -> routerrpc.UpdateChanStatusResponse
	45, // 76: routerrpc.Router.XAddLocalChanAliases:output_type -> routerrpc.AddAliasesResponse
	47, // 77: routerrpc.Router.XDeleteLocalChanAliases:output_type -> routerrpc.DeleteAliasesResponse
	49, // 78: routerrpc.Router.XFindBaseLocalChanAlias:output_type -> routerrpc.FindBaseAliasResponse
	51, // 79: routerrpc.Router.DeleteForwardingHistory:output_type -> routerrpc.DeleteForwardingHistoryResponse
	61, // [61:80] is the sub-list for method output_type
	42, // [42:61] is the sub-list for method input_type
	42, // [42:42] is the sub-list for extension type_name
	42, // [42:42] is the sub-list for extension extendee
	0,  // [0:42] is the sub-list for field type_name
}

func init() { file_routerrpc_router_proto_init() }
func file_routerrpc_router_proto_init() {
	if File_routerrpc_router_proto != nil {
		return
	}
	file_routerrpc_router_proto_msgTypes[18].OneofWrappers = []any{
		(*MissionControlConfig_Apriori)(nil),
		(*MissionControlConfig_Bimodal)(nil),
	}
	file_routerrpc_router_proto_msgTypes[26].OneofWrappers = []any{
		(*HtlcEvent_ForwardEvent)(nil),
		(*HtlcEvent_ForwardFailEvent)(nil),
		(*HtlcEvent_SettleEvent)(nil),
		(*HtlcEvent_LinkFailEvent)(nil),
		(*HtlcEvent_SubscribedEvent)(nil),
		(*HtlcEvent_FinalHtlcEvent)(nil),
	}
	file_routerrpc_router_proto_msgTypes[45].OneofWrappers = []any{
		(*DeleteForwardingHistoryRequest_DeleteBeforeTime)(nil),
		(*DeleteForwardingHistoryRequest_DeleteBeforeDuration)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_routerrpc_router_proto_rawDesc), len(file_routerrpc_router_proto_rawDesc)),
			NumEnums:      5,
			NumMessages:   54,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_routerrpc_router_proto_goTypes,
		DependencyIndexes: file_routerrpc_router_proto_depIdxs,
		EnumInfos:         file_routerrpc_router_proto_enumTypes,
		MessageInfos:      file_routerrpc_router_proto_msgTypes,
	}.Build()
	File_routerrpc_router_proto = out.File
	file_routerrpc_router_proto_goTypes = nil
	file_routerrpc_router_proto_depIdxs = nil
}
