// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.1
// source: session_coordinator.proto

package coordinator

import (
	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)
)

// CreateSessionRequest creates a new MPC session
type CreateSessionRequest struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	SessionType      string                 `protobuf:"bytes,1,opt,name=session_type,json=sessionType,proto3" json:"session_type,omitempty"`                   // "keygen", "sign", or "co_managed_keygen"
	ThresholdN       int32                  `protobuf:"varint,2,opt,name=threshold_n,json=thresholdN,proto3" json:"threshold_n,omitempty"`                     // Total number of parties
	ThresholdT       int32                  `protobuf:"varint,3,opt,name=threshold_t,json=thresholdT,proto3" json:"threshold_t,omitempty"`                     // Minimum required parties
	Participants     []*ParticipantInfo     `protobuf:"bytes,4,rep,name=participants,proto3" json:"participants,omitempty"`                                    // Optional: if empty, coordinator selects automatically
	MessageHash      []byte                 `protobuf:"bytes,5,opt,name=message_hash,json=messageHash,proto3" json:"message_hash,omitempty"`                   // Required for sign sessions
	ExpiresInSeconds int64                  `protobuf:"varint,6,opt,name=expires_in_seconds,json=expiresInSeconds,proto3" json:"expires_in_seconds,omitempty"` // Session expiration time
	PartyComposition *PartyComposition      `protobuf:"bytes,7,opt,name=party_composition,json=partyComposition,proto3" json:"party_composition,omitempty"`    // Optional: party composition requirements for auto-selection
	// For sign sessions with delegate party: user must provide their encrypted share
	DelegateUserShare *DelegateUserShare `protobuf:"bytes,8,opt,name=delegate_user_share,json=delegateUserShare,proto3" json:"delegate_user_share,omitempty"`
	// For sign sessions: which keygen session's shares to use
	KeygenSessionId string `protobuf:"bytes,9,opt,name=keygen_session_id,json=keygenSessionId,proto3" json:"keygen_session_id,omitempty"`
	// For co_managed_keygen sessions: wallet name and invite code
	WalletName    string `protobuf:"bytes,10,opt,name=wallet_name,json=walletName,proto3" json:"wallet_name,omitempty"` // Wallet name (for co_managed_keygen)
	InviteCode    string `protobuf:"bytes,11,opt,name=invite_code,json=inviteCode,proto3" json:"invite_code,omitempty"` // Invite code for participants to join (for co_managed_keygen)
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateSessionRequest) ProtoMessage() {}

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

func (x *CreateSessionRequest) GetSessionType() string {
	if x != nil {
		return x.SessionType
	}
	return ""
}

func (x *CreateSessionRequest) GetThresholdN() int32 {
	if x != nil {
		return x.ThresholdN
	}
	return 0
}

func (x *CreateSessionRequest) GetThresholdT() int32 {
	if x != nil {
		return x.ThresholdT
	}
	return 0
}

func (x *CreateSessionRequest) GetParticipants() []*ParticipantInfo {
	if x != nil {
		return x.Participants
	}
	return nil
}

func (x *CreateSessionRequest) GetMessageHash() []byte {
	if x != nil {
		return x.MessageHash
	}
	return nil
}

func (x *CreateSessionRequest) GetExpiresInSeconds() int64 {
	if x != nil {
		return x.ExpiresInSeconds
	}
	return 0
}

func (x *CreateSessionRequest) GetPartyComposition() *PartyComposition {
	if x != nil {
		return x.PartyComposition
	}
	return nil
}

func (x *CreateSessionRequest) GetDelegateUserShare() *DelegateUserShare {
	if x != nil {
		return x.DelegateUserShare
	}
	return nil
}

func (x *CreateSessionRequest) GetKeygenSessionId() string {
	if x != nil {
		return x.KeygenSessionId
	}
	return ""
}

func (x *CreateSessionRequest) GetWalletName() string {
	if x != nil {
		return x.WalletName
	}
	return ""
}

func (x *CreateSessionRequest) GetInviteCode() string {
	if x != nil {
		return x.InviteCode
	}
	return ""
}

// DelegateUserShare contains user's share for delegate party to use in signing
type DelegateUserShare struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	DelegatePartyId string                 `protobuf:"bytes,1,opt,name=delegate_party_id,json=delegatePartyId,proto3" json:"delegate_party_id,omitempty"` // The delegate party that will use this share
	EncryptedShare  []byte                 `protobuf:"bytes,2,opt,name=encrypted_share,json=encryptedShare,proto3" json:"encrypted_share,omitempty"`      // User's encrypted share (same as received from keygen)
	PartyIndex      int32                  `protobuf:"varint,3,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"`                 // Party index for this share
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*DelegateUserShare) ProtoMessage() {}

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

func (x *DelegateUserShare) GetDelegatePartyId() string {
	if x != nil {
		return x.DelegatePartyId
	}
	return ""
}

func (x *DelegateUserShare) GetEncryptedShare() []byte {
	if x != nil {
		return x.EncryptedShare
	}
	return nil
}

func (x *DelegateUserShare) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

// PartyComposition specifies requirements for automatic party selection
type PartyComposition struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	PersistentCount int32                  `protobuf:"varint,1,opt,name=persistent_count,json=persistentCount,proto3" json:"persistent_count,omitempty"` // Number of persistent parties (store shares in DB)
	DelegateCount   int32                  `protobuf:"varint,2,opt,name=delegate_count,json=delegateCount,proto3" json:"delegate_count,omitempty"`       // Number of delegate parties (return shares to user)
	TemporaryCount  int32                  `protobuf:"varint,3,opt,name=temporary_count,json=temporaryCount,proto3" json:"temporary_count,omitempty"`    // Number of temporary parties
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*PartyComposition) ProtoMessage() {}

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

func (x *PartyComposition) GetPersistentCount() int32 {
	if x != nil {
		return x.PersistentCount
	}
	return 0
}

func (x *PartyComposition) GetDelegateCount() int32 {
	if x != nil {
		return x.DelegateCount
	}
	return 0
}

func (x *PartyComposition) GetTemporaryCount() int32 {
	if x != nil {
		return x.TemporaryCount
	}
	return 0
}

// ParticipantInfo contains information about a participant
type ParticipantInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PartyId       string                 `protobuf:"bytes,1,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	DeviceInfo    *DeviceInfo            `protobuf:"bytes,2,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	PartyIndex    int32                  `protobuf:"varint,3,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"` // Original party index from keygen (required for signing)
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ParticipantInfo) ProtoMessage() {}

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

func (x *ParticipantInfo) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *ParticipantInfo) GetDeviceInfo() *DeviceInfo {
	if x != nil {
		return x.DeviceInfo
	}
	return nil
}

func (x *ParticipantInfo) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

// DeviceInfo contains device information
type DeviceInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	DeviceType    string                 `protobuf:"bytes,1,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"` // android, ios, pc, server, recovery
	DeviceId      string                 `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	Platform      string                 `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"`
	AppVersion    string                 `protobuf:"bytes,4,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeviceInfo) ProtoMessage() {}

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

func (x *DeviceInfo) GetDeviceType() string {
	if x != nil {
		return x.DeviceType
	}
	return ""
}

func (x *DeviceInfo) GetDeviceId() string {
	if x != nil {
		return x.DeviceId
	}
	return ""
}

func (x *DeviceInfo) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *DeviceInfo) GetAppVersion() string {
	if x != nil {
		return x.AppVersion
	}
	return ""
}

// CreateSessionResponse contains the created session info
type CreateSessionResponse struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	SessionId       string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	JoinTokens      map[string]string      `protobuf:"bytes,2,rep,name=join_tokens,json=joinTokens,proto3" json:"join_tokens,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // party_id -> join_token
	ExpiresAt       int64                  `protobuf:"varint,3,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"`                                                                             // Unix timestamp milliseconds
	SelectedParties []string               `protobuf:"bytes,4,rep,name=selected_parties,json=selectedParties,proto3" json:"selected_parties,omitempty"`                                                            // List of selected party IDs
	DelegatePartyId string                 `protobuf:"bytes,5,opt,name=delegate_party_id,json=delegatePartyId,proto3" json:"delegate_party_id,omitempty"`                                                          // The delegate party ID (if any)
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*CreateSessionResponse) ProtoMessage() {}

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

func (x *CreateSessionResponse) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *CreateSessionResponse) GetJoinTokens() map[string]string {
	if x != nil {
		return x.JoinTokens
	}
	return nil
}

func (x *CreateSessionResponse) GetExpiresAt() int64 {
	if x != nil {
		return x.ExpiresAt
	}
	return 0
}

func (x *CreateSessionResponse) GetSelectedParties() []string {
	if x != nil {
		return x.SelectedParties
	}
	return nil
}

func (x *CreateSessionResponse) GetDelegatePartyId() string {
	if x != nil {
		return x.DelegatePartyId
	}
	return ""
}

// JoinSessionRequest allows a participant to join a session
type JoinSessionRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	PartyId       string                 `protobuf:"bytes,2,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	JoinToken     string                 `protobuf:"bytes,3,opt,name=join_token,json=joinToken,proto3" json:"join_token,omitempty"`
	DeviceInfo    *DeviceInfo            `protobuf:"bytes,4,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JoinSessionRequest) ProtoMessage() {}

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

func (x *JoinSessionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *JoinSessionRequest) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *JoinSessionRequest) GetJoinToken() string {
	if x != nil {
		return x.JoinToken
	}
	return ""
}

func (x *JoinSessionRequest) GetDeviceInfo() *DeviceInfo {
	if x != nil {
		return x.DeviceInfo
	}
	return nil
}

// JoinSessionResponse contains session information for the joining party
type JoinSessionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	SessionInfo   *SessionInfo           `protobuf:"bytes,2,opt,name=session_info,json=sessionInfo,proto3" json:"session_info,omitempty"`
	OtherParties  []*PartyInfo           `protobuf:"bytes,3,rep,name=other_parties,json=otherParties,proto3" json:"other_parties,omitempty"`
	PartyIndex    int32                  `protobuf:"varint,4,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"` // This party's assigned index
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JoinSessionResponse) ProtoMessage() {}

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

func (x *JoinSessionResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *JoinSessionResponse) GetSessionInfo() *SessionInfo {
	if x != nil {
		return x.SessionInfo
	}
	return nil
}

func (x *JoinSessionResponse) GetOtherParties() []*PartyInfo {
	if x != nil {
		return x.OtherParties
	}
	return nil
}

func (x *JoinSessionResponse) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

// SessionInfo contains session information
type SessionInfo struct {
	state       protoimpl.MessageState `protogen:"open.v1"`
	SessionId   string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	SessionType string                 `protobuf:"bytes,2,opt,name=session_type,json=sessionType,proto3" json:"session_type,omitempty"`
	ThresholdN  int32                  `protobuf:"varint,3,opt,name=threshold_n,json=thresholdN,proto3" json:"threshold_n,omitempty"`
	ThresholdT  int32                  `protobuf:"varint,4,opt,name=threshold_t,json=thresholdT,proto3" json:"threshold_t,omitempty"`
	MessageHash []byte                 `protobuf:"bytes,5,opt,name=message_hash,json=messageHash,proto3" json:"message_hash,omitempty"`
	Status      string                 `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
	// For sign sessions: which keygen session's shares to use
	KeygenSessionId string `protobuf:"bytes,7,opt,name=keygen_session_id,json=keygenSessionId,proto3" json:"keygen_session_id,omitempty"`
	// For co_managed_keygen sessions
	WalletName    string `protobuf:"bytes,8,opt,name=wallet_name,json=walletName,proto3" json:"wallet_name,omitempty"` // Wallet name (for co_managed_keygen)
	InviteCode    string `protobuf:"bytes,9,opt,name=invite_code,json=inviteCode,proto3" json:"invite_code,omitempty"` // Invite code (for co_managed_keygen)
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SessionInfo) ProtoMessage() {}

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

func (x *SessionInfo) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SessionInfo) GetSessionType() string {
	if x != nil {
		return x.SessionType
	}
	return ""
}

func (x *SessionInfo) GetThresholdN() int32 {
	if x != nil {
		return x.ThresholdN
	}
	return 0
}

func (x *SessionInfo) GetThresholdT() int32 {
	if x != nil {
		return x.ThresholdT
	}
	return 0
}

func (x *SessionInfo) GetMessageHash() []byte {
	if x != nil {
		return x.MessageHash
	}
	return nil
}

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

func (x *SessionInfo) GetKeygenSessionId() string {
	if x != nil {
		return x.KeygenSessionId
	}
	return ""
}

func (x *SessionInfo) GetWalletName() string {
	if x != nil {
		return x.WalletName
	}
	return ""
}

func (x *SessionInfo) GetInviteCode() string {
	if x != nil {
		return x.InviteCode
	}
	return ""
}

// PartyInfo contains party information
type PartyInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PartyId       string                 `protobuf:"bytes,1,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	PartyIndex    int32                  `protobuf:"varint,2,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"`
	DeviceInfo    *DeviceInfo            `protobuf:"bytes,3,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*PartyInfo) ProtoMessage() {}

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

func (x *PartyInfo) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *PartyInfo) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

func (x *PartyInfo) GetDeviceInfo() *DeviceInfo {
	if x != nil {
		return x.DeviceInfo
	}
	return nil
}

// GetSessionStatusRequest queries session status
type GetSessionStatusRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetSessionStatusRequest) ProtoMessage() {}

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

func (x *GetSessionStatusRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

// GetSessionStatusResponse contains session status
type GetSessionStatusResponse struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Status           string                 `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	CompletedParties int32                  `protobuf:"varint,2,opt,name=completed_parties,json=completedParties,proto3" json:"completed_parties,omitempty"`
	TotalParties     int32                  `protobuf:"varint,3,opt,name=total_parties,json=totalParties,proto3" json:"total_parties,omitempty"`
	SessionType      string                 `protobuf:"bytes,4,opt,name=session_type,json=sessionType,proto3" json:"session_type,omitempty"` // "keygen" or "sign"
	PublicKey        []byte                 `protobuf:"bytes,5,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`       // For completed keygen
	Signature        []byte                 `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`                        // For completed sign
	// has_delegate indicates whether this keygen session has a delegate party
	// Only meaningful for keygen sessions. Always false for sign sessions.
	HasDelegate bool `protobuf:"varint,7,opt,name=has_delegate,json=hasDelegate,proto3" json:"has_delegate,omitempty"`
	// Delegate share info (returned when keygen session completed and delegate party submitted share)
	// Only populated if session_type="keygen" AND has_delegate=true AND session is completed
	DelegateShare *DelegateShareInfo `protobuf:"bytes,8,opt,name=delegate_share,json=delegateShare,proto3" json:"delegate_share,omitempty"`
	// participants contains detailed participant information including party_index
	// Used by service-party-app for co_managed_keygen sessions
	Participants []*ParticipantStatus `protobuf:"bytes,9,rep,name=participants,proto3" json:"participants,omitempty"`
	// threshold_n and threshold_t - actual threshold values from session config
	// Used for co_managed_keygen sessions where total_parties may differ from threshold_n during joining
	ThresholdN    int32 `protobuf:"varint,10,opt,name=threshold_n,json=thresholdN,proto3" json:"threshold_n,omitempty"` // Total number of parties required (e.g., 3 in 2-of-3)
	ThresholdT    int32 `protobuf:"varint,11,opt,name=threshold_t,json=thresholdT,proto3" json:"threshold_t,omitempty"` // Minimum parties needed to sign (e.g., 2 in 2-of-3)
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetSessionStatusResponse) ProtoMessage() {}

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

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

func (x *GetSessionStatusResponse) GetCompletedParties() int32 {
	if x != nil {
		return x.CompletedParties
	}
	return 0
}

func (x *GetSessionStatusResponse) GetTotalParties() int32 {
	if x != nil {
		return x.TotalParties
	}
	return 0
}

func (x *GetSessionStatusResponse) GetSessionType() string {
	if x != nil {
		return x.SessionType
	}
	return ""
}

func (x *GetSessionStatusResponse) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *GetSessionStatusResponse) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *GetSessionStatusResponse) GetHasDelegate() bool {
	if x != nil {
		return x.HasDelegate
	}
	return false
}

func (x *GetSessionStatusResponse) GetDelegateShare() *DelegateShareInfo {
	if x != nil {
		return x.DelegateShare
	}
	return nil
}

func (x *GetSessionStatusResponse) GetParticipants() []*ParticipantStatus {
	if x != nil {
		return x.Participants
	}
	return nil
}

func (x *GetSessionStatusResponse) GetThresholdN() int32 {
	if x != nil {
		return x.ThresholdN
	}
	return 0
}

func (x *GetSessionStatusResponse) GetThresholdT() int32 {
	if x != nil {
		return x.ThresholdT
	}
	return 0
}

// ParticipantStatus contains participant status information
type ParticipantStatus struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PartyId       string                 `protobuf:"bytes,1,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	PartyIndex    int32                  `protobuf:"varint,2,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"`
	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` // pending, joined, ready, completed
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ParticipantStatus) ProtoMessage() {}

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

func (x *ParticipantStatus) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *ParticipantStatus) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

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

// DelegateShareInfo contains the delegate party's share for user
type DelegateShareInfo struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	EncryptedShare []byte                 `protobuf:"bytes,1,opt,name=encrypted_share,json=encryptedShare,proto3" json:"encrypted_share,omitempty"` // Encrypted share for user
	PartyIndex     int32                  `protobuf:"varint,2,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"`            // Party's index in the session
	PartyId        string                 `protobuf:"bytes,3,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`                      // Delegate party ID
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*DelegateShareInfo) ProtoMessage() {}

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

func (x *DelegateShareInfo) GetEncryptedShare() []byte {
	if x != nil {
		return x.EncryptedShare
	}
	return nil
}

func (x *DelegateShareInfo) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

func (x *DelegateShareInfo) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

// ReportCompletionRequest reports that a participant has completed
type ReportCompletionRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	PartyId       string                 `protobuf:"bytes,2,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	PublicKey     []byte                 `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` // For keygen completion
	Signature     []byte                 `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`                  // For sign completion
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReportCompletionRequest) ProtoMessage() {}

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

func (x *ReportCompletionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *ReportCompletionRequest) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *ReportCompletionRequest) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *ReportCompletionRequest) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

// ReportCompletionResponse contains the result of completion report
type ReportCompletionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	AllCompleted  bool                   `protobuf:"varint,2,opt,name=all_completed,json=allCompleted,proto3" json:"all_completed,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReportCompletionResponse) ProtoMessage() {}

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

func (x *ReportCompletionResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *ReportCompletionResponse) GetAllCompleted() bool {
	if x != nil {
		return x.AllCompleted
	}
	return false
}

// CloseSessionRequest closes a session
type CloseSessionRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloseSessionRequest) ProtoMessage() {}

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

func (x *CloseSessionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

// CloseSessionResponse contains the result of session closure
type CloseSessionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CloseSessionResponse) ProtoMessage() {}

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

func (x *CloseSessionResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

// MarkPartyReadyRequest marks a party as ready to start the protocol
type MarkPartyReadyRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	PartyId       string                 `protobuf:"bytes,2,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*MarkPartyReadyRequest) ProtoMessage() {}

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

func (x *MarkPartyReadyRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *MarkPartyReadyRequest) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

// MarkPartyReadyResponse contains the result of marking party ready
type MarkPartyReadyResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	AllReady      bool                   `protobuf:"varint,2,opt,name=all_ready,json=allReady,proto3" json:"all_ready,omitempty"` // True if all parties are ready
	ReadyCount    int32                  `protobuf:"varint,3,opt,name=ready_count,json=readyCount,proto3" json:"ready_count,omitempty"`
	TotalParties  int32                  `protobuf:"varint,4,opt,name=total_parties,json=totalParties,proto3" json:"total_parties,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*MarkPartyReadyResponse) ProtoMessage() {}

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

func (x *MarkPartyReadyResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *MarkPartyReadyResponse) GetAllReady() bool {
	if x != nil {
		return x.AllReady
	}
	return false
}

func (x *MarkPartyReadyResponse) GetReadyCount() int32 {
	if x != nil {
		return x.ReadyCount
	}
	return 0
}

func (x *MarkPartyReadyResponse) GetTotalParties() int32 {
	if x != nil {
		return x.TotalParties
	}
	return 0
}

// StartSessionRequest starts the MPC protocol execution
type StartSessionRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SessionId     string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StartSessionRequest) ProtoMessage() {}

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

func (x *StartSessionRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

// StartSessionResponse contains the result of starting the session
type StartSessionResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	Status        string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // New session status
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StartSessionResponse) ProtoMessage() {}

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

func (x *StartSessionResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

// SubmitDelegateShareRequest submits user's share from delegate party
type SubmitDelegateShareRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	SessionId      string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
	PartyId        string                 `protobuf:"bytes,2,opt,name=party_id,json=partyId,proto3" json:"party_id,omitempty"`
	EncryptedShare []byte                 `protobuf:"bytes,3,opt,name=encrypted_share,json=encryptedShare,proto3" json:"encrypted_share,omitempty"` // Encrypted share for user
	PublicKey      []byte                 `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`                // Public key from keygen
	PartyIndex     int32                  `protobuf:"varint,5,opt,name=party_index,json=partyIndex,proto3" json:"party_index,omitempty"`            // Party's index in the session
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*SubmitDelegateShareRequest) ProtoMessage() {}

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

func (x *SubmitDelegateShareRequest) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SubmitDelegateShareRequest) GetPartyId() string {
	if x != nil {
		return x.PartyId
	}
	return ""
}

func (x *SubmitDelegateShareRequest) GetEncryptedShare() []byte {
	if x != nil {
		return x.EncryptedShare
	}
	return nil
}

func (x *SubmitDelegateShareRequest) GetPublicKey() []byte {
	if x != nil {
		return x.PublicKey
	}
	return nil
}

func (x *SubmitDelegateShareRequest) GetPartyIndex() int32 {
	if x != nil {
		return x.PartyIndex
	}
	return 0
}

// SubmitDelegateShareResponse contains result of share submission
type SubmitDelegateShareResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Success       bool                   `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SubmitDelegateShareResponse) ProtoMessage() {}

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

func (x *SubmitDelegateShareResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

var File_session_coordinator_proto protoreflect.FileDescriptor

const file_session_coordinator_proto_rawDesc = "" +
	"\n" +
	"\x19session_coordinator.proto\x12\x12mpc.coordinator.v1\"\xad\x04\n" +
	"\x14CreateSessionRequest\x12!\n" +
	"\fsession_type\x18\x01 \x01(\tR\vsessionType\x12\x1f\n" +
	"\vthreshold_n\x18\x02 \x01(\x05R\n" +
	"thresholdN\x12\x1f\n" +
	"\vthreshold_t\x18\x03 \x01(\x05R\n" +
	"thresholdT\x12G\n" +
	"\fparticipants\x18\x04 \x03(\v2#.mpc.coordinator.v1.ParticipantInfoR\fparticipants\x12!\n" +
	"\fmessage_hash\x18\x05 \x01(\fR\vmessageHash\x12,\n" +
	"\x12expires_in_seconds\x18\x06 \x01(\x03R\x10expiresInSeconds\x12Q\n" +
	"\x11party_composition\x18\a \x01(\v2$.mpc.coordinator.v1.PartyCompositionR\x10partyComposition\x12U\n" +
	"\x13delegate_user_share\x18\b \x01(\v2%.mpc.coordinator.v1.DelegateUserShareR\x11delegateUserShare\x12*\n" +
	"\x11keygen_session_id\x18\t \x01(\tR\x0fkeygenSessionId\x12\x1f\n" +
	"\vwallet_name\x18\n" +
	" \x01(\tR\n" +
	"walletName\x12\x1f\n" +
	"\vinvite_code\x18\v \x01(\tR\n" +
	"inviteCode\"\x89\x01\n" +
	"\x11DelegateUserShare\x12*\n" +
	"\x11delegate_party_id\x18\x01 \x01(\tR\x0fdelegatePartyId\x12'\n" +
	"\x0fencrypted_share\x18\x02 \x01(\fR\x0eencryptedShare\x12\x1f\n" +
	"\vparty_index\x18\x03 \x01(\x05R\n" +
	"partyIndex\"\x8d\x01\n" +
	"\x10PartyComposition\x12)\n" +
	"\x10persistent_count\x18\x01 \x01(\x05R\x0fpersistentCount\x12%\n" +
	"\x0edelegate_count\x18\x02 \x01(\x05R\rdelegateCount\x12'\n" +
	"\x0ftemporary_count\x18\x03 \x01(\x05R\x0etemporaryCount\"\x8e\x01\n" +
	"\x0fParticipantInfo\x12\x19\n" +
	"\bparty_id\x18\x01 \x01(\tR\apartyId\x12?\n" +
	"\vdevice_info\x18\x02 \x01(\v2\x1e.mpc.coordinator.v1.DeviceInfoR\n" +
	"deviceInfo\x12\x1f\n" +
	"\vparty_index\x18\x03 \x01(\x05R\n" +
	"partyIndex\"\x87\x01\n" +
	"\n" +
	"DeviceInfo\x12\x1f\n" +
	"\vdevice_type\x18\x01 \x01(\tR\n" +
	"deviceType\x12\x1b\n" +
	"\tdevice_id\x18\x02 \x01(\tR\bdeviceId\x12\x1a\n" +
	"\bplatform\x18\x03 \x01(\tR\bplatform\x12\x1f\n" +
	"\vapp_version\x18\x04 \x01(\tR\n" +
	"appVersion\"\xc7\x02\n" +
	"\x15CreateSessionResponse\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12Z\n" +
	"\vjoin_tokens\x18\x02 \x03(\v29.mpc.coordinator.v1.CreateSessionResponse.JoinTokensEntryR\n" +
	"joinTokens\x12\x1d\n" +
	"\n" +
	"expires_at\x18\x03 \x01(\x03R\texpiresAt\x12)\n" +
	"\x10selected_parties\x18\x04 \x03(\tR\x0fselectedParties\x12*\n" +
	"\x11delegate_party_id\x18\x05 \x01(\tR\x0fdelegatePartyId\x1a=\n" +
	"\x0fJoinTokensEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x01\n" +
	"\x12JoinSessionRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12\x19\n" +
	"\bparty_id\x18\x02 \x01(\tR\apartyId\x12\x1d\n" +
	"\n" +
	"join_token\x18\x03 \x01(\tR\tjoinToken\x12?\n" +
	"\vdevice_info\x18\x04 \x01(\v2\x1e.mpc.coordinator.v1.DeviceInfoR\n" +
	"deviceInfo\"\xd8\x01\n" +
	"\x13JoinSessionResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12B\n" +
	"\fsession_info\x18\x02 \x01(\v2\x1f.mpc.coordinator.v1.SessionInfoR\vsessionInfo\x12B\n" +
	"\rother_parties\x18\x03 \x03(\v2\x1d.mpc.coordinator.v1.PartyInfoR\fotherParties\x12\x1f\n" +
	"\vparty_index\x18\x04 \x01(\x05R\n" +
	"partyIndex\"\xba\x02\n" +
	"\vSessionInfo\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12!\n" +
	"\fsession_type\x18\x02 \x01(\tR\vsessionType\x12\x1f\n" +
	"\vthreshold_n\x18\x03 \x01(\x05R\n" +
	"thresholdN\x12\x1f\n" +
	"\vthreshold_t\x18\x04 \x01(\x05R\n" +
	"thresholdT\x12!\n" +
	"\fmessage_hash\x18\x05 \x01(\fR\vmessageHash\x12\x16\n" +
	"\x06status\x18\x06 \x01(\tR\x06status\x12*\n" +
	"\x11keygen_session_id\x18\a \x01(\tR\x0fkeygenSessionId\x12\x1f\n" +
	"\vwallet_name\x18\b \x01(\tR\n" +
	"walletName\x12\x1f\n" +
	"\vinvite_code\x18\t \x01(\tR\n" +
	"inviteCode\"\x88\x01\n" +
	"\tPartyInfo\x12\x19\n" +
	"\bparty_id\x18\x01 \x01(\tR\apartyId\x12\x1f\n" +
	"\vparty_index\x18\x02 \x01(\x05R\n" +
	"partyIndex\x12?\n" +
	"\vdevice_info\x18\x03 \x01(\v2\x1e.mpc.coordinator.v1.DeviceInfoR\n" +
	"deviceInfo\"8\n" +
	"\x17GetSessionStatusRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\"\xe2\x03\n" +
	"\x18GetSessionStatusResponse\x12\x16\n" +
	"\x06status\x18\x01 \x01(\tR\x06status\x12+\n" +
	"\x11completed_parties\x18\x02 \x01(\x05R\x10completedParties\x12#\n" +
	"\rtotal_parties\x18\x03 \x01(\x05R\ftotalParties\x12!\n" +
	"\fsession_type\x18\x04 \x01(\tR\vsessionType\x12\x1d\n" +
	"\n" +
	"public_key\x18\x05 \x01(\fR\tpublicKey\x12\x1c\n" +
	"\tsignature\x18\x06 \x01(\fR\tsignature\x12!\n" +
	"\fhas_delegate\x18\a \x01(\bR\vhasDelegate\x12L\n" +
	"\x0edelegate_share\x18\b \x01(\v2%.mpc.coordinator.v1.DelegateShareInfoR\rdelegateShare\x12I\n" +
	"\fparticipants\x18\t \x03(\v2%.mpc.coordinator.v1.ParticipantStatusR\fparticipants\x12\x1f\n" +
	"\vthreshold_n\x18\n" +
	" \x01(\x05R\n" +
	"thresholdN\x12\x1f\n" +
	"\vthreshold_t\x18\v \x01(\x05R\n" +
	"thresholdT\"g\n" +
	"\x11ParticipantStatus\x12\x19\n" +
	"\bparty_id\x18\x01 \x01(\tR\apartyId\x12\x1f\n" +
	"\vparty_index\x18\x02 \x01(\x05R\n" +
	"partyIndex\x12\x16\n" +
	"\x06status\x18\x03 \x01(\tR\x06status\"x\n" +
	"\x11DelegateShareInfo\x12'\n" +
	"\x0fencrypted_share\x18\x01 \x01(\fR\x0eencryptedShare\x12\x1f\n" +
	"\vparty_index\x18\x02 \x01(\x05R\n" +
	"partyIndex\x12\x19\n" +
	"\bparty_id\x18\x03 \x01(\tR\apartyId\"\x90\x01\n" +
	"\x17ReportCompletionRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12\x19\n" +
	"\bparty_id\x18\x02 \x01(\tR\apartyId\x12\x1d\n" +
	"\n" +
	"public_key\x18\x03 \x01(\fR\tpublicKey\x12\x1c\n" +
	"\tsignature\x18\x04 \x01(\fR\tsignature\"Y\n" +
	"\x18ReportCompletionResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" +
	"\rall_completed\x18\x02 \x01(\bR\fallCompleted\"4\n" +
	"\x13CloseSessionRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\"0\n" +
	"\x14CloseSessionResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\"Q\n" +
	"\x15MarkPartyReadyRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12\x19\n" +
	"\bparty_id\x18\x02 \x01(\tR\apartyId\"\x95\x01\n" +
	"\x16MarkPartyReadyResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x1b\n" +
	"\tall_ready\x18\x02 \x01(\bR\ballReady\x12\x1f\n" +
	"\vready_count\x18\x03 \x01(\x05R\n" +
	"readyCount\x12#\n" +
	"\rtotal_parties\x18\x04 \x01(\x05R\ftotalParties\"4\n" +
	"\x13StartSessionRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\"H\n" +
	"\x14StartSessionResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x16\n" +
	"\x06status\x18\x02 \x01(\tR\x06status\"\xbf\x01\n" +
	"\x1aSubmitDelegateShareRequest\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12\x19\n" +
	"\bparty_id\x18\x02 \x01(\tR\apartyId\x12'\n" +
	"\x0fencrypted_share\x18\x03 \x01(\fR\x0eencryptedShare\x12\x1d\n" +
	"\n" +
	"public_key\x18\x04 \x01(\fR\tpublicKey\x12\x1f\n" +
	"\vparty_index\x18\x05 \x01(\x05R\n" +
	"partyIndex\"7\n" +
	"\x1bSubmitDelegateShareResponse\x12\x18\n" +
	"\asuccess\x18\x01 \x01(\bR\asuccess2\xdf\x06\n" +
	"\x12SessionCoordinator\x12d\n" +
	"\rCreateSession\x12(.mpc.coordinator.v1.CreateSessionRequest\x1a).mpc.coordinator.v1.CreateSessionResponse\x12^\n" +
	"\vJoinSession\x12&.mpc.coordinator.v1.JoinSessionRequest\x1a'.mpc.coordinator.v1.JoinSessionResponse\x12m\n" +
	"\x10GetSessionStatus\x12+.mpc.coordinator.v1.GetSessionStatusRequest\x1a,.mpc.coordinator.v1.GetSessionStatusResponse\x12g\n" +
	"\x0eMarkPartyReady\x12).mpc.coordinator.v1.MarkPartyReadyRequest\x1a*.mpc.coordinator.v1.MarkPartyReadyResponse\x12a\n" +
	"\fStartSession\x12'.mpc.coordinator.v1.StartSessionRequest\x1a(.mpc.coordinator.v1.StartSessionResponse\x12m\n" +
	"\x10ReportCompletion\x12+.mpc.coordinator.v1.ReportCompletionRequest\x1a,.mpc.coordinator.v1.ReportCompletionResponse\x12a\n" +
	"\fCloseSession\x12'.mpc.coordinator.v1.CloseSessionRequest\x1a(.mpc.coordinator.v1.CloseSessionResponse\x12v\n" +
	"\x13SubmitDelegateShare\x12..mpc.coordinator.v1.SubmitDelegateShareRequest\x1a/.mpc.coordinator.v1.SubmitDelegateShareResponseBEZCgithub.com/rwadurian/mpc-system/api/grpc/coordinator/v1;coordinatorb\x06proto3"

var (
	file_session_coordinator_proto_rawDescOnce sync.Once
	file_session_coordinator_proto_rawDescData []byte
)

func file_session_coordinator_proto_rawDescGZIP() []byte {
	file_session_coordinator_proto_rawDescOnce.Do(func() {
		file_session_coordinator_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_session_coordinator_proto_rawDesc), len(file_session_coordinator_proto_rawDesc)))
	})
	return file_session_coordinator_proto_rawDescData
}

var file_session_coordinator_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_session_coordinator_proto_goTypes = []any{
	(*CreateSessionRequest)(nil),        // 0: mpc.coordinator.v1.CreateSessionRequest
	(*DelegateUserShare)(nil),           // 1: mpc.coordinator.v1.DelegateUserShare
	(*PartyComposition)(nil),            // 2: mpc.coordinator.v1.PartyComposition
	(*ParticipantInfo)(nil),             // 3: mpc.coordinator.v1.ParticipantInfo
	(*DeviceInfo)(nil),                  // 4: mpc.coordinator.v1.DeviceInfo
	(*CreateSessionResponse)(nil),       // 5: mpc.coordinator.v1.CreateSessionResponse
	(*JoinSessionRequest)(nil),          // 6: mpc.coordinator.v1.JoinSessionRequest
	(*JoinSessionResponse)(nil),         // 7: mpc.coordinator.v1.JoinSessionResponse
	(*SessionInfo)(nil),                 // 8: mpc.coordinator.v1.SessionInfo
	(*PartyInfo)(nil),                   // 9: mpc.coordinator.v1.PartyInfo
	(*GetSessionStatusRequest)(nil),     // 10: mpc.coordinator.v1.GetSessionStatusRequest
	(*GetSessionStatusResponse)(nil),    // 11: mpc.coordinator.v1.GetSessionStatusResponse
	(*ParticipantStatus)(nil),           // 12: mpc.coordinator.v1.ParticipantStatus
	(*DelegateShareInfo)(nil),           // 13: mpc.coordinator.v1.DelegateShareInfo
	(*ReportCompletionRequest)(nil),     // 14: mpc.coordinator.v1.ReportCompletionRequest
	(*ReportCompletionResponse)(nil),    // 15: mpc.coordinator.v1.ReportCompletionResponse
	(*CloseSessionRequest)(nil),         // 16: mpc.coordinator.v1.CloseSessionRequest
	(*CloseSessionResponse)(nil),        // 17: mpc.coordinator.v1.CloseSessionResponse
	(*MarkPartyReadyRequest)(nil),       // 18: mpc.coordinator.v1.MarkPartyReadyRequest
	(*MarkPartyReadyResponse)(nil),      // 19: mpc.coordinator.v1.MarkPartyReadyResponse
	(*StartSessionRequest)(nil),         // 20: mpc.coordinator.v1.StartSessionRequest
	(*StartSessionResponse)(nil),        // 21: mpc.coordinator.v1.StartSessionResponse
	(*SubmitDelegateShareRequest)(nil),  // 22: mpc.coordinator.v1.SubmitDelegateShareRequest
	(*SubmitDelegateShareResponse)(nil), // 23: mpc.coordinator.v1.SubmitDelegateShareResponse
	nil,                                 // 24: mpc.coordinator.v1.CreateSessionResponse.JoinTokensEntry
}
var file_session_coordinator_proto_depIdxs = []int32{
	3,  // 0: mpc.coordinator.v1.CreateSessionRequest.participants:type_name -> mpc.coordinator.v1.ParticipantInfo
	2,  // 1: mpc.coordinator.v1.CreateSessionRequest.party_composition:type_name -> mpc.coordinator.v1.PartyComposition
	1,  // 2: mpc.coordinator.v1.CreateSessionRequest.delegate_user_share:type_name -> mpc.coordinator.v1.DelegateUserShare
	4,  // 3: mpc.coordinator.v1.ParticipantInfo.device_info:type_name -> mpc.coordinator.v1.DeviceInfo
	24, // 4: mpc.coordinator.v1.CreateSessionResponse.join_tokens:type_name -> mpc.coordinator.v1.CreateSessionResponse.JoinTokensEntry
	4,  // 5: mpc.coordinator.v1.JoinSessionRequest.device_info:type_name -> mpc.coordinator.v1.DeviceInfo
	8,  // 6: mpc.coordinator.v1.JoinSessionResponse.session_info:type_name -> mpc.coordinator.v1.SessionInfo
	9,  // 7: mpc.coordinator.v1.JoinSessionResponse.other_parties:type_name -> mpc.coordinator.v1.PartyInfo
	4,  // 8: mpc.coordinator.v1.PartyInfo.device_info:type_name -> mpc.coordinator.v1.DeviceInfo
	13, // 9: mpc.coordinator.v1.GetSessionStatusResponse.delegate_share:type_name -> mpc.coordinator.v1.DelegateShareInfo
	12, // 10: mpc.coordinator.v1.GetSessionStatusResponse.participants:type_name -> mpc.coordinator.v1.ParticipantStatus
	0,  // 11: mpc.coordinator.v1.SessionCoordinator.CreateSession:input_type -> mpc.coordinator.v1.CreateSessionRequest
	6,  // 12: mpc.coordinator.v1.SessionCoordinator.JoinSession:input_type -> mpc.coordinator.v1.JoinSessionRequest
	10, // 13: mpc.coordinator.v1.SessionCoordinator.GetSessionStatus:input_type -> mpc.coordinator.v1.GetSessionStatusRequest
	18, // 14: mpc.coordinator.v1.SessionCoordinator.MarkPartyReady:input_type -> mpc.coordinator.v1.MarkPartyReadyRequest
	20, // 15: mpc.coordinator.v1.SessionCoordinator.StartSession:input_type -> mpc.coordinator.v1.StartSessionRequest
	14, // 16: mpc.coordinator.v1.SessionCoordinator.ReportCompletion:input_type -> mpc.coordinator.v1.ReportCompletionRequest
	16, // 17: mpc.coordinator.v1.SessionCoordinator.CloseSession:input_type -> mpc.coordinator.v1.CloseSessionRequest
	22, // 18: mpc.coordinator.v1.SessionCoordinator.SubmitDelegateShare:input_type -> mpc.coordinator.v1.SubmitDelegateShareRequest
	5,  // 19: mpc.coordinator.v1.SessionCoordinator.CreateSession:output_type -> mpc.coordinator.v1.CreateSessionResponse
	7,  // 20: mpc.coordinator.v1.SessionCoordinator.JoinSession:output_type -> mpc.coordinator.v1.JoinSessionResponse
	11, // 21: mpc.coordinator.v1.SessionCoordinator.GetSessionStatus:output_type -> mpc.coordinator.v1.GetSessionStatusResponse
	19, // 22: mpc.coordinator.v1.SessionCoordinator.MarkPartyReady:output_type -> mpc.coordinator.v1.MarkPartyReadyResponse
	21, // 23: mpc.coordinator.v1.SessionCoordinator.StartSession:output_type -> mpc.coordinator.v1.StartSessionResponse
	15, // 24: mpc.coordinator.v1.SessionCoordinator.ReportCompletion:output_type -> mpc.coordinator.v1.ReportCompletionResponse
	17, // 25: mpc.coordinator.v1.SessionCoordinator.CloseSession:output_type -> mpc.coordinator.v1.CloseSessionResponse
	23, // 26: mpc.coordinator.v1.SessionCoordinator.SubmitDelegateShare:output_type -> mpc.coordinator.v1.SubmitDelegateShareResponse
	19, // [19:27] is the sub-list for method output_type
	11, // [11:19] is the sub-list for method input_type
	11, // [11:11] is the sub-list for extension type_name
	11, // [11:11] is the sub-list for extension extendee
	0,  // [0:11] is the sub-list for field type_name
}

func init() { file_session_coordinator_proto_init() }
func file_session_coordinator_proto_init() {
	if File_session_coordinator_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_session_coordinator_proto_rawDesc), len(file_session_coordinator_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_session_coordinator_proto_goTypes,
		DependencyIndexes: file_session_coordinator_proto_depIdxs,
		MessageInfos:      file_session_coordinator_proto_msgTypes,
	}.Build()
	File_session_coordinator_proto = out.File
	file_session_coordinator_proto_goTypes = nil
	file_session_coordinator_proto_depIdxs = nil
}
