// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.1
// source: remote/kv.proto

package remoteproto

import (
	typesproto "github.com/erigontech/erigon/node/gointerfaces/typesproto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	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 Op int32

const (
	Op_FIRST           Op = 0
	Op_FIRST_DUP       Op = 1
	Op_SEEK            Op = 2
	Op_SEEK_BOTH       Op = 3
	Op_CURRENT         Op = 4
	Op_LAST            Op = 6
	Op_LAST_DUP        Op = 7
	Op_NEXT            Op = 8
	Op_NEXT_DUP        Op = 9
	Op_NEXT_NO_DUP     Op = 11
	Op_PREV            Op = 12
	Op_PREV_DUP        Op = 13
	Op_PREV_NO_DUP     Op = 14
	Op_SEEK_EXACT      Op = 15
	Op_SEEK_BOTH_EXACT Op = 16
	Op_OPEN            Op = 30
	Op_CLOSE           Op = 31
	Op_OPEN_DUP_SORT   Op = 32
)

// Enum value maps for Op.
var (
	Op_name = map[int32]string{
		0:  "FIRST",
		1:  "FIRST_DUP",
		2:  "SEEK",
		3:  "SEEK_BOTH",
		4:  "CURRENT",
		6:  "LAST",
		7:  "LAST_DUP",
		8:  "NEXT",
		9:  "NEXT_DUP",
		11: "NEXT_NO_DUP",
		12: "PREV",
		13: "PREV_DUP",
		14: "PREV_NO_DUP",
		15: "SEEK_EXACT",
		16: "SEEK_BOTH_EXACT",
		30: "OPEN",
		31: "CLOSE",
		32: "OPEN_DUP_SORT",
	}
	Op_value = map[string]int32{
		"FIRST":           0,
		"FIRST_DUP":       1,
		"SEEK":            2,
		"SEEK_BOTH":       3,
		"CURRENT":         4,
		"LAST":            6,
		"LAST_DUP":        7,
		"NEXT":            8,
		"NEXT_DUP":        9,
		"NEXT_NO_DUP":     11,
		"PREV":            12,
		"PREV_DUP":        13,
		"PREV_NO_DUP":     14,
		"SEEK_EXACT":      15,
		"SEEK_BOTH_EXACT": 16,
		"OPEN":            30,
		"CLOSE":           31,
		"OPEN_DUP_SORT":   32,
	}
)

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

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

func (Op) Descriptor() protoreflect.EnumDescriptor {
	return file_remote_kv_proto_enumTypes[0].Descriptor()
}

func (Op) Type() protoreflect.EnumType {
	return &file_remote_kv_proto_enumTypes[0]
}

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

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

type Action int32

const (
	Action_STORAGE     Action = 0 // Change only in the storage
	Action_UPSERT      Action = 1 // Change of balance or nonce (and optionally storage)
	Action_CODE        Action = 2 // Change of code (and optionally storage)
	Action_UPSERT_CODE Action = 3 // Change in (balance or nonce) and code (and optionally storage)
	Action_REMOVE      Action = 4 // Account is deleted
)

// Enum value maps for Action.
var (
	Action_name = map[int32]string{
		0: "STORAGE",
		1: "UPSERT",
		2: "CODE",
		3: "UPSERT_CODE",
		4: "REMOVE",
	}
	Action_value = map[string]int32{
		"STORAGE":     0,
		"UPSERT":      1,
		"CODE":        2,
		"UPSERT_CODE": 3,
		"REMOVE":      4,
	}
)

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

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

func (Action) Descriptor() protoreflect.EnumDescriptor {
	return file_remote_kv_proto_enumTypes[1].Descriptor()
}

func (Action) Type() protoreflect.EnumType {
	return &file_remote_kv_proto_enumTypes[1]
}

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

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

type Direction int32

const (
	Direction_FORWARD Direction = 0
	Direction_UNWIND  Direction = 1
)

// Enum value maps for Direction.
var (
	Direction_name = map[int32]string{
		0: "FORWARD",
		1: "UNWIND",
	}
	Direction_value = map[string]int32{
		"FORWARD": 0,
		"UNWIND":  1,
	}
)

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

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

func (Direction) Descriptor() protoreflect.EnumDescriptor {
	return file_remote_kv_proto_enumTypes[2].Descriptor()
}

func (Direction) Type() protoreflect.EnumType {
	return &file_remote_kv_proto_enumTypes[2]
}

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

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

type Cursor struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Op            Op                     `protobuf:"varint,1,opt,name=op,proto3,enum=remote.Op" json:"op,omitempty"`
	BucketName    string                 `protobuf:"bytes,2,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"`
	Cursor        uint32                 `protobuf:"varint,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
	K             []byte                 `protobuf:"bytes,4,opt,name=k,proto3" json:"k,omitempty"`
	V             []byte                 `protobuf:"bytes,5,opt,name=v,proto3" json:"v,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Cursor) ProtoMessage() {}

func (x *Cursor) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 Cursor.ProtoReflect.Descriptor instead.
func (*Cursor) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{0}
}

func (x *Cursor) GetOp() Op {
	if x != nil {
		return x.Op
	}
	return Op_FIRST
}

func (x *Cursor) GetBucketName() string {
	if x != nil {
		return x.BucketName
	}
	return ""
}

func (x *Cursor) GetCursor() uint32 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *Cursor) GetK() []byte {
	if x != nil {
		return x.K
	}
	return nil
}

func (x *Cursor) GetV() []byte {
	if x != nil {
		return x.V
	}
	return nil
}

type Pair struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	K             []byte                 `protobuf:"bytes,1,opt,name=k,proto3" json:"k,omitempty"`
	V             []byte                 `protobuf:"bytes,2,opt,name=v,proto3" json:"v,omitempty"`
	CursorId      uint32                 `protobuf:"varint,3,opt,name=cursor_id,json=cursorId,proto3" json:"cursor_id,omitempty"` // send once after new cursor open
	ViewId        uint64                 `protobuf:"varint,4,opt,name=view_id,json=viewId,proto3" json:"view_id,omitempty"`       // return once after tx open. mdbx's tx.ViewID() - id of write transaction in db
	TxId          uint64                 `protobuf:"varint,5,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`             // return once after tx open. internal identifier - use it in other methods - to achieve consistent DB view (to read data from same DB tx on server).
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Pair) ProtoMessage() {}

func (x *Pair) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 Pair.ProtoReflect.Descriptor instead.
func (*Pair) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{1}
}

func (x *Pair) GetK() []byte {
	if x != nil {
		return x.K
	}
	return nil
}

func (x *Pair) GetV() []byte {
	if x != nil {
		return x.V
	}
	return nil
}

func (x *Pair) GetCursorId() uint32 {
	if x != nil {
		return x.CursorId
	}
	return 0
}

func (x *Pair) GetViewId() uint64 {
	if x != nil {
		return x.ViewId
	}
	return 0
}

func (x *Pair) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

type StorageChange struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Location      *typesproto.H256       `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
	Data          []byte                 `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StorageChange) ProtoMessage() {}

func (x *StorageChange) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StorageChange.ProtoReflect.Descriptor instead.
func (*StorageChange) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{2}
}

func (x *StorageChange) GetLocation() *typesproto.H256 {
	if x != nil {
		return x.Location
	}
	return nil
}

func (x *StorageChange) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type AccountChange struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Address        *typesproto.H160       `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Incarnation    uint64                 `protobuf:"varint,2,opt,name=incarnation,proto3" json:"incarnation,omitempty"`
	Action         Action                 `protobuf:"varint,3,opt,name=action,proto3,enum=remote.Action" json:"action,omitempty"`
	Data           []byte                 `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // nil if there is no UPSERT in action
	Code           []byte                 `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` // nil if there is no CODE in action
	StorageChanges []*StorageChange       `protobuf:"bytes,6,rep,name=storage_changes,json=storageChanges,proto3" json:"storage_changes,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*AccountChange) ProtoMessage() {}

func (x *AccountChange) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 AccountChange.ProtoReflect.Descriptor instead.
func (*AccountChange) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{3}
}

func (x *AccountChange) GetAddress() *typesproto.H160 {
	if x != nil {
		return x.Address
	}
	return nil
}

func (x *AccountChange) GetIncarnation() uint64 {
	if x != nil {
		return x.Incarnation
	}
	return 0
}

func (x *AccountChange) GetAction() Action {
	if x != nil {
		return x.Action
	}
	return Action_STORAGE
}

func (x *AccountChange) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *AccountChange) GetCode() []byte {
	if x != nil {
		return x.Code
	}
	return nil
}

func (x *AccountChange) GetStorageChanges() []*StorageChange {
	if x != nil {
		return x.StorageChanges
	}
	return nil
}

// StateChangeBatch - list of StateDiff done in one DB transaction
type StateChangeBatch struct {
	state                protoimpl.MessageState `protogen:"open.v1"`
	StateVersionId       uint64                 `protobuf:"varint,1,opt,name=state_version_id,json=stateVersionId,proto3" json:"state_version_id,omitempty"` // mdbx's tx.ID() - id of write transaction in db - where this changes happened
	ChangeBatch          []*StateChange         `protobuf:"bytes,2,rep,name=change_batch,json=changeBatch,proto3" json:"change_batch,omitempty"`
	PendingBlockBaseFee  uint64                 `protobuf:"varint,3,opt,name=pending_block_base_fee,json=pendingBlockBaseFee,proto3" json:"pending_block_base_fee,omitempty"` // BaseFee of the next block to be produced
	BlockGasLimit        uint64                 `protobuf:"varint,4,opt,name=block_gas_limit,json=blockGasLimit,proto3" json:"block_gas_limit,omitempty"`                     // GasLimit of the latest block - proxy for the gas limit of the next block to be produced
	FinalizedBlock       uint64                 `protobuf:"varint,5,opt,name=finalized_block,json=finalizedBlock,proto3" json:"finalized_block,omitempty"`
	PendingBlobFeePerGas uint64                 `protobuf:"varint,6,opt,name=pending_blob_fee_per_gas,json=pendingBlobFeePerGas,proto3" json:"pending_blob_fee_per_gas,omitempty"` // Base Blob Fee for the next block to be produced
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*StateChangeBatch) ProtoMessage() {}

func (x *StateChangeBatch) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StateChangeBatch.ProtoReflect.Descriptor instead.
func (*StateChangeBatch) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{4}
}

func (x *StateChangeBatch) GetStateVersionId() uint64 {
	if x != nil {
		return x.StateVersionId
	}
	return 0
}

func (x *StateChangeBatch) GetChangeBatch() []*StateChange {
	if x != nil {
		return x.ChangeBatch
	}
	return nil
}

func (x *StateChangeBatch) GetPendingBlockBaseFee() uint64 {
	if x != nil {
		return x.PendingBlockBaseFee
	}
	return 0
}

func (x *StateChangeBatch) GetBlockGasLimit() uint64 {
	if x != nil {
		return x.BlockGasLimit
	}
	return 0
}

func (x *StateChangeBatch) GetFinalizedBlock() uint64 {
	if x != nil {
		return x.FinalizedBlock
	}
	return 0
}

func (x *StateChangeBatch) GetPendingBlobFeePerGas() uint64 {
	if x != nil {
		return x.PendingBlobFeePerGas
	}
	return 0
}

// StateChange - changes done by 1 block or by 1 unwind
type StateChange struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Direction     Direction              `protobuf:"varint,1,opt,name=direction,proto3,enum=remote.Direction" json:"direction,omitempty"`
	BlockHeight   uint64                 `protobuf:"varint,2,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
	BlockHash     *typesproto.H256       `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
	Changes       []*AccountChange       `protobuf:"bytes,4,rep,name=changes,proto3" json:"changes,omitempty"`
	Txs           [][]byte               `protobuf:"bytes,5,rep,name=txs,proto3" json:"txs,omitempty"` // enable by withTransactions=true
	BlockTime     uint64                 `protobuf:"varint,6,opt,name=block_time,json=blockTime,proto3" json:"block_time,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StateChange) ProtoMessage() {}

func (x *StateChange) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StateChange.ProtoReflect.Descriptor instead.
func (*StateChange) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{5}
}

func (x *StateChange) GetDirection() Direction {
	if x != nil {
		return x.Direction
	}
	return Direction_FORWARD
}

func (x *StateChange) GetBlockHeight() uint64 {
	if x != nil {
		return x.BlockHeight
	}
	return 0
}

func (x *StateChange) GetBlockHash() *typesproto.H256 {
	if x != nil {
		return x.BlockHash
	}
	return nil
}

func (x *StateChange) GetChanges() []*AccountChange {
	if x != nil {
		return x.Changes
	}
	return nil
}

func (x *StateChange) GetTxs() [][]byte {
	if x != nil {
		return x.Txs
	}
	return nil
}

func (x *StateChange) GetBlockTime() uint64 {
	if x != nil {
		return x.BlockTime
	}
	return 0
}

type StateChangeRequest struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	WithStorage      bool                   `protobuf:"varint,1,opt,name=with_storage,json=withStorage,proto3" json:"with_storage,omitempty"`
	WithTransactions bool                   `protobuf:"varint,2,opt,name=with_transactions,json=withTransactions,proto3" json:"with_transactions,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*StateChangeRequest) ProtoMessage() {}

func (x *StateChangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StateChangeRequest.ProtoReflect.Descriptor instead.
func (*StateChangeRequest) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{6}
}

func (x *StateChangeRequest) GetWithStorage() bool {
	if x != nil {
		return x.WithStorage
	}
	return false
}

func (x *StateChangeRequest) GetWithTransactions() bool {
	if x != nil {
		return x.WithTransactions
	}
	return false
}

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

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

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

func (*SnapshotsRequest) ProtoMessage() {}

func (x *SnapshotsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 SnapshotsRequest.ProtoReflect.Descriptor instead.
func (*SnapshotsRequest) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{7}
}

type SnapshotsReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	BlocksFiles   []string               `protobuf:"bytes,1,rep,name=blocks_files,json=blocksFiles,proto3" json:"blocks_files,omitempty"`
	HistoryFiles  []string               `protobuf:"bytes,2,rep,name=history_files,json=historyFiles,proto3" json:"history_files,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SnapshotsReply) ProtoMessage() {}

func (x *SnapshotsReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 SnapshotsReply.ProtoReflect.Descriptor instead.
func (*SnapshotsReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{8}
}

func (x *SnapshotsReply) GetBlocksFiles() []string {
	if x != nil {
		return x.BlocksFiles
	}
	return nil
}

func (x *SnapshotsReply) GetHistoryFiles() []string {
	if x != nil {
		return x.HistoryFiles
	}
	return nil
}

type RangeReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table       string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	FromPrefix  []byte `protobuf:"bytes,3,opt,name=from_prefix,json=fromPrefix,proto3" json:"from_prefix,omitempty"`
	ToPrefix    []byte `protobuf:"bytes,4,opt,name=to_prefix,json=toPrefix,proto3" json:"to_prefix,omitempty"`
	OrderAscend bool   `protobuf:"varint,5,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"`
	Limit       int64  `protobuf:"zigzag64,6,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit
	// pagination params
	PageSize      int32  `protobuf:"varint,7,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose
	PageToken     string `protobuf:"bytes,8,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RangeReq) ProtoMessage() {}

func (x *RangeReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 RangeReq.ProtoReflect.Descriptor instead.
func (*RangeReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{9}
}

func (x *RangeReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *RangeReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *RangeReq) GetFromPrefix() []byte {
	if x != nil {
		return x.FromPrefix
	}
	return nil
}

func (x *RangeReq) GetToPrefix() []byte {
	if x != nil {
		return x.ToPrefix
	}
	return nil
}

func (x *RangeReq) GetOrderAscend() bool {
	if x != nil {
		return x.OrderAscend
	}
	return false
}

func (x *RangeReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *RangeReq) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *RangeReq) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// `kv.Sequence` method
type SequenceReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table         string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SequenceReq) ProtoMessage() {}

func (x *SequenceReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 SequenceReq.ProtoReflect.Descriptor instead.
func (*SequenceReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{10}
}

func (x *SequenceReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *SequenceReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

type SequenceReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Value         uint64                 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SequenceReply) ProtoMessage() {}

func (x *SequenceReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 SequenceReply.ProtoReflect.Descriptor instead.
func (*SequenceReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{11}
}

func (x *SequenceReply) GetValue() uint64 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Temporal methods
type GetLatestReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table         string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	K             []byte `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"`
	Ts            uint64 `protobuf:"varint,4,opt,name=ts,proto3" json:"ts,omitempty"`
	K2            []byte `protobuf:"bytes,5,opt,name=k2,proto3" json:"k2,omitempty"`
	Latest        bool   `protobuf:"varint,6,opt,name=latest,proto3" json:"latest,omitempty"` // if true, then `ts` ignored and return latest state (without history lookup)
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetLatestReq) ProtoMessage() {}

func (x *GetLatestReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 GetLatestReq.ProtoReflect.Descriptor instead.
func (*GetLatestReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{12}
}

func (x *GetLatestReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *GetLatestReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *GetLatestReq) GetK() []byte {
	if x != nil {
		return x.K
	}
	return nil
}

func (x *GetLatestReq) GetTs() uint64 {
	if x != nil {
		return x.Ts
	}
	return 0
}

func (x *GetLatestReq) GetK2() []byte {
	if x != nil {
		return x.K2
	}
	return nil
}

func (x *GetLatestReq) GetLatest() bool {
	if x != nil {
		return x.Latest
	}
	return false
}

type GetLatestReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	V             []byte                 `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"`
	Ok            bool                   `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetLatestReply) ProtoMessage() {}

func (x *GetLatestReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 GetLatestReply.ProtoReflect.Descriptor instead.
func (*GetLatestReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{13}
}

func (x *GetLatestReply) GetV() []byte {
	if x != nil {
		return x.V
	}
	return nil
}

func (x *GetLatestReply) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

type HistorySeekReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TxId          uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	Table         string                 `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	K             []byte                 `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"`
	Ts            uint64                 `protobuf:"varint,4,opt,name=ts,proto3" json:"ts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HistorySeekReq) ProtoMessage() {}

func (x *HistorySeekReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HistorySeekReq.ProtoReflect.Descriptor instead.
func (*HistorySeekReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{14}
}

func (x *HistorySeekReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *HistorySeekReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *HistorySeekReq) GetK() []byte {
	if x != nil {
		return x.K
	}
	return nil
}

func (x *HistorySeekReq) GetTs() uint64 {
	if x != nil {
		return x.Ts
	}
	return 0
}

type HistorySeekReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	V             []byte                 `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"`
	Ok            bool                   `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HistorySeekReply) ProtoMessage() {}

func (x *HistorySeekReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HistorySeekReply.ProtoReflect.Descriptor instead.
func (*HistorySeekReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{15}
}

func (x *HistorySeekReply) GetV() []byte {
	if x != nil {
		return x.V
	}
	return nil
}

func (x *HistorySeekReply) GetOk() bool {
	if x != nil {
		return x.Ok
	}
	return false
}

type IndexRangeReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table       string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	K           []byte `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"`
	FromTs      int64  `protobuf:"zigzag64,4,opt,name=from_ts,json=fromTs,proto3" json:"from_ts,omitempty"` // -1 means Inf
	ToTs        int64  `protobuf:"zigzag64,5,opt,name=to_ts,json=toTs,proto3" json:"to_ts,omitempty"`       // -1 means Inf
	OrderAscend bool   `protobuf:"varint,6,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"`
	Limit       int64  `protobuf:"zigzag64,7,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit
	// pagination params
	PageSize      int32  `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose
	PageToken     string `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IndexRangeReq) ProtoMessage() {}

func (x *IndexRangeReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 IndexRangeReq.ProtoReflect.Descriptor instead.
func (*IndexRangeReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{16}
}

func (x *IndexRangeReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *IndexRangeReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *IndexRangeReq) GetK() []byte {
	if x != nil {
		return x.K
	}
	return nil
}

func (x *IndexRangeReq) GetFromTs() int64 {
	if x != nil {
		return x.FromTs
	}
	return 0
}

func (x *IndexRangeReq) GetToTs() int64 {
	if x != nil {
		return x.ToTs
	}
	return 0
}

func (x *IndexRangeReq) GetOrderAscend() bool {
	if x != nil {
		return x.OrderAscend
	}
	return false
}

func (x *IndexRangeReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *IndexRangeReq) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *IndexRangeReq) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

type IndexRangeReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Timestamps    []uint64               `protobuf:"varint,1,rep,packed,name=timestamps,proto3" json:"timestamps,omitempty"` //TODO: it can be a bitmap
	NextPageToken string                 `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IndexRangeReply) ProtoMessage() {}

func (x *IndexRangeReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 IndexRangeReply.ProtoReflect.Descriptor instead.
func (*IndexRangeReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{17}
}

func (x *IndexRangeReply) GetTimestamps() []uint64 {
	if x != nil {
		return x.Timestamps
	}
	return nil
}

func (x *IndexRangeReply) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

type HistoryRangeReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table       string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	FromTs      int64  `protobuf:"zigzag64,4,opt,name=from_ts,json=fromTs,proto3" json:"from_ts,omitempty"` // -1 means Inf
	ToTs        int64  `protobuf:"zigzag64,5,opt,name=to_ts,json=toTs,proto3" json:"to_ts,omitempty"`       // -1 means Inf
	OrderAscend bool   `protobuf:"varint,6,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"`
	Limit       int64  `protobuf:"zigzag64,7,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit
	// pagination params
	PageSize      int32  `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose
	PageToken     string `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HistoryRangeReq) ProtoMessage() {}

func (x *HistoryRangeReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HistoryRangeReq.ProtoReflect.Descriptor instead.
func (*HistoryRangeReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{18}
}

func (x *HistoryRangeReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *HistoryRangeReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *HistoryRangeReq) GetFromTs() int64 {
	if x != nil {
		return x.FromTs
	}
	return 0
}

func (x *HistoryRangeReq) GetToTs() int64 {
	if x != nil {
		return x.ToTs
	}
	return 0
}

func (x *HistoryRangeReq) GetOrderAscend() bool {
	if x != nil {
		return x.OrderAscend
	}
	return false
}

func (x *HistoryRangeReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *HistoryRangeReq) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *HistoryRangeReq) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

type RangeAsOfReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	TxId  uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	// query params
	Table       string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	FromKey     []byte `protobuf:"bytes,3,opt,name=from_key,json=fromKey,proto3" json:"from_key,omitempty"` // nil means Inf
	ToKey       []byte `protobuf:"bytes,4,opt,name=to_key,json=toKey,proto3" json:"to_key,omitempty"`       // nil means Inf
	Ts          uint64 `protobuf:"varint,5,opt,name=ts,proto3" json:"ts,omitempty"`
	Latest      bool   `protobuf:"varint,6,opt,name=latest,proto3" json:"latest,omitempty"` // if true, then `ts` ignored and return latest state (without history lookup)
	OrderAscend bool   `protobuf:"varint,7,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"`
	Limit       int64  `protobuf:"zigzag64,8,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit
	// pagination params
	PageSize      int32  `protobuf:"varint,9,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose
	PageToken     string `protobuf:"bytes,10,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RangeAsOfReq) ProtoMessage() {}

func (x *RangeAsOfReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 RangeAsOfReq.ProtoReflect.Descriptor instead.
func (*RangeAsOfReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{19}
}

func (x *RangeAsOfReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *RangeAsOfReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *RangeAsOfReq) GetFromKey() []byte {
	if x != nil {
		return x.FromKey
	}
	return nil
}

func (x *RangeAsOfReq) GetToKey() []byte {
	if x != nil {
		return x.ToKey
	}
	return nil
}

func (x *RangeAsOfReq) GetTs() uint64 {
	if x != nil {
		return x.Ts
	}
	return 0
}

func (x *RangeAsOfReq) GetLatest() bool {
	if x != nil {
		return x.Latest
	}
	return false
}

func (x *RangeAsOfReq) GetOrderAscend() bool {
	if x != nil {
		return x.OrderAscend
	}
	return false
}

func (x *RangeAsOfReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *RangeAsOfReq) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *RangeAsOfReq) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

type Pairs struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Keys          [][]byte               `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` // TODO: replace by lengtsh+arena? Anyway on server we need copy (serialization happening outside tx)
	Values        [][]byte               `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	NextPageToken string                 `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` //  uint32 estimateTotal = 3; // send once after stream creation
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Pairs) ProtoMessage() {}

func (x *Pairs) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 Pairs.ProtoReflect.Descriptor instead.
func (*Pairs) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{20}
}

func (x *Pairs) GetKeys() [][]byte {
	if x != nil {
		return x.Keys
	}
	return nil
}

func (x *Pairs) GetValues() [][]byte {
	if x != nil {
		return x.Values
	}
	return nil
}

func (x *Pairs) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

type PairsPagination struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	NextKey       []byte                 `protobuf:"bytes,1,opt,name=next_key,json=nextKey,proto3" json:"next_key,omitempty"`
	Limit         int64                  `protobuf:"zigzag64,2,opt,name=limit,proto3" json:"limit,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PairsPagination) ProtoMessage() {}

func (x *PairsPagination) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 PairsPagination.ProtoReflect.Descriptor instead.
func (*PairsPagination) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{21}
}

func (x *PairsPagination) GetNextKey() []byte {
	if x != nil {
		return x.NextKey
	}
	return nil
}

func (x *PairsPagination) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

type IndexPagination struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	NextTimeStamp int64                  `protobuf:"zigzag64,1,opt,name=next_time_stamp,json=nextTimeStamp,proto3" json:"next_time_stamp,omitempty"`
	Limit         int64                  `protobuf:"zigzag64,2,opt,name=limit,proto3" json:"limit,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IndexPagination) ProtoMessage() {}

func (x *IndexPagination) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 IndexPagination.ProtoReflect.Descriptor instead.
func (*IndexPagination) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{22}
}

func (x *IndexPagination) GetNextTimeStamp() int64 {
	if x != nil {
		return x.NextTimeStamp
	}
	return 0
}

func (x *IndexPagination) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

type HasPrefixReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TxId          uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
	Table         string                 `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	Prefix        []byte                 `protobuf:"bytes,3,opt,name=prefix,proto3" json:"prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HasPrefixReq) ProtoMessage() {}

func (x *HasPrefixReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HasPrefixReq.ProtoReflect.Descriptor instead.
func (*HasPrefixReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{23}
}

func (x *HasPrefixReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *HasPrefixReq) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

func (x *HasPrefixReq) GetPrefix() []byte {
	if x != nil {
		return x.Prefix
	}
	return nil
}

type HasPrefixReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	FirstKey      []byte                 `protobuf:"bytes,1,opt,name=first_key,json=firstKey,proto3" json:"first_key,omitempty"`
	FirstVal      []byte                 `protobuf:"bytes,2,opt,name=first_val,json=firstVal,proto3" json:"first_val,omitempty"`
	HasPrefix     bool                   `protobuf:"varint,3,opt,name=has_prefix,json=hasPrefix,proto3" json:"has_prefix,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HasPrefixReply) ProtoMessage() {}

func (x *HasPrefixReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HasPrefixReply.ProtoReflect.Descriptor instead.
func (*HasPrefixReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{24}
}

func (x *HasPrefixReply) GetFirstKey() []byte {
	if x != nil {
		return x.FirstKey
	}
	return nil
}

func (x *HasPrefixReply) GetFirstVal() []byte {
	if x != nil {
		return x.FirstVal
	}
	return nil
}

func (x *HasPrefixReply) GetHasPrefix() bool {
	if x != nil {
		return x.HasPrefix
	}
	return false
}

type HistoryStartFromReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Domain        uint32                 `protobuf:"varint,1,opt,name=domain,proto3" json:"domain,omitempty"`
	TxId          uint64                 `protobuf:"varint,2,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx()
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HistoryStartFromReq) ProtoMessage() {}

func (x *HistoryStartFromReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HistoryStartFromReq.ProtoReflect.Descriptor instead.
func (*HistoryStartFromReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{25}
}

func (x *HistoryStartFromReq) GetDomain() uint32 {
	if x != nil {
		return x.Domain
	}
	return 0
}

func (x *HistoryStartFromReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

type HistoryStartFromReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	StartFrom     uint64                 `protobuf:"varint,1,opt,name=start_from,json=startFrom,proto3" json:"start_from,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*HistoryStartFromReply) ProtoMessage() {}

func (x *HistoryStartFromReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 HistoryStartFromReply.ProtoReflect.Descriptor instead.
func (*HistoryStartFromReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{26}
}

func (x *HistoryStartFromReply) GetStartFrom() uint64 {
	if x != nil {
		return x.StartFrom
	}
	return 0
}

type CurrentDomainVersionReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TxId          uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
	Domain        uint32                 `protobuf:"varint,2,opt,name=domain,proto3" json:"domain,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CurrentDomainVersionReq) ProtoMessage() {}

func (x *CurrentDomainVersionReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 CurrentDomainVersionReq.ProtoReflect.Descriptor instead.
func (*CurrentDomainVersionReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{27}
}

func (x *CurrentDomainVersionReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

func (x *CurrentDomainVersionReq) GetDomain() uint32 {
	if x != nil {
		return x.Domain
	}
	return 0
}

type CurrentDomainVersionReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Major         uint64                 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
	Minor         uint64                 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CurrentDomainVersionReply) ProtoMessage() {}

func (x *CurrentDomainVersionReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 CurrentDomainVersionReply.ProtoReflect.Descriptor instead.
func (*CurrentDomainVersionReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{28}
}

func (x *CurrentDomainVersionReply) GetMajor() uint64 {
	if x != nil {
		return x.Major
	}
	return 0
}

func (x *CurrentDomainVersionReply) GetMinor() uint64 {
	if x != nil {
		return x.Minor
	}
	return 0
}

type StepSizeReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	TxId          uint64                 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StepSizeReq) ProtoMessage() {}

func (x *StepSizeReq) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StepSizeReq.ProtoReflect.Descriptor instead.
func (*StepSizeReq) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{29}
}

func (x *StepSizeReq) GetTxId() uint64 {
	if x != nil {
		return x.TxId
	}
	return 0
}

type StepSizeReply struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Step          uint64                 `protobuf:"varint,1,opt,name=step,proto3" json:"step,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StepSizeReply) ProtoMessage() {}

func (x *StepSizeReply) ProtoReflect() protoreflect.Message {
	mi := &file_remote_kv_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 StepSizeReply.ProtoReflect.Descriptor instead.
func (*StepSizeReply) Descriptor() ([]byte, []int) {
	return file_remote_kv_proto_rawDescGZIP(), []int{30}
}

func (x *StepSizeReply) GetStep() uint64 {
	if x != nil {
		return x.Step
	}
	return 0
}

var File_remote_kv_proto protoreflect.FileDescriptor

const file_remote_kv_proto_rawDesc = "" +
	"\n" +
	"\x0fremote/kv.proto\x12\x06remote\x1a\x1bgoogle/protobuf/empty.proto\x1a\x11types/types.proto\"y\n" +
	"\x06Cursor\x12\x1a\n" +
	"\x02op\x18\x01 \x01(\x0e2\n" +
	".remote.OpR\x02op\x12\x1f\n" +
	"\vbucket_name\x18\x02 \x01(\tR\n" +
	"bucketName\x12\x16\n" +
	"\x06cursor\x18\x03 \x01(\rR\x06cursor\x12\f\n" +
	"\x01k\x18\x04 \x01(\fR\x01k\x12\f\n" +
	"\x01v\x18\x05 \x01(\fR\x01v\"m\n" +
	"\x04Pair\x12\f\n" +
	"\x01k\x18\x01 \x01(\fR\x01k\x12\f\n" +
	"\x01v\x18\x02 \x01(\fR\x01v\x12\x1b\n" +
	"\tcursor_id\x18\x03 \x01(\rR\bcursorId\x12\x17\n" +
	"\aview_id\x18\x04 \x01(\x04R\x06viewId\x12\x13\n" +
	"\x05tx_id\x18\x05 \x01(\x04R\x04txId\"L\n" +
	"\rStorageChange\x12'\n" +
	"\blocation\x18\x01 \x01(\v2\v.types.H256R\blocation\x12\x12\n" +
	"\x04data\x18\x02 \x01(\fR\x04data\"\xe8\x01\n" +
	"\rAccountChange\x12%\n" +
	"\aaddress\x18\x01 \x01(\v2\v.types.H160R\aaddress\x12 \n" +
	"\vincarnation\x18\x02 \x01(\x04R\vincarnation\x12&\n" +
	"\x06action\x18\x03 \x01(\x0e2\x0e.remote.ActionR\x06action\x12\x12\n" +
	"\x04data\x18\x04 \x01(\fR\x04data\x12\x12\n" +
	"\x04code\x18\x05 \x01(\fR\x04code\x12>\n" +
	"\x0fstorage_changes\x18\x06 \x03(\v2\x15.remote.StorageChangeR\x0estorageChanges\"\xb2\x02\n" +
	"\x10StateChangeBatch\x12(\n" +
	"\x10state_version_id\x18\x01 \x01(\x04R\x0estateVersionId\x126\n" +
	"\fchange_batch\x18\x02 \x03(\v2\x13.remote.StateChangeR\vchangeBatch\x123\n" +
	"\x16pending_block_base_fee\x18\x03 \x01(\x04R\x13pendingBlockBaseFee\x12&\n" +
	"\x0fblock_gas_limit\x18\x04 \x01(\x04R\rblockGasLimit\x12'\n" +
	"\x0ffinalized_block\x18\x05 \x01(\x04R\x0efinalizedBlock\x126\n" +
	"\x18pending_blob_fee_per_gas\x18\x06 \x01(\x04R\x14pendingBlobFeePerGas\"\xef\x01\n" +
	"\vStateChange\x12/\n" +
	"\tdirection\x18\x01 \x01(\x0e2\x11.remote.DirectionR\tdirection\x12!\n" +
	"\fblock_height\x18\x02 \x01(\x04R\vblockHeight\x12*\n" +
	"\n" +
	"block_hash\x18\x03 \x01(\v2\v.types.H256R\tblockHash\x12/\n" +
	"\achanges\x18\x04 \x03(\v2\x15.remote.AccountChangeR\achanges\x12\x10\n" +
	"\x03txs\x18\x05 \x03(\fR\x03txs\x12\x1d\n" +
	"\n" +
	"block_time\x18\x06 \x01(\x04R\tblockTime\"d\n" +
	"\x12StateChangeRequest\x12!\n" +
	"\fwith_storage\x18\x01 \x01(\bR\vwithStorage\x12+\n" +
	"\x11with_transactions\x18\x02 \x01(\bR\x10withTransactions\"\x12\n" +
	"\x10SnapshotsRequest\"X\n" +
	"\x0eSnapshotsReply\x12!\n" +
	"\fblocks_files\x18\x01 \x03(\tR\vblocksFiles\x12#\n" +
	"\rhistory_files\x18\x02 \x03(\tR\fhistoryFiles\"\xe8\x01\n" +
	"\bRangeReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\x1f\n" +
	"\vfrom_prefix\x18\x03 \x01(\fR\n" +
	"fromPrefix\x12\x1b\n" +
	"\tto_prefix\x18\x04 \x01(\fR\btoPrefix\x12!\n" +
	"\forder_ascend\x18\x05 \x01(\bR\vorderAscend\x12\x14\n" +
	"\x05limit\x18\x06 \x01(\x12R\x05limit\x12\x1b\n" +
	"\tpage_size\x18\a \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\b \x01(\tR\tpageToken\"8\n" +
	"\vSequenceReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\"%\n" +
	"\rSequenceReply\x12\x14\n" +
	"\x05value\x18\x01 \x01(\x04R\x05value\"\x7f\n" +
	"\fGetLatestReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\f\n" +
	"\x01k\x18\x03 \x01(\fR\x01k\x12\x0e\n" +
	"\x02ts\x18\x04 \x01(\x04R\x02ts\x12\x0e\n" +
	"\x02k2\x18\x05 \x01(\fR\x02k2\x12\x16\n" +
	"\x06latest\x18\x06 \x01(\bR\x06latest\".\n" +
	"\x0eGetLatestReply\x12\f\n" +
	"\x01v\x18\x01 \x01(\fR\x01v\x12\x0e\n" +
	"\x02ok\x18\x02 \x01(\bR\x02ok\"Y\n" +
	"\x0eHistorySeekReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\f\n" +
	"\x01k\x18\x03 \x01(\fR\x01k\x12\x0e\n" +
	"\x02ts\x18\x04 \x01(\x04R\x02ts\"0\n" +
	"\x10HistorySeekReply\x12\f\n" +
	"\x01v\x18\x01 \x01(\fR\x01v\x12\x0e\n" +
	"\x02ok\x18\x02 \x01(\bR\x02ok\"\xeb\x01\n" +
	"\rIndexRangeReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\f\n" +
	"\x01k\x18\x03 \x01(\fR\x01k\x12\x17\n" +
	"\afrom_ts\x18\x04 \x01(\x12R\x06fromTs\x12\x13\n" +
	"\x05to_ts\x18\x05 \x01(\x12R\x04toTs\x12!\n" +
	"\forder_ascend\x18\x06 \x01(\bR\vorderAscend\x12\x14\n" +
	"\x05limit\x18\a \x01(\x12R\x05limit\x12\x1b\n" +
	"\tpage_size\x18\b \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\t \x01(\tR\tpageToken\"Y\n" +
	"\x0fIndexRangeReply\x12\x1e\n" +
	"\n" +
	"timestamps\x18\x01 \x03(\x04R\n" +
	"timestamps\x12&\n" +
	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xdf\x01\n" +
	"\x0fHistoryRangeReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\x17\n" +
	"\afrom_ts\x18\x04 \x01(\x12R\x06fromTs\x12\x13\n" +
	"\x05to_ts\x18\x05 \x01(\x12R\x04toTs\x12!\n" +
	"\forder_ascend\x18\x06 \x01(\bR\vorderAscend\x12\x14\n" +
	"\x05limit\x18\a \x01(\x12R\x05limit\x12\x1b\n" +
	"\tpage_size\x18\b \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\t \x01(\tR\tpageToken\"\x88\x02\n" +
	"\fRangeAsOfReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\x19\n" +
	"\bfrom_key\x18\x03 \x01(\fR\afromKey\x12\x15\n" +
	"\x06to_key\x18\x04 \x01(\fR\x05toKey\x12\x0e\n" +
	"\x02ts\x18\x05 \x01(\x04R\x02ts\x12\x16\n" +
	"\x06latest\x18\x06 \x01(\bR\x06latest\x12!\n" +
	"\forder_ascend\x18\a \x01(\bR\vorderAscend\x12\x14\n" +
	"\x05limit\x18\b \x01(\x12R\x05limit\x12\x1b\n" +
	"\tpage_size\x18\t \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\n" +
	" \x01(\tR\tpageToken\"[\n" +
	"\x05Pairs\x12\x12\n" +
	"\x04keys\x18\x01 \x03(\fR\x04keys\x12\x16\n" +
	"\x06values\x18\x02 \x03(\fR\x06values\x12&\n" +
	"\x0fnext_page_token\x18\x03 \x01(\tR\rnextPageToken\"B\n" +
	"\x0fPairsPagination\x12\x19\n" +
	"\bnext_key\x18\x01 \x01(\fR\anextKey\x12\x14\n" +
	"\x05limit\x18\x02 \x01(\x12R\x05limit\"O\n" +
	"\x0fIndexPagination\x12&\n" +
	"\x0fnext_time_stamp\x18\x01 \x01(\x12R\rnextTimeStamp\x12\x14\n" +
	"\x05limit\x18\x02 \x01(\x12R\x05limit\"Q\n" +
	"\fHasPrefixReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table\x12\x16\n" +
	"\x06prefix\x18\x03 \x01(\fR\x06prefix\"i\n" +
	"\x0eHasPrefixReply\x12\x1b\n" +
	"\tfirst_key\x18\x01 \x01(\fR\bfirstKey\x12\x1b\n" +
	"\tfirst_val\x18\x02 \x01(\fR\bfirstVal\x12\x1d\n" +
	"\n" +
	"has_prefix\x18\x03 \x01(\bR\thasPrefix\"B\n" +
	"\x13HistoryStartFromReq\x12\x16\n" +
	"\x06domain\x18\x01 \x01(\rR\x06domain\x12\x13\n" +
	"\x05tx_id\x18\x02 \x01(\x04R\x04txId\"6\n" +
	"\x15HistoryStartFromReply\x12\x1d\n" +
	"\n" +
	"start_from\x18\x01 \x01(\x04R\tstartFrom\"F\n" +
	"\x17CurrentDomainVersionReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\x12\x16\n" +
	"\x06domain\x18\x02 \x01(\rR\x06domain\"G\n" +
	"\x19CurrentDomainVersionReply\x12\x14\n" +
	"\x05major\x18\x01 \x01(\x04R\x05major\x12\x14\n" +
	"\x05minor\x18\x02 \x01(\x04R\x05minor\"\"\n" +
	"\vStepSizeReq\x12\x13\n" +
	"\x05tx_id\x18\x01 \x01(\x04R\x04txId\"#\n" +
	"\rStepSizeReply\x12\x12\n" +
	"\x04step\x18\x01 \x01(\x04R\x04step*\xfb\x01\n" +
	"\x02Op\x12\t\n" +
	"\x05FIRST\x10\x00\x12\r\n" +
	"\tFIRST_DUP\x10\x01\x12\b\n" +
	"\x04SEEK\x10\x02\x12\r\n" +
	"\tSEEK_BOTH\x10\x03\x12\v\n" +
	"\aCURRENT\x10\x04\x12\b\n" +
	"\x04LAST\x10\x06\x12\f\n" +
	"\bLAST_DUP\x10\a\x12\b\n" +
	"\x04NEXT\x10\b\x12\f\n" +
	"\bNEXT_DUP\x10\t\x12\x0f\n" +
	"\vNEXT_NO_DUP\x10\v\x12\b\n" +
	"\x04PREV\x10\f\x12\f\n" +
	"\bPREV_DUP\x10\r\x12\x0f\n" +
	"\vPREV_NO_DUP\x10\x0e\x12\x0e\n" +
	"\n" +
	"SEEK_EXACT\x10\x0f\x12\x13\n" +
	"\x0fSEEK_BOTH_EXACT\x10\x10\x12\b\n" +
	"\x04OPEN\x10\x1e\x12\t\n" +
	"\x05CLOSE\x10\x1f\x12\x11\n" +
	"\rOPEN_DUP_SORT\x10 *H\n" +
	"\x06Action\x12\v\n" +
	"\aSTORAGE\x10\x00\x12\n" +
	"\n" +
	"\x06UPSERT\x10\x01\x12\b\n" +
	"\x04CODE\x10\x02\x12\x0f\n" +
	"\vUPSERT_CODE\x10\x03\x12\n" +
	"\n" +
	"\x06REMOVE\x10\x04*$\n" +
	"\tDirection\x12\v\n" +
	"\aFORWARD\x10\x00\x12\n" +
	"\n" +
	"\x06UNWIND\x10\x012\x90\a\n" +
	"\x02KV\x126\n" +
	"\aVersion\x12\x16.google.protobuf.Empty\x1a\x13.types.VersionReply\x12&\n" +
	"\x02Tx\x12\x0e.remote.Cursor\x1a\f.remote.Pair(\x010\x01\x12F\n" +
	"\fStateChanges\x12\x1a.remote.StateChangeRequest\x1a\x18.remote.StateChangeBatch0\x01\x12=\n" +
	"\tSnapshots\x12\x18.remote.SnapshotsRequest\x1a\x16.remote.SnapshotsReply\x12(\n" +
	"\x05Range\x12\x10.remote.RangeReq\x1a\r.remote.Pairs\x126\n" +
	"\bSequence\x12\x13.remote.SequenceReq\x1a\x15.remote.SequenceReply\x129\n" +
	"\tGetLatest\x12\x14.remote.GetLatestReq\x1a\x16.remote.GetLatestReply\x12?\n" +
	"\vHistorySeek\x12\x16.remote.HistorySeekReq\x1a\x18.remote.HistorySeekReply\x12<\n" +
	"\n" +
	"IndexRange\x12\x15.remote.IndexRangeReq\x1a\x17.remote.IndexRangeReply\x126\n" +
	"\fHistoryRange\x12\x17.remote.HistoryRangeReq\x1a\r.remote.Pairs\x120\n" +
	"\tRangeAsOf\x12\x14.remote.RangeAsOfReq\x1a\r.remote.Pairs\x129\n" +
	"\tHasPrefix\x12\x14.remote.HasPrefixReq\x1a\x16.remote.HasPrefixReply\x12N\n" +
	"\x10HistoryStartFrom\x12\x1b.remote.HistoryStartFromReq\x1a\x1d.remote.HistoryStartFromReply\x12Z\n" +
	"\x14CurrentDomainVersion\x12\x1f.remote.CurrentDomainVersionReq\x1a!.remote.CurrentDomainVersionReply\x126\n" +
	"\bStepSize\x12\x13.remote.StepSizeReq\x1a\x15.remote.StepSizeReplyB\x16Z\x14./remote;remoteprotob\x06proto3"

var (
	file_remote_kv_proto_rawDescOnce sync.Once
	file_remote_kv_proto_rawDescData []byte
)

func file_remote_kv_proto_rawDescGZIP() []byte {
	file_remote_kv_proto_rawDescOnce.Do(func() {
		file_remote_kv_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_remote_kv_proto_rawDesc), len(file_remote_kv_proto_rawDesc)))
	})
	return file_remote_kv_proto_rawDescData
}

var file_remote_kv_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_remote_kv_proto_msgTypes = make([]protoimpl.MessageInfo, 31)
var file_remote_kv_proto_goTypes = []any{
	(Op)(0),                           // 0: remote.Op
	(Action)(0),                       // 1: remote.Action
	(Direction)(0),                    // 2: remote.Direction
	(*Cursor)(nil),                    // 3: remote.Cursor
	(*Pair)(nil),                      // 4: remote.Pair
	(*StorageChange)(nil),             // 5: remote.StorageChange
	(*AccountChange)(nil),             // 6: remote.AccountChange
	(*StateChangeBatch)(nil),          // 7: remote.StateChangeBatch
	(*StateChange)(nil),               // 8: remote.StateChange
	(*StateChangeRequest)(nil),        // 9: remote.StateChangeRequest
	(*SnapshotsRequest)(nil),          // 10: remote.SnapshotsRequest
	(*SnapshotsReply)(nil),            // 11: remote.SnapshotsReply
	(*RangeReq)(nil),                  // 12: remote.RangeReq
	(*SequenceReq)(nil),               // 13: remote.SequenceReq
	(*SequenceReply)(nil),             // 14: remote.SequenceReply
	(*GetLatestReq)(nil),              // 15: remote.GetLatestReq
	(*GetLatestReply)(nil),            // 16: remote.GetLatestReply
	(*HistorySeekReq)(nil),            // 17: remote.HistorySeekReq
	(*HistorySeekReply)(nil),          // 18: remote.HistorySeekReply
	(*IndexRangeReq)(nil),             // 19: remote.IndexRangeReq
	(*IndexRangeReply)(nil),           // 20: remote.IndexRangeReply
	(*HistoryRangeReq)(nil),           // 21: remote.HistoryRangeReq
	(*RangeAsOfReq)(nil),              // 22: remote.RangeAsOfReq
	(*Pairs)(nil),                     // 23: remote.Pairs
	(*PairsPagination)(nil),           // 24: remote.PairsPagination
	(*IndexPagination)(nil),           // 25: remote.IndexPagination
	(*HasPrefixReq)(nil),              // 26: remote.HasPrefixReq
	(*HasPrefixReply)(nil),            // 27: remote.HasPrefixReply
	(*HistoryStartFromReq)(nil),       // 28: remote.HistoryStartFromReq
	(*HistoryStartFromReply)(nil),     // 29: remote.HistoryStartFromReply
	(*CurrentDomainVersionReq)(nil),   // 30: remote.CurrentDomainVersionReq
	(*CurrentDomainVersionReply)(nil), // 31: remote.CurrentDomainVersionReply
	(*StepSizeReq)(nil),               // 32: remote.StepSizeReq
	(*StepSizeReply)(nil),             // 33: remote.StepSizeReply
	(*typesproto.H256)(nil),           // 34: types.H256
	(*typesproto.H160)(nil),           // 35: types.H160
	(*emptypb.Empty)(nil),             // 36: google.protobuf.Empty
	(*typesproto.VersionReply)(nil),   // 37: types.VersionReply
}
var file_remote_kv_proto_depIdxs = []int32{
	0,  // 0: remote.Cursor.op:type_name -> remote.Op
	34, // 1: remote.StorageChange.location:type_name -> types.H256
	35, // 2: remote.AccountChange.address:type_name -> types.H160
	1,  // 3: remote.AccountChange.action:type_name -> remote.Action
	5,  // 4: remote.AccountChange.storage_changes:type_name -> remote.StorageChange
	8,  // 5: remote.StateChangeBatch.change_batch:type_name -> remote.StateChange
	2,  // 6: remote.StateChange.direction:type_name -> remote.Direction
	34, // 7: remote.StateChange.block_hash:type_name -> types.H256
	6,  // 8: remote.StateChange.changes:type_name -> remote.AccountChange
	36, // 9: remote.KV.Version:input_type -> google.protobuf.Empty
	3,  // 10: remote.KV.Tx:input_type -> remote.Cursor
	9,  // 11: remote.KV.StateChanges:input_type -> remote.StateChangeRequest
	10, // 12: remote.KV.Snapshots:input_type -> remote.SnapshotsRequest
	12, // 13: remote.KV.Range:input_type -> remote.RangeReq
	13, // 14: remote.KV.Sequence:input_type -> remote.SequenceReq
	15, // 15: remote.KV.GetLatest:input_type -> remote.GetLatestReq
	17, // 16: remote.KV.HistorySeek:input_type -> remote.HistorySeekReq
	19, // 17: remote.KV.IndexRange:input_type -> remote.IndexRangeReq
	21, // 18: remote.KV.HistoryRange:input_type -> remote.HistoryRangeReq
	22, // 19: remote.KV.RangeAsOf:input_type -> remote.RangeAsOfReq
	26, // 20: remote.KV.HasPrefix:input_type -> remote.HasPrefixReq
	28, // 21: remote.KV.HistoryStartFrom:input_type -> remote.HistoryStartFromReq
	30, // 22: remote.KV.CurrentDomainVersion:input_type -> remote.CurrentDomainVersionReq
	32, // 23: remote.KV.StepSize:input_type -> remote.StepSizeReq
	37, // 24: remote.KV.Version:output_type -> types.VersionReply
	4,  // 25: remote.KV.Tx:output_type -> remote.Pair
	7,  // 26: remote.KV.StateChanges:output_type -> remote.StateChangeBatch
	11, // 27: remote.KV.Snapshots:output_type -> remote.SnapshotsReply
	23, // 28: remote.KV.Range:output_type -> remote.Pairs
	14, // 29: remote.KV.Sequence:output_type -> remote.SequenceReply
	16, // 30: remote.KV.GetLatest:output_type -> remote.GetLatestReply
	18, // 31: remote.KV.HistorySeek:output_type -> remote.HistorySeekReply
	20, // 32: remote.KV.IndexRange:output_type -> remote.IndexRangeReply
	23, // 33: remote.KV.HistoryRange:output_type -> remote.Pairs
	23, // 34: remote.KV.RangeAsOf:output_type -> remote.Pairs
	27, // 35: remote.KV.HasPrefix:output_type -> remote.HasPrefixReply
	29, // 36: remote.KV.HistoryStartFrom:output_type -> remote.HistoryStartFromReply
	31, // 37: remote.KV.CurrentDomainVersion:output_type -> remote.CurrentDomainVersionReply
	33, // 38: remote.KV.StepSize:output_type -> remote.StepSizeReply
	24, // [24:39] is the sub-list for method output_type
	9,  // [9:24] is the sub-list for method input_type
	9,  // [9:9] is the sub-list for extension type_name
	9,  // [9:9] is the sub-list for extension extendee
	0,  // [0:9] is the sub-list for field type_name
}

func init() { file_remote_kv_proto_init() }
func file_remote_kv_proto_init() {
	if File_remote_kv_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_remote_kv_proto_rawDesc), len(file_remote_kv_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   31,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_remote_kv_proto_goTypes,
		DependencyIndexes: file_remote_kv_proto_depIdxs,
		EnumInfos:         file_remote_kv_proto_enumTypes,
		MessageInfos:      file_remote_kv_proto_msgTypes,
	}.Build()
	File_remote_kv_proto = out.File
	file_remote_kv_proto_goTypes = nil
	file_remote_kv_proto_depIdxs = nil
}
