"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _StartupStage:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _StartupStageEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_StartupStage.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    STAGE_LAUNCHING_SERVER: _StartupStage.ValueType  # 0
    STAGE_INITIALIZING_COMPONENTS: _StartupStage.ValueType  # 1
    STAGE_CONSTRUCTING_SPIKESORTER: _StartupStage.ValueType  # 2
    STAGE_INITIALIZING_DAQ: _StartupStage.ValueType  # 3
    STAGE_RESTORING_SAVED_WORKSPACE: _StartupStage.ValueType  # 4
    STAGE_DONE: _StartupStage.ValueType  # 5

class StartupStage(_StartupStage, metaclass=_StartupStageEnumTypeWrapper): ...

STAGE_LAUNCHING_SERVER: StartupStage.ValueType  # 0
STAGE_INITIALIZING_COMPONENTS: StartupStage.ValueType  # 1
STAGE_CONSTRUCTING_SPIKESORTER: StartupStage.ValueType  # 2
STAGE_INITIALIZING_DAQ: StartupStage.ValueType  # 3
STAGE_RESTORING_SAVED_WORKSPACE: StartupStage.ValueType  # 4
STAGE_DONE: StartupStage.ValueType  # 5
global___StartupStage = StartupStage

class _DataExportFormat:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DataExportFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataExportFormat.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DATA_EXPORT_UNKNOWN: _DataExportFormat.ValueType  # 0
    DATA_EXPORT_NPY: _DataExportFormat.ValueType  # 1
    DATA_EXPORT_MATLAB: _DataExportFormat.ValueType  # 2
    DATA_EXPORT_PHY2: _DataExportFormat.ValueType  # 3

class DataExportFormat(_DataExportFormat, metaclass=_DataExportFormatEnumTypeWrapper): ...

DATA_EXPORT_UNKNOWN: DataExportFormat.ValueType  # 0
DATA_EXPORT_NPY: DataExportFormat.ValueType  # 1
DATA_EXPORT_MATLAB: DataExportFormat.ValueType  # 2
DATA_EXPORT_PHY2: DataExportFormat.ValueType  # 3
global___DataExportFormat = DataExportFormat

class _RadixFileTypes:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _RadixFileTypesEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_RadixFileTypes.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    RHD: _RadixFileTypes.ValueType  # 0
    XDAT: _RadixFileTypes.ValueType  # 1
    CSV: _RadixFileTypes.ValueType  # 2
    HDF5: _RadixFileTypes.ValueType  # 3
    NEX5: _RadixFileTypes.ValueType  # 4
    """NeuroExplorer"""
    NWB: _RadixFileTypes.ValueType  # 5
    """Neurodata Without Borders"""
    BIOINTERFACE: _RadixFileTypes.ValueType  # 7
    KILOSORT2: _RadixFileTypes.ValueType  # 8
    ANC: _RadixFileTypes.ValueType  # 9
    """ancillary meta data file"""
    SPKTRAIN_MU: _RadixFileTypes.ValueType  # 10
    BIO_RADIENS_EXPORT_HDF5: _RadixFileTypes.ValueType  # 11
    """impoverished hdf5"""
    BIO_RADIENS_EXPORT_MAT5: _RadixFileTypes.ValueType  # 12
    """impoverished matlab file v5"""
    NSX: _RadixFileTypes.ValueType  # 13
    """Blackrock"""
    PL2: _RadixFileTypes.ValueType  # 14
    """Plexon"""
    TDT: _RadixFileTypes.ValueType  # 15
    """TDT"""
    SPIKES: _RadixFileTypes.ValueType  # 16
    KPI: _RadixFileTypes.ValueType  # 17
    """cached KPI for file playback"""
    UNKNOWN_FILE_TYPE: _RadixFileTypes.ValueType  # 18
    MEAREC_HDF5: _RadixFileTypes.ValueType  # 19
    OFFLINE_SORTER_SPKS_MAT5: _RadixFileTypes.ValueType  # 20
    """matlab file in the format to be imported to Offline Sorter as"""
    SPKS_NPY: _RadixFileTypes.ValueType  # 21
    """"Spike Data from MATLAB..."
    directory of npy files (ts, lbls, etc)
    """
    OE_DAT: _RadixFileTypes.ValueType  # 22
    """Open Ephys DAT file format"""
    SPKS_PHY2: _RadixFileTypes.ValueType  # 23
    """phy2 format"""

class RadixFileTypes(_RadixFileTypes, metaclass=_RadixFileTypesEnumTypeWrapper): ...

RHD: RadixFileTypes.ValueType  # 0
XDAT: RadixFileTypes.ValueType  # 1
CSV: RadixFileTypes.ValueType  # 2
HDF5: RadixFileTypes.ValueType  # 3
NEX5: RadixFileTypes.ValueType  # 4
"""NeuroExplorer"""
NWB: RadixFileTypes.ValueType  # 5
"""Neurodata Without Borders"""
BIOINTERFACE: RadixFileTypes.ValueType  # 7
KILOSORT2: RadixFileTypes.ValueType  # 8
ANC: RadixFileTypes.ValueType  # 9
"""ancillary meta data file"""
SPKTRAIN_MU: RadixFileTypes.ValueType  # 10
BIO_RADIENS_EXPORT_HDF5: RadixFileTypes.ValueType  # 11
"""impoverished hdf5"""
BIO_RADIENS_EXPORT_MAT5: RadixFileTypes.ValueType  # 12
"""impoverished matlab file v5"""
NSX: RadixFileTypes.ValueType  # 13
"""Blackrock"""
PL2: RadixFileTypes.ValueType  # 14
"""Plexon"""
TDT: RadixFileTypes.ValueType  # 15
"""TDT"""
SPIKES: RadixFileTypes.ValueType  # 16
KPI: RadixFileTypes.ValueType  # 17
"""cached KPI for file playback"""
UNKNOWN_FILE_TYPE: RadixFileTypes.ValueType  # 18
MEAREC_HDF5: RadixFileTypes.ValueType  # 19
OFFLINE_SORTER_SPKS_MAT5: RadixFileTypes.ValueType  # 20
"""matlab file in the format to be imported to Offline Sorter as"""
SPKS_NPY: RadixFileTypes.ValueType  # 21
""""Spike Data from MATLAB..."
directory of npy files (ts, lbls, etc)
"""
OE_DAT: RadixFileTypes.ValueType  # 22
"""Open Ephys DAT file format"""
SPKS_PHY2: RadixFileTypes.ValueType  # 23
"""phy2 format"""
global___RadixFileTypes = RadixFileTypes

class _SignalType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SignalTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SignalType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PRI: _SignalType.ValueType  # 0
    """signalgroup.AMP"""
    AUX: _SignalType.ValueType  # 1
    """signalgroup.AIN"""
    DIN: _SignalType.ValueType  # 2
    """signalgroup.DIN"""
    DOUT: _SignalType.ValueType  # 3
    """signalgroup.DOUT"""

class SignalType(_SignalType, metaclass=_SignalTypeEnumTypeWrapper):
    """SignalType maps 1:1 to signalgroup.SignalType"""

PRI: SignalType.ValueType  # 0
"""signalgroup.AMP"""
AUX: SignalType.ValueType  # 1
"""signalgroup.AIN"""
DIN: SignalType.ValueType  # 2
"""signalgroup.DIN"""
DOUT: SignalType.ValueType  # 3
"""signalgroup.DOUT"""
global___SignalType = SignalType

class _ResampleRoutine:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ResampleRoutineEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ResampleRoutine.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NAIVE: _ResampleRoutine.ValueType  # 0
    """naive (default)"""
    RETENTIVE: _ResampleRoutine.ValueType  # 1
    """retentive"""
    EDGE_PRESERVING: _ResampleRoutine.ValueType  # 2
    """edge-preserving"""

class ResampleRoutine(_ResampleRoutine, metaclass=_ResampleRoutineEnumTypeWrapper): ...

NAIVE: ResampleRoutine.ValueType  # 0
"""naive (default)"""
RETENTIVE: ResampleRoutine.ValueType  # 1
"""retentive"""
EDGE_PRESERVING: ResampleRoutine.ValueType  # 2
"""edge-preserving"""
global___ResampleRoutine = ResampleRoutine

class _Port:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PortEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Port.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    A: _Port.ValueType  # 0
    """signalgroup.AMP_A"""
    B: _Port.ValueType  # 1
    C: _Port.ValueType  # 2
    D: _Port.ValueType  # 3
    E: _Port.ValueType  # 4
    F: _Port.ValueType  # 5
    G: _Port.ValueType  # 6
    H: _Port.ValueType  # 7
    """signalgroup.AMP_H"""

class Port(_Port, metaclass=_PortEnumTypeWrapper):
    """Port maps 1:1 to signalgroup.SignalPort"""

A: Port.ValueType  # 0
"""signalgroup.AMP_A"""
B: Port.ValueType  # 1
C: Port.ValueType  # 2
D: Port.ValueType  # 3
E: Port.ValueType  # 4
F: Port.ValueType  # 5
G: Port.ValueType  # 6
H: Port.ValueType  # 7
"""signalgroup.AMP_H"""
global___Port = Port

class _WorkspaceApp:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorkspaceAppEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorkspaceApp.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Allego: _WorkspaceApp.ValueType  # 0
    Curate: _WorkspaceApp.ValueType  # 1
    Videre: _WorkspaceApp.ValueType  # 2

class WorkspaceApp(_WorkspaceApp, metaclass=_WorkspaceAppEnumTypeWrapper): ...

Allego: WorkspaceApp.ValueType  # 0
Curate: WorkspaceApp.ValueType  # 1
Videre: WorkspaceApp.ValueType  # 2
global___WorkspaceApp = WorkspaceApp

class _WorkspaceCommands:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorkspaceCommandsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorkspaceCommands.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    WSPACE_Save: _WorkspaceCommands.ValueType  # 0
    WSPACE_SaveAs: _WorkspaceCommands.ValueType  # 1
    WSPACE_Export: _WorkspaceCommands.ValueType  # 2
    WSPACE_Import: _WorkspaceCommands.ValueType  # 3
    WSPACE_Delete: _WorkspaceCommands.ValueType  # 4
    WSPACE_Switch: _WorkspaceCommands.ValueType  # 7
    WSPACE_SwitchToLastUsed: _WorkspaceCommands.ValueType  # 8

class WorkspaceCommands(_WorkspaceCommands, metaclass=_WorkspaceCommandsEnumTypeWrapper): ...

WSPACE_Save: WorkspaceCommands.ValueType  # 0
WSPACE_SaveAs: WorkspaceCommands.ValueType  # 1
WSPACE_Export: WorkspaceCommands.ValueType  # 2
WSPACE_Import: WorkspaceCommands.ValueType  # 3
WSPACE_Delete: WorkspaceCommands.ValueType  # 4
WSPACE_Switch: WorkspaceCommands.ValueType  # 7
WSPACE_SwitchToLastUsed: WorkspaceCommands.ValueType  # 8
global___WorkspaceCommands = WorkspaceCommands

class _GetWorkspaceCommands:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _GetWorkspaceCommandsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GetWorkspaceCommands.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    GET_WSPACE_List: _GetWorkspaceCommands.ValueType  # 1
    GET_WSPACE_Current: _GetWorkspaceCommands.ValueType  # 2

class GetWorkspaceCommands(_GetWorkspaceCommands, metaclass=_GetWorkspaceCommandsEnumTypeWrapper): ...

GET_WSPACE_List: GetWorkspaceCommands.ValueType  # 1
GET_WSPACE_Current: GetWorkspaceCommands.ValueType  # 2
global___GetWorkspaceCommands = GetWorkspaceCommands

class _RadiensServerType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _RadiensServerTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_RadiensServerType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Allegoserver: _RadiensServerType.ValueType  # 0
    Radiensserver: _RadiensServerType.ValueType  # 1

class RadiensServerType(_RadiensServerType, metaclass=_RadiensServerTypeEnumTypeWrapper): ...

Allegoserver: RadiensServerType.ValueType  # 0
Radiensserver: RadiensServerType.ValueType  # 1
global___RadiensServerType = RadiensServerType

class _GrpcServiceType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _GrpcServiceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GrpcServiceType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    ALLEGO_CORE: _GrpcServiceType.ValueType  # 0
    ALLEGO_PCACHE: _GrpcServiceType.ValueType  # 1
    ALLEGO_KPI: _GrpcServiceType.ValueType  # 2
    ALLEGO_NEURONS: _GrpcServiceType.ValueType  # 3
    RADIENS_CORE: _GrpcServiceType.ValueType  # 4
    RADIENS_SPIKE_SORTER: _GrpcServiceType.ValueType  # 5
    RADIENS_DEV: _GrpcServiceType.ValueType  # 6
    RADIENS_DASHBOARDS: _GrpcServiceType.ValueType  # 7
    ALLEGO_LIFECYCLE: _GrpcServiceType.ValueType  # 8
    RADIENS_LIFECYCLE: _GrpcServiceType.ValueType  # 9

class GrpcServiceType(_GrpcServiceType, metaclass=_GrpcServiceTypeEnumTypeWrapper): ...

ALLEGO_CORE: GrpcServiceType.ValueType  # 0
ALLEGO_PCACHE: GrpcServiceType.ValueType  # 1
ALLEGO_KPI: GrpcServiceType.ValueType  # 2
ALLEGO_NEURONS: GrpcServiceType.ValueType  # 3
RADIENS_CORE: GrpcServiceType.ValueType  # 4
RADIENS_SPIKE_SORTER: GrpcServiceType.ValueType  # 5
RADIENS_DEV: GrpcServiceType.ValueType  # 6
RADIENS_DASHBOARDS: GrpcServiceType.ValueType  # 7
ALLEGO_LIFECYCLE: GrpcServiceType.ValueType  # 8
RADIENS_LIFECYCLE: GrpcServiceType.ValueType  # 9
global___GrpcServiceType = GrpcServiceType

class _DevDatasetType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DevDatasetTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DevDatasetType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    BASE: _DevDatasetType.ValueType  # 0
    TRAIN: _DevDatasetType.ValueType  # 1
    VALIDATION: _DevDatasetType.ValueType  # 2
    TEST: _DevDatasetType.ValueType  # 3

class DevDatasetType(_DevDatasetType, metaclass=_DevDatasetTypeEnumTypeWrapper): ...

BASE: DevDatasetType.ValueType  # 0
TRAIN: DevDatasetType.ValueType  # 1
VALIDATION: DevDatasetType.ValueType  # 2
TEST: DevDatasetType.ValueType  # 3
global___DevDatasetType = DevDatasetType

class _PSDWindowType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PSDWindowTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PSDWindowType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    HAMMING_p01: _PSDWindowType.ValueType  # 0
    HAMMING_p05: _PSDWindowType.ValueType  # 1
    PASS_THROUGH: _PSDWindowType.ValueType  # 2

class PSDWindowType(_PSDWindowType, metaclass=_PSDWindowTypeEnumTypeWrapper): ...

HAMMING_p01: PSDWindowType.ValueType  # 0
HAMMING_p05: PSDWindowType.ValueType  # 1
PASS_THROUGH: PSDWindowType.ValueType  # 2
global___PSDWindowType = PSDWindowType

class _PSDScaling:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PSDScalingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PSDScaling.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PSD_ABSOLUTE: _PSDScaling.ValueType  # 0

class PSDScaling(_PSDScaling, metaclass=_PSDScalingEnumTypeWrapper): ...

PSD_ABSOLUTE: PSDScaling.ValueType  # 0
global___PSDScaling = PSDScaling

class _DataSourceSort:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DataSourceSortEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataSourceSort.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DSOURCE_DATE: _DataSourceSort.ValueType  # 0
    DSOURCE_NAME: _DataSourceSort.ValueType  # 1
    DSOURCE_SIZE: _DataSourceSort.ValueType  # 2
    DSOURCE_TYPE: _DataSourceSort.ValueType  # 3

class DataSourceSort(_DataSourceSort, metaclass=_DataSourceSortEnumTypeWrapper): ...

DSOURCE_DATE: DataSourceSort.ValueType  # 0
DSOURCE_NAME: DataSourceSort.ValueType  # 1
DSOURCE_SIZE: DataSourceSort.ValueType  # 2
DSOURCE_TYPE: DataSourceSort.ValueType  # 3
global___DataSourceSort = DataSourceSort

class _SignalGroupType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SignalGroupTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SignalGroupType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PRIMARY_CACHE: _SignalGroupType.ValueType  # 0
    FILE: _SignalGroupType.ValueType  # 3

class SignalGroupType(_SignalGroupType, metaclass=_SignalGroupTypeEnumTypeWrapper): ...

PRIMARY_CACHE: SignalGroupType.ValueType  # 0
FILE: SignalGroupType.ValueType  # 3
global___SignalGroupType = SignalGroupType

class _DSPType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DSPTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DSPType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    LOWPASS: _DSPType.ValueType  # 0
    HIGHPASS: _DSPType.ValueType  # 1
    BANDPASS: _DSPType.ValueType  # 2
    NOTCH: _DSPType.ValueType  # 3
    BANDSTOP: _DSPType.ValueType  # 4
    CAR: _DSPType.ValueType  # 5
    VIRTUAL_REFERENCE: _DSPType.ValueType  # 6
    PAIRED_REFERENCE: _DSPType.ValueType  # 7

class DSPType(_DSPType, metaclass=_DSPTypeEnumTypeWrapper): ...

LOWPASS: DSPType.ValueType  # 0
HIGHPASS: DSPType.ValueType  # 1
BANDPASS: DSPType.ValueType  # 2
NOTCH: DSPType.ValueType  # 3
BANDSTOP: DSPType.ValueType  # 4
CAR: DSPType.ValueType  # 5
VIRTUAL_REFERENCE: DSPType.ValueType  # 6
PAIRED_REFERENCE: DSPType.ValueType  # 7
global___DSPType = DSPType

class _FilterStage:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _FilterStageEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FilterStage.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    STAGE_HARDWARE: _FilterStage.ValueType  # 0
    STAGE1: _FilterStage.ValueType  # 1
    STAGE2: _FilterStage.ValueType  # 2
    SPIKE_SORTER: _FilterStage.ValueType  # 3

class FilterStage(_FilterStage, metaclass=_FilterStageEnumTypeWrapper): ...

STAGE_HARDWARE: FilterStage.ValueType  # 0
STAGE1: FilterStage.ValueType  # 1
STAGE2: FilterStage.ValueType  # 2
SPIKE_SORTER: FilterStage.ValueType  # 3
global___FilterStage = FilterStage

class _FeatureLicense:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _FeatureLicenseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FeatureLicense.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Feat_NoLicenseRequired: _FeatureLicense.ValueType  # 0
    Feat_Any: _FeatureLicense.ValueType  # 1
    Feat_Power9: _FeatureLicense.ValueType  # 2
    Feat_RadixAPI: _FeatureLicense.ValueType  # 3
    Feat_Scope: _FeatureLicense.ValueType  # 4
    Feat_Electrodes: _FeatureLicense.ValueType  # 5
    Feat_HDSnapshot: _FeatureLicense.ValueType  # 6
    Feat_Impedance: _FeatureLicense.ValueType  # 7
    Feat_Monitor: _FeatureLicense.ValueType  # 8
    Feat_SignalMetrics: _FeatureLicense.ValueType  # 9
    Feat_SignalProcessing: _FeatureLicense.ValueType  # 10
    Feat_System: _FeatureLicense.ValueType  # 11
    Feat_SpikeGrid: _FeatureLicense.ValueType  # 12
    Feat_SpikeSorter: _FeatureLicense.ValueType  # 13
    Feat_Raster: _FeatureLicense.ValueType  # 14
    Feat_ThreeDModel: _FeatureLicense.ValueType  # 15

class FeatureLicense(_FeatureLicense, metaclass=_FeatureLicenseEnumTypeWrapper): ...

Feat_NoLicenseRequired: FeatureLicense.ValueType  # 0
Feat_Any: FeatureLicense.ValueType  # 1
Feat_Power9: FeatureLicense.ValueType  # 2
Feat_RadixAPI: FeatureLicense.ValueType  # 3
Feat_Scope: FeatureLicense.ValueType  # 4
Feat_Electrodes: FeatureLicense.ValueType  # 5
Feat_HDSnapshot: FeatureLicense.ValueType  # 6
Feat_Impedance: FeatureLicense.ValueType  # 7
Feat_Monitor: FeatureLicense.ValueType  # 8
Feat_SignalMetrics: FeatureLicense.ValueType  # 9
Feat_SignalProcessing: FeatureLicense.ValueType  # 10
Feat_System: FeatureLicense.ValueType  # 11
Feat_SpikeGrid: FeatureLicense.ValueType  # 12
Feat_SpikeSorter: FeatureLicense.ValueType  # 13
Feat_Raster: FeatureLicense.ValueType  # 14
Feat_ThreeDModel: FeatureLicense.ValueType  # 15
global___FeatureLicense = FeatureLicense

class _SummaryStatsEnum:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SummaryStatsEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SummaryStatsEnum.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SS_STAT_MEAN: _SummaryStatsEnum.ValueType  # 0
    SS_STAT_SD: _SummaryStatsEnum.ValueType  # 1
    SS_STAT_MODE: _SummaryStatsEnum.ValueType  # 2
    SS_STAT_MIN: _SummaryStatsEnum.ValueType  # 3
    SS_STAT_MAX: _SummaryStatsEnum.ValueType  # 4
    SS_STAT_MODE_COUNT: _SummaryStatsEnum.ValueType  # 5
    SS_STAT_MEDIAN: _SummaryStatsEnum.ValueType  # 6
    SS_STAT_Q25: _SummaryStatsEnum.ValueType  # 7
    SS_STAT_Q75: _SummaryStatsEnum.ValueType  # 8
    SS_STAT_SKEW: _SummaryStatsEnum.ValueType  # 9
    SS_STAT_KURTOSIS: _SummaryStatsEnum.ValueType  # 10
    SS_STAT_N: _SummaryStatsEnum.ValueType  # 11

class SummaryStatsEnum(_SummaryStatsEnum, metaclass=_SummaryStatsEnumEnumTypeWrapper):
    """maps to dsplib/util.go SS_STAT enum"""

SS_STAT_MEAN: SummaryStatsEnum.ValueType  # 0
SS_STAT_SD: SummaryStatsEnum.ValueType  # 1
SS_STAT_MODE: SummaryStatsEnum.ValueType  # 2
SS_STAT_MIN: SummaryStatsEnum.ValueType  # 3
SS_STAT_MAX: SummaryStatsEnum.ValueType  # 4
SS_STAT_MODE_COUNT: SummaryStatsEnum.ValueType  # 5
SS_STAT_MEDIAN: SummaryStatsEnum.ValueType  # 6
SS_STAT_Q25: SummaryStatsEnum.ValueType  # 7
SS_STAT_Q75: SummaryStatsEnum.ValueType  # 8
SS_STAT_SKEW: SummaryStatsEnum.ValueType  # 9
SS_STAT_KURTOSIS: SummaryStatsEnum.ValueType  # 10
SS_STAT_N: SummaryStatsEnum.ValueType  # 11
global___SummaryStatsEnum = SummaryStatsEnum

class _KpiMetricsMode:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _KpiMetricsModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KpiMetricsMode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Kpi_MetricsMode_Base: _KpiMetricsMode.ValueType  # 0
    Kpi_MetricsMode_Avg: _KpiMetricsMode.ValueType  # 1
    Kpi_MetricsMode_Stream: _KpiMetricsMode.ValueType  # 2

class KpiMetricsMode(_KpiMetricsMode, metaclass=_KpiMetricsModeEnumTypeWrapper): ...

Kpi_MetricsMode_Base: KpiMetricsMode.ValueType  # 0
Kpi_MetricsMode_Avg: KpiMetricsMode.ValueType  # 1
Kpi_MetricsMode_Stream: KpiMetricsMode.ValueType  # 2
global___KpiMetricsMode = KpiMetricsMode

class _KpiMetricsEnum:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _KpiMetricsEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KpiMetricsEnum.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    KPI_NUM_PTS: _KpiMetricsEnum.ValueType  # 0
    KPI_NUM_PTS_ISI: _KpiMetricsEnum.ValueType  # 1
    KPI_DUR_SEC: _KpiMetricsEnum.ValueType  # 2
    KPI_MEAN: _KpiMetricsEnum.ValueType  # 3
    KPI_MIN: _KpiMetricsEnum.ValueType  # 4
    KPI_MIN_ISI: _KpiMetricsEnum.ValueType  # 5
    KPI_MAX: _KpiMetricsEnum.ValueType  # 6
    KPI_MAX_ISI: _KpiMetricsEnum.ValueType  # 7
    KPI_MAX_ABS: _KpiMetricsEnum.ValueType  # 8
    KPI_MAX_ABS_ISI: _KpiMetricsEnum.ValueType  # 9
    KPI_TIMESTAMP_MIN: _KpiMetricsEnum.ValueType  # 10
    KPI_TIMESTAMP_MAX: _KpiMetricsEnum.ValueType  # 11
    KPI_MAX_MIN_DIFF_ABS: _KpiMetricsEnum.ValueType  # 12
    KPI_MAX_MIN_DIFF_ABS_ISI: _KpiMetricsEnum.ValueType  # 13
    KPI_SD: _KpiMetricsEnum.ValueType  # 14
    KPI_SD_ISI: _KpiMetricsEnum.ValueType  # 15
    KPI_VAR: _KpiMetricsEnum.ValueType  # 16
    KPI_VAR_ISI: _KpiMetricsEnum.ValueType  # 17
    KPI_RMS: _KpiMetricsEnum.ValueType  # 18
    KPI_RMS_ISI: _KpiMetricsEnum.ValueType  # 19
    KPI_NOISE_UV: _KpiMetricsEnum.ValueType  # 20
    KPI_SNR: _KpiMetricsEnum.ValueType  # 21
    KPI_NUM_EVENTS: _KpiMetricsEnum.ValueType  # 22
    KPI_EVENT_RATE: _KpiMetricsEnum.ValueType  # 23
    KPI_EVENT_MAX: _KpiMetricsEnum.ValueType  # 24
    KPI_EVENT_MIN: _KpiMetricsEnum.ValueType  # 25
    KPI_EVENT_MAX_ABS: _KpiMetricsEnum.ValueType  # 26
    KPI_EVENT_MAX_MIN_DIFF_ABS: _KpiMetricsEnum.ValueType  # 27
    KPI_EVENT_TIMESTAMP_MIN: _KpiMetricsEnum.ValueType  # 28
    KPI_EVENT_TIMESTAMP_MAX: _KpiMetricsEnum.ValueType  # 29
    KPI_EVENT_TIMESTAMP_MAX_ABS: _KpiMetricsEnum.ValueType  # 30
    KPI_EVENT_TIMESTAMP_MAX_MIN_DIFF_ABS: _KpiMetricsEnum.ValueType  # 31
    KPI_MEAN_MAX: _KpiMetricsEnum.ValueType  # 32
    KPI_MEAN_MIN: _KpiMetricsEnum.ValueType  # 33
    KPI_MEAN_MAX_ABS: _KpiMetricsEnum.ValueType  # 34
    KPI_EVENT_MEAN_MAX_MIN_DIFF_ABS: _KpiMetricsEnum.ValueType  # 35
    KPI_MAX_MIN_DIFF_ABS_AMPLIFIED: _KpiMetricsEnum.ValueType  # 36

class KpiMetricsEnum(_KpiMetricsEnum, metaclass=_KpiMetricsEnumEnumTypeWrapper):
    """must exactly match kpidatasource.SigMetricEnum"""

KPI_NUM_PTS: KpiMetricsEnum.ValueType  # 0
KPI_NUM_PTS_ISI: KpiMetricsEnum.ValueType  # 1
KPI_DUR_SEC: KpiMetricsEnum.ValueType  # 2
KPI_MEAN: KpiMetricsEnum.ValueType  # 3
KPI_MIN: KpiMetricsEnum.ValueType  # 4
KPI_MIN_ISI: KpiMetricsEnum.ValueType  # 5
KPI_MAX: KpiMetricsEnum.ValueType  # 6
KPI_MAX_ISI: KpiMetricsEnum.ValueType  # 7
KPI_MAX_ABS: KpiMetricsEnum.ValueType  # 8
KPI_MAX_ABS_ISI: KpiMetricsEnum.ValueType  # 9
KPI_TIMESTAMP_MIN: KpiMetricsEnum.ValueType  # 10
KPI_TIMESTAMP_MAX: KpiMetricsEnum.ValueType  # 11
KPI_MAX_MIN_DIFF_ABS: KpiMetricsEnum.ValueType  # 12
KPI_MAX_MIN_DIFF_ABS_ISI: KpiMetricsEnum.ValueType  # 13
KPI_SD: KpiMetricsEnum.ValueType  # 14
KPI_SD_ISI: KpiMetricsEnum.ValueType  # 15
KPI_VAR: KpiMetricsEnum.ValueType  # 16
KPI_VAR_ISI: KpiMetricsEnum.ValueType  # 17
KPI_RMS: KpiMetricsEnum.ValueType  # 18
KPI_RMS_ISI: KpiMetricsEnum.ValueType  # 19
KPI_NOISE_UV: KpiMetricsEnum.ValueType  # 20
KPI_SNR: KpiMetricsEnum.ValueType  # 21
KPI_NUM_EVENTS: KpiMetricsEnum.ValueType  # 22
KPI_EVENT_RATE: KpiMetricsEnum.ValueType  # 23
KPI_EVENT_MAX: KpiMetricsEnum.ValueType  # 24
KPI_EVENT_MIN: KpiMetricsEnum.ValueType  # 25
KPI_EVENT_MAX_ABS: KpiMetricsEnum.ValueType  # 26
KPI_EVENT_MAX_MIN_DIFF_ABS: KpiMetricsEnum.ValueType  # 27
KPI_EVENT_TIMESTAMP_MIN: KpiMetricsEnum.ValueType  # 28
KPI_EVENT_TIMESTAMP_MAX: KpiMetricsEnum.ValueType  # 29
KPI_EVENT_TIMESTAMP_MAX_ABS: KpiMetricsEnum.ValueType  # 30
KPI_EVENT_TIMESTAMP_MAX_MIN_DIFF_ABS: KpiMetricsEnum.ValueType  # 31
KPI_MEAN_MAX: KpiMetricsEnum.ValueType  # 32
KPI_MEAN_MIN: KpiMetricsEnum.ValueType  # 33
KPI_MEAN_MAX_ABS: KpiMetricsEnum.ValueType  # 34
KPI_EVENT_MEAN_MAX_MIN_DIFF_ABS: KpiMetricsEnum.ValueType  # 35
KPI_MAX_MIN_DIFF_ABS_AMPLIFIED: KpiMetricsEnum.ValueType  # 36
global___KpiMetricsEnum = KpiMetricsEnum

class _KpiMetricsStatsEnum:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _KpiMetricsStatsEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KpiMetricsStatsEnum.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    KPI_BDL_METRICS_STATS_MEAN: _KpiMetricsStatsEnum.ValueType  # 0
    KPI_BDL_METRICS_STATS_MAX: _KpiMetricsStatsEnum.ValueType  # 1
    KPI_BDL_METRICS_STATS_MIN: _KpiMetricsStatsEnum.ValueType  # 2
    KPI_BDL_METRICS_SD: _KpiMetricsStatsEnum.ValueType  # 3

class KpiMetricsStatsEnum(_KpiMetricsStatsEnum, metaclass=_KpiMetricsStatsEnumEnumTypeWrapper): ...

KPI_BDL_METRICS_STATS_MEAN: KpiMetricsStatsEnum.ValueType  # 0
KPI_BDL_METRICS_STATS_MAX: KpiMetricsStatsEnum.ValueType  # 1
KPI_BDL_METRICS_STATS_MIN: KpiMetricsStatsEnum.ValueType  # 2
KPI_BDL_METRICS_SD: KpiMetricsStatsEnum.ValueType  # 3
global___KpiMetricsStatsEnum = KpiMetricsStatsEnum

class _KpiBundlePacketsStatsEnum:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _KpiBundlePacketsStatsEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KpiBundlePacketsStatsEnum.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    KPI_BDL_NUM_SIGS: _KpiBundlePacketsStatsEnum.ValueType  # 0
    KPI_BDL_DUR_SEC: _KpiBundlePacketsStatsEnum.ValueType  # 1
    KPI_BDL_NUM_SIGS_W_EVENTS: _KpiBundlePacketsStatsEnum.ValueType  # 2
    KPI_BDL_SIG_YIELD: _KpiBundlePacketsStatsEnum.ValueType  # 3
    KPI_BDL_RMS_AVG: _KpiBundlePacketsStatsEnum.ValueType  # 4
    KPI_BDL_SNR_AVG: _KpiBundlePacketsStatsEnum.ValueType  # 5
    KPI_BDL_SIG_MAX: _KpiBundlePacketsStatsEnum.ValueType  # 6
    KPI_BDL_SIG_MIN: _KpiBundlePacketsStatsEnum.ValueType  # 7
    KPI_BDL_NOISE_UV_AVG: _KpiBundlePacketsStatsEnum.ValueType  # 8
    KPI_BDL_NUM_EVENTS_TOTAL: _KpiBundlePacketsStatsEnum.ValueType  # 9
    KPI_BDL_NUM_EVENTS_AVG: _KpiBundlePacketsStatsEnum.ValueType  # 10
    KPI_BDL_EVENT_RATE_AVG: _KpiBundlePacketsStatsEnum.ValueType  # 11

class KpiBundlePacketsStatsEnum(_KpiBundlePacketsStatsEnum, metaclass=_KpiBundlePacketsStatsEnumEnumTypeWrapper): ...

KPI_BDL_NUM_SIGS: KpiBundlePacketsStatsEnum.ValueType  # 0
KPI_BDL_DUR_SEC: KpiBundlePacketsStatsEnum.ValueType  # 1
KPI_BDL_NUM_SIGS_W_EVENTS: KpiBundlePacketsStatsEnum.ValueType  # 2
KPI_BDL_SIG_YIELD: KpiBundlePacketsStatsEnum.ValueType  # 3
KPI_BDL_RMS_AVG: KpiBundlePacketsStatsEnum.ValueType  # 4
KPI_BDL_SNR_AVG: KpiBundlePacketsStatsEnum.ValueType  # 5
KPI_BDL_SIG_MAX: KpiBundlePacketsStatsEnum.ValueType  # 6
KPI_BDL_SIG_MIN: KpiBundlePacketsStatsEnum.ValueType  # 7
KPI_BDL_NOISE_UV_AVG: KpiBundlePacketsStatsEnum.ValueType  # 8
KPI_BDL_NUM_EVENTS_TOTAL: KpiBundlePacketsStatsEnum.ValueType  # 9
KPI_BDL_NUM_EVENTS_AVG: KpiBundlePacketsStatsEnum.ValueType  # 10
KPI_BDL_EVENT_RATE_AVG: KpiBundlePacketsStatsEnum.ValueType  # 11
global___KpiBundlePacketsStatsEnum = KpiBundlePacketsStatsEnum

class _TimeRangeSelMode:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _TimeRangeSelModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TimeRangeSelMode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    TRS_SUBSET: _TimeRangeSelMode.ValueType  # 0
    TRS_TO_HEAD: _TimeRangeSelMode.ValueType  # 1
    TRS_FROM_HEAD: _TimeRangeSelMode.ValueType  # 2

class TimeRangeSelMode(_TimeRangeSelMode, metaclass=_TimeRangeSelModeEnumTypeWrapper): ...

TRS_SUBSET: TimeRangeSelMode.ValueType  # 0
TRS_TO_HEAD: TimeRangeSelMode.ValueType  # 1
TRS_FROM_HEAD: TimeRangeSelMode.ValueType  # 2
global___TimeRangeSelMode = TimeRangeSelMode

class _OutfitterComponentType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _OutfitterComponentTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OutfitterComponentType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    OUTFIT_COMP_SENSOR: _OutfitterComponentType.ValueType  # 0
    OUTFIT_COMP_SPIKE_SORTER: _OutfitterComponentType.ValueType  # 1

class OutfitterComponentType(_OutfitterComponentType, metaclass=_OutfitterComponentTypeEnumTypeWrapper):
    """=========================================="""

OUTFIT_COMP_SENSOR: OutfitterComponentType.ValueType  # 0
OUTFIT_COMP_SPIKE_SORTER: OutfitterComponentType.ValueType  # 1
global___OutfitterComponentType = OutfitterComponentType

class _WorldNodeLabel:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorldNodeLabelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorldNodeLabel.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    WORLD_NODE_ORG: _WorldNodeLabel.ValueType  # 1
    WORLD_NODE_LAB: _WorldNodeLabel.ValueType  # 2
    WORLD_NODE_USER: _WorldNodeLabel.ValueType  # 3
    WORLD_NODE_CAT_PROBE: _WorldNodeLabel.ValueType  # 4
    WORLD_NODE_PROBE: _WorldNodeLabel.ValueType  # 5

class WorldNodeLabel(_WorldNodeLabel, metaclass=_WorldNodeLabelEnumTypeWrapper): ...

WORLD_NODE_ORG: WorldNodeLabel.ValueType  # 1
WORLD_NODE_LAB: WorldNodeLabel.ValueType  # 2
WORLD_NODE_USER: WorldNodeLabel.ValueType  # 3
WORLD_NODE_CAT_PROBE: WorldNodeLabel.ValueType  # 4
WORLD_NODE_PROBE: WorldNodeLabel.ValueType  # 5
global___WorldNodeLabel = WorldNodeLabel

class _WorldEdgeLabel:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorldEdgeLabelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorldEdgeLabel.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    WORLD_EDGE_MEMBER: _WorldEdgeLabel.ValueType  # 1

class WorldEdgeLabel(_WorldEdgeLabel, metaclass=_WorldEdgeLabelEnumTypeWrapper): ...

WORLD_EDGE_MEMBER: WorldEdgeLabel.ValueType  # 1
global___WorldEdgeLabel = WorldEdgeLabel

class _WorldEdgeDirection:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorldEdgeDirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorldEdgeDirection.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    WORLD_EDGE_DIR_RIGHT: _WorldEdgeDirection.ValueType  # 1
    WORLD_EDGE_DIR_LEFT: _WorldEdgeDirection.ValueType  # 2
    WORLD_EDGE_DIR_BOTH: _WorldEdgeDirection.ValueType  # 3

class WorldEdgeDirection(_WorldEdgeDirection, metaclass=_WorldEdgeDirectionEnumTypeWrapper): ...

WORLD_EDGE_DIR_RIGHT: WorldEdgeDirection.ValueType  # 1
WORLD_EDGE_DIR_LEFT: WorldEdgeDirection.ValueType  # 2
WORLD_EDGE_DIR_BOTH: WorldEdgeDirection.ValueType  # 3
global___WorldEdgeDirection = WorldEdgeDirection

class _UserRoleType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _UserRoleTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserRoleType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    USER_PI: _UserRoleType.ValueType  # 1
    USER_SCIENTIST: _UserRoleType.ValueType  # 2
    USER_POST_DOC: _UserRoleType.ValueType  # 3
    USER_GRAD_STUDENT: _UserRoleType.ValueType  # 4
    USER_UG_STUDENT: _UserRoleType.ValueType  # 5
    USER_MANAGER: _UserRoleType.ValueType  # 6
    USER_TECH: _UserRoleType.ValueType  # 7
    USER_OTHER: _UserRoleType.ValueType  # 8

class UserRoleType(_UserRoleType, metaclass=_UserRoleTypeEnumTypeWrapper): ...

USER_PI: UserRoleType.ValueType  # 1
USER_SCIENTIST: UserRoleType.ValueType  # 2
USER_POST_DOC: UserRoleType.ValueType  # 3
USER_GRAD_STUDENT: UserRoleType.ValueType  # 4
USER_UG_STUDENT: UserRoleType.ValueType  # 5
USER_MANAGER: UserRoleType.ValueType  # 6
USER_TECH: UserRoleType.ValueType  # 7
USER_OTHER: UserRoleType.ValueType  # 8
global___UserRoleType = UserRoleType

class _ManageNodeCmd:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ManageNodeCmdEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ManageNodeCmd.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NODE_CMD_NEW: _ManageNodeCmd.ValueType  # 1
    NODE_CMD_MERGE: _ManageNodeCmd.ValueType  # 2
    NODE_CMD_DEL: _ManageNodeCmd.ValueType  # 3

class ManageNodeCmd(_ManageNodeCmd, metaclass=_ManageNodeCmdEnumTypeWrapper): ...

NODE_CMD_NEW: ManageNodeCmd.ValueType  # 1
NODE_CMD_MERGE: ManageNodeCmd.ValueType  # 2
NODE_CMD_DEL: ManageNodeCmd.ValueType  # 3
global___ManageNodeCmd = ManageNodeCmd

class _WorldQueryCmd:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _WorldQueryCmdEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WorldQueryCmd.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    WQ_LIST_ALL_USERS: _WorldQueryCmd.ValueType  # 1
    """atomic queries"""
    WQ_LIST_ALL_LABS: _WorldQueryCmd.ValueType  # 2
    WQ_LIST_ALL_ORGS: _WorldQueryCmd.ValueType  # 3
    WQ_LIST_ALL_CAT_PROBES: _WorldQueryCmd.ValueType  # 4
    WQ_LIST_ALL_PROBES: _WorldQueryCmd.ValueType  # 5
    WQ_CAT_PROBE_BY_NAME: _WorldQueryCmd.ValueType  # 6
    WQ_USER_BY_ID: _WorldQueryCmd.ValueType  # 7
    WQ_USER_AND_LAB_BY_ID: _WorldQueryCmd.ValueType  # 8
    WQ2_LIST_ALL_DEVICES: _WorldQueryCmd.ValueType  # 30
    """2nd order queries"""

class WorldQueryCmd(_WorldQueryCmd, metaclass=_WorldQueryCmdEnumTypeWrapper): ...

WQ_LIST_ALL_USERS: WorldQueryCmd.ValueType  # 1
"""atomic queries"""
WQ_LIST_ALL_LABS: WorldQueryCmd.ValueType  # 2
WQ_LIST_ALL_ORGS: WorldQueryCmd.ValueType  # 3
WQ_LIST_ALL_CAT_PROBES: WorldQueryCmd.ValueType  # 4
WQ_LIST_ALL_PROBES: WorldQueryCmd.ValueType  # 5
WQ_CAT_PROBE_BY_NAME: WorldQueryCmd.ValueType  # 6
WQ_USER_BY_ID: WorldQueryCmd.ValueType  # 7
WQ_USER_AND_LAB_BY_ID: WorldQueryCmd.ValueType  # 8
WQ2_LIST_ALL_DEVICES: WorldQueryCmd.ValueType  # 30
"""2nd order queries"""
global___WorldQueryCmd = WorldQueryCmd

class _TransformNodeType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _TransformNodeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransformNodeType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NOTCH_FILTER: _TransformNodeType.ValueType  # 0
    """IIR filters"""
    BANDPASS_FILTER: _TransformNodeType.ValueType  # 1
    BANDSTOP_FILTER: _TransformNodeType.ValueType  # 2
    HIGHPASS_FILTER: _TransformNodeType.ValueType  # 3
    LOWPASS_FILTER: _TransformNodeType.ValueType  # 4
    PAIRED_REF: _TransformNodeType.ValueType  # 5
    """Referencing"""
    VIRTUAL_REF: _TransformNodeType.ValueType  # 6
    CAR_REF: _TransformNodeType.ValueType  # 7
    SLICE_TIME: _TransformNodeType.ValueType  # 9
    """SLICING"""
    SLICE_CHANNELS: _TransformNodeType.ValueType  # 10
    SOURCE: _TransformNodeType.ValueType  # 11
    """Datasources"""
    SINK: _TransformNodeType.ValueType  # 12
    DOWNSAMPLE: _TransformNodeType.ValueType  # 13
    """Resampling"""
    REMAP_SENSOR: _TransformNodeType.ValueType  # 14
    """Remapping"""
    BULK_SOURCE: _TransformNodeType.ValueType  # 15
    """Bulk"""
    BULK_SINK: _TransformNodeType.ValueType  # 16

class TransformNodeType(_TransformNodeType, metaclass=_TransformNodeTypeEnumTypeWrapper):
    """=========================================
    PROTOCOLS (SIGNAL PROCESSING)
    =========================================
    """

NOTCH_FILTER: TransformNodeType.ValueType  # 0
"""IIR filters"""
BANDPASS_FILTER: TransformNodeType.ValueType  # 1
BANDSTOP_FILTER: TransformNodeType.ValueType  # 2
HIGHPASS_FILTER: TransformNodeType.ValueType  # 3
LOWPASS_FILTER: TransformNodeType.ValueType  # 4
PAIRED_REF: TransformNodeType.ValueType  # 5
"""Referencing"""
VIRTUAL_REF: TransformNodeType.ValueType  # 6
CAR_REF: TransformNodeType.ValueType  # 7
SLICE_TIME: TransformNodeType.ValueType  # 9
"""SLICING"""
SLICE_CHANNELS: TransformNodeType.ValueType  # 10
SOURCE: TransformNodeType.ValueType  # 11
"""Datasources"""
SINK: TransformNodeType.ValueType  # 12
DOWNSAMPLE: TransformNodeType.ValueType  # 13
"""Resampling"""
REMAP_SENSOR: TransformNodeType.ValueType  # 14
"""Remapping"""
BULK_SOURCE: TransformNodeType.ValueType  # 15
"""Bulk"""
BULK_SINK: TransformNodeType.ValueType  # 16
global___TransformNodeType = TransformNodeType

class _SpikeSorterParamCommand:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SpikeSorterParamCommandEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SpikeSorterParamCommand.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SORTER_THR_LEVEL: _SpikeSorterParamCommand.ValueType  # 1
    SORTER_THR_LEVEL_SD: _SpikeSorterParamCommand.ValueType  # 4
    SORTER_THR_WDW: _SpikeSorterParamCommand.ValueType  # 8
    SORTER_WEAK_THR_LEVEL: _SpikeSorterParamCommand.ValueType  # 10
    SORTER_WEAK_THR_LEVEL_SD: _SpikeSorterParamCommand.ValueType  # 13
    SORTER_SHADOW: _SpikeSorterParamCommand.ValueType  # 17
    SORTER_THR_ACTIVATE: _SpikeSorterParamCommand.ValueType  # 19
    SORTER_WEAK_THR_ACTIVATE: _SpikeSorterParamCommand.ValueType  # 21

class SpikeSorterParamCommand(_SpikeSorterParamCommand, metaclass=_SpikeSorterParamCommandEnumTypeWrapper):
    """!! post-MVP refactor: to something like: SpikeDetectParamCommand"""

SORTER_THR_LEVEL: SpikeSorterParamCommand.ValueType  # 1
SORTER_THR_LEVEL_SD: SpikeSorterParamCommand.ValueType  # 4
SORTER_THR_WDW: SpikeSorterParamCommand.ValueType  # 8
SORTER_WEAK_THR_LEVEL: SpikeSorterParamCommand.ValueType  # 10
SORTER_WEAK_THR_LEVEL_SD: SpikeSorterParamCommand.ValueType  # 13
SORTER_SHADOW: SpikeSorterParamCommand.ValueType  # 17
SORTER_THR_ACTIVATE: SpikeSorterParamCommand.ValueType  # 19
SORTER_WEAK_THR_ACTIVATE: SpikeSorterParamCommand.ValueType  # 21
global___SpikeSorterParamCommand = SpikeSorterParamCommand

class _StatusPollFields:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _StatusPollFieldsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_StatusPollFields.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PORT_CONNECTION_STATE: _StatusPollFields.ValueType  # 0
    RECORDING_ERRORS: _StatusPollFields.ValueType  # 1
    STREAM_TIME_RANGE: _StatusPollFields.ValueType  # 2
    STREAM_STATUS: _StatusPollFields.ValueType  # 3
    RECORD_STATUS: _StatusPollFields.ValueType  # 4
    IS_CONNECTED: _StatusPollFields.ValueType  # 6
    """GPIO_CHANNEL_COUNT = 5;"""
    RECORD_DUR: _StatusPollFields.ValueType  # 7
    BACKBONE_MODE: _StatusPollFields.ValueType  # 9
    SIGNAL_GROUP: _StatusPollFields.ValueType  # 10
    SINAPS_REGISTERS: _StatusPollFields.ValueType  # 11
    RECORDING_CONFIG: _StatusPollFields.ValueType  # 12
    FILTERS: _StatusPollFields.ValueType  # 13
    EVENT_THRESH_PARAMS: _StatusPollFields.ValueType  # 14
    DAC_REGISTER: _StatusPollFields.ValueType  # 15
    DIO_REGISTER: _StatusPollFields.ValueType  # 16
    TRIGGER_MODE: _StatusPollFields.ValueType  # 17
    CABLE_LENGTHS: _StatusPollFields.ValueType  # 18
    EVENT_VIEWERS: _StatusPollFields.ValueType  # 19
    SAMPLE_RATE: _StatusPollFields.ValueType  # 20
    ALL_FIELDS: _StatusPollFields.ValueType  # 21
    SPIKE_SORTER_STATE: _StatusPollFields.ValueType  # 22
    STIM_PARAMS: _StatusPollFields.ValueType  # 23
    SPIKE_SORTER_WARNINGS: _StatusPollFields.ValueType  # 24
    STIM_STEP_SIZE: _StatusPollFields.ValueType  # 25

class StatusPollFields(_StatusPollFields, metaclass=_StatusPollFieldsEnumTypeWrapper): ...

PORT_CONNECTION_STATE: StatusPollFields.ValueType  # 0
RECORDING_ERRORS: StatusPollFields.ValueType  # 1
STREAM_TIME_RANGE: StatusPollFields.ValueType  # 2
STREAM_STATUS: StatusPollFields.ValueType  # 3
RECORD_STATUS: StatusPollFields.ValueType  # 4
IS_CONNECTED: StatusPollFields.ValueType  # 6
"""GPIO_CHANNEL_COUNT = 5;"""
RECORD_DUR: StatusPollFields.ValueType  # 7
BACKBONE_MODE: StatusPollFields.ValueType  # 9
SIGNAL_GROUP: StatusPollFields.ValueType  # 10
SINAPS_REGISTERS: StatusPollFields.ValueType  # 11
RECORDING_CONFIG: StatusPollFields.ValueType  # 12
FILTERS: StatusPollFields.ValueType  # 13
EVENT_THRESH_PARAMS: StatusPollFields.ValueType  # 14
DAC_REGISTER: StatusPollFields.ValueType  # 15
DIO_REGISTER: StatusPollFields.ValueType  # 16
TRIGGER_MODE: StatusPollFields.ValueType  # 17
CABLE_LENGTHS: StatusPollFields.ValueType  # 18
EVENT_VIEWERS: StatusPollFields.ValueType  # 19
SAMPLE_RATE: StatusPollFields.ValueType  # 20
ALL_FIELDS: StatusPollFields.ValueType  # 21
SPIKE_SORTER_STATE: StatusPollFields.ValueType  # 22
STIM_PARAMS: StatusPollFields.ValueType  # 23
SPIKE_SORTER_WARNINGS: StatusPollFields.ValueType  # 24
STIM_STEP_SIZE: StatusPollFields.ValueType  # 25
global___StatusPollFields = StatusPollFields

class _DashboardType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DashboardTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DashboardType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DASH_1: _DashboardType.ValueType  # 0

class DashboardType(_DashboardType, metaclass=_DashboardTypeEnumTypeWrapper): ...

DASH_1: DashboardType.ValueType  # 0
global___DashboardType = DashboardType

class _DashboardCommand:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _DashboardCommandEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DashboardCommand.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    DASH_CMD_OPEN: _DashboardCommand.ValueType  # 0
    DASH_CMD_CLOSE: _DashboardCommand.ValueType  # 1
    DASH_CMD_UPDATE: _DashboardCommand.ValueType  # 2

class DashboardCommand(_DashboardCommand, metaclass=_DashboardCommandEnumTypeWrapper): ...

DASH_CMD_OPEN: DashboardCommand.ValueType  # 0
DASH_CMD_CLOSE: DashboardCommand.ValueType  # 1
DASH_CMD_UPDATE: DashboardCommand.ValueType  # 2
global___DashboardCommand = DashboardCommand

@typing.final
class HardwareUUIDResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HARDWAREUUID_FIELD_NUMBER: builtins.int
    hardwareUUID: builtins.str
    def __init__(
        self,
        *,
        hardwareUUID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["hardwareUUID", b"hardwareUUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["hardwareUUID", b"hardwareUUID"]) -> None: ...

global___HardwareUUIDResponse = HardwareUUIDResponse

@typing.final
class OfflineLicenseStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISVERIFIED_FIELD_NUMBER: builtins.int
    HARDWAREUUID_FIELD_NUMBER: builtins.int
    isVerified: builtins.bool
    hardwareUUID: builtins.str
    def __init__(
        self,
        *,
        isVerified: builtins.bool | None = ...,
        hardwareUUID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["hardwareUUID", b"hardwareUUID", "isVerified", b"isVerified"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["hardwareUUID", b"hardwareUUID", "isVerified", b"isVerified"]) -> None: ...

global___OfflineLicenseStatus = OfflineLicenseStatus

@typing.final
class FirmwareVersion(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATE_FIELD_NUMBER: builtins.int
    MAJORREV_FIELD_NUMBER: builtins.int
    MINORREV_FIELD_NUMBER: builtins.int
    date: builtins.str
    majorRev: builtins.int
    minorRev: builtins.int
    def __init__(
        self,
        *,
        date: builtins.str | None = ...,
        majorRev: builtins.int | None = ...,
        minorRev: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["date", b"date", "majorRev", b"majorRev", "minorRev", b"minorRev"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["date", b"date", "majorRev", b"majorRev", "minorRev", b"minorRev"]) -> None: ...

global___FirmwareVersion = FirmwareVersion

@typing.final
class RadixEnvironment(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VERSION_FIELD_NUMBER: builtins.int
    USERDATAPATH_FIELD_NUMBER: builtins.int
    FIRMWAREVERSION_FIELD_NUMBER: builtins.int
    USERCUSTOMSENSORSPATH_FIELD_NUMBER: builtins.int
    version: builtins.str
    userDataPath: builtins.str
    userCustomSensorsPath: builtins.str
    @property
    def firmwareVersion(self) -> global___FirmwareVersion: ...
    def __init__(
        self,
        *,
        version: builtins.str | None = ...,
        userDataPath: builtins.str | None = ...,
        firmwareVersion: global___FirmwareVersion | None = ...,
        userCustomSensorsPath: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["firmwareVersion", b"firmwareVersion", "userCustomSensorsPath", b"userCustomSensorsPath", "userDataPath", b"userDataPath", "version", b"version"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["firmwareVersion", b"firmwareVersion", "userCustomSensorsPath", b"userCustomSensorsPath", "userDataPath", b"userDataPath", "version", b"version"]) -> None: ...

global___RadixEnvironment = RadixEnvironment

@typing.final
class StartupStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISSTARTUPCOMPLETE_FIELD_NUMBER: builtins.int
    STAGE_FIELD_NUMBER: builtins.int
    isStartupComplete: builtins.bool
    stage: global___StartupStage.ValueType
    def __init__(
        self,
        *,
        isStartupComplete: builtins.bool | None = ...,
        stage: global___StartupStage.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isStartupComplete", b"isStartupComplete", "stage", b"stage"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["isStartupComplete", b"isStartupComplete", "stage", b"stage"]) -> None: ...

global___StartupStatus = StartupStatus

@typing.final
class StandardRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REGSTR_FIELD_NUMBER: builtins.int
    @property
    def regStr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """optional register for string parameters"""

    def __init__(
        self,
        *,
        regStr: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["regStr", b"regStr"]) -> None: ...

global___StandardRequest = StandardRequest

@typing.final
class StandardReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ERRMSG_FIELD_NUMBER: builtins.int
    REGSTR_FIELD_NUMBER: builtins.int
    errMsg: builtins.str
    @property
    def regStr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """optional register for string return values"""

    def __init__(
        self,
        *,
        errMsg: builtins.str | None = ...,
        regStr: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["errMsg", b"errMsg", "regStr", b"regStr"]) -> None: ...

global___StandardReply = StandardReply

@typing.final
class DACOffRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> None: ...

global___DACOffRequest = DACOffRequest

@typing.final
class WorkspaceDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    APP_FIELD_NUMBER: builtins.int
    ISMODIFIED_FIELD_NUMBER: builtins.int
    TIMESTAMPLASTUSED_FIELD_NUMBER: builtins.int
    TIMESTAMPMODIFIED_FIELD_NUMBER: builtins.int
    ANNOTATION_FIELD_NUMBER: builtins.int
    iD: builtins.str
    app: global___WorkspaceApp.ValueType
    isModified: builtins.bool
    timestampLastUsed: builtins.str
    timestampModified: builtins.str
    @property
    def annotation(self) -> global___AnnotateBundle: ...
    def __init__(
        self,
        *,
        iD: builtins.str | None = ...,
        app: global___WorkspaceApp.ValueType | None = ...,
        isModified: builtins.bool | None = ...,
        timestampLastUsed: builtins.str | None = ...,
        timestampModified: builtins.str | None = ...,
        annotation: global___AnnotateBundle | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["annotation", b"annotation", "app", b"app", "iD", b"iD", "isModified", b"isModified", "timestampLastUsed", b"timestampLastUsed", "timestampModified", b"timestampModified"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["annotation", b"annotation", "app", b"app", "iD", b"iD", "isModified", b"isModified", "timestampLastUsed", b"timestampLastUsed", "timestampModified", b"timestampModified"]) -> None: ...

global___WorkspaceDescriptor = WorkspaceDescriptor

@typing.final
class WorkspaceControlRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    WORKSPACEID_FIELD_NUMBER: builtins.int
    ANNOTATION_FIELD_NUMBER: builtins.int
    TARGETFULLFILENAME_FIELD_NUMBER: builtins.int
    ISFORCEOVERWRITE_FIELD_NUMBER: builtins.int
    APP_FIELD_NUMBER: builtins.int
    cmd: global___WorkspaceCommands.ValueType
    workspaceID: builtins.str
    """can be a globable subset of workspace ID"""
    targetFullFileName: builtins.str
    isForceOverwrite: builtins.bool
    app: global___WorkspaceApp.ValueType
    @property
    def annotation(self) -> global___AnnotateBundle: ...
    def __init__(
        self,
        *,
        cmd: global___WorkspaceCommands.ValueType | None = ...,
        workspaceID: builtins.str | None = ...,
        annotation: global___AnnotateBundle | None = ...,
        targetFullFileName: builtins.str | None = ...,
        isForceOverwrite: builtins.bool | None = ...,
        app: global___WorkspaceApp.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["annotation", b"annotation", "app", b"app", "cmd", b"cmd", "isForceOverwrite", b"isForceOverwrite", "targetFullFileName", b"targetFullFileName", "workspaceID", b"workspaceID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["annotation", b"annotation", "app", b"app", "cmd", b"cmd", "isForceOverwrite", b"isForceOverwrite", "targetFullFileName", b"targetFullFileName", "workspaceID", b"workspaceID"]) -> None: ...

global___WorkspaceControlRequest = WorkspaceControlRequest

@typing.final
class GetWorkspaceRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    WORKSPACEID_FIELD_NUMBER: builtins.int
    WORKSPACEDIR_FIELD_NUMBER: builtins.int
    APPMASK_FIELD_NUMBER: builtins.int
    ANNOTATEMASK_FIELD_NUMBER: builtins.int
    ISBROWSER_FIELD_NUMBER: builtins.int
    cmd: global___GetWorkspaceCommands.ValueType
    workspaceID: builtins.str
    """can be a globable subset of workspace ID"""
    workspaceDir: builtins.str
    appMask: global___WorkspaceApp.ValueType
    """nil ==> returns all workspace app types"""
    isBrowser: builtins.bool
    @property
    def annotateMask(self) -> global___AnnotateBundle: ...
    def __init__(
        self,
        *,
        cmd: global___GetWorkspaceCommands.ValueType | None = ...,
        workspaceID: builtins.str | None = ...,
        workspaceDir: builtins.str | None = ...,
        appMask: global___WorkspaceApp.ValueType | None = ...,
        annotateMask: global___AnnotateBundle | None = ...,
        isBrowser: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["annotateMask", b"annotateMask", "appMask", b"appMask", "cmd", b"cmd", "isBrowser", b"isBrowser", "workspaceDir", b"workspaceDir", "workspaceID", b"workspaceID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["annotateMask", b"annotateMask", "appMask", b"appMask", "cmd", b"cmd", "isBrowser", b"isBrowser", "workspaceDir", b"workspaceDir", "workspaceID", b"workspaceID"]) -> None: ...

global___GetWorkspaceRequest = GetWorkspaceRequest

@typing.final
class GetWorkspaceReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class WorkspaceDescEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___WorkspaceDescriptor: ...
        def __init__(
            self,
            *,
            key: builtins.str | None = ...,
            value: global___WorkspaceDescriptor | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    WORKSPACEDESC_FIELD_NUMBER: builtins.int
    @property
    def workspaceDesc(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___WorkspaceDescriptor]:
        """key = workspaceID"""

    def __init__(
        self,
        *,
        workspaceDesc: collections.abc.Mapping[builtins.str, global___WorkspaceDescriptor] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["workspaceDesc", b"workspaceDesc"]) -> None: ...

global___GetWorkspaceReply = GetWorkspaceReply

@typing.final
class GetRadiensServersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HOSTIPADDRESS_FIELD_NUMBER: builtins.int
    SERVERTYPE_FIELD_NUMBER: builtins.int
    hostIPaddress: builtins.str
    serverType: global___RadiensServerType.ValueType
    def __init__(
        self,
        *,
        hostIPaddress: builtins.str | None = ...,
        serverType: global___RadiensServerType.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["hostIPaddress", b"hostIPaddress", "serverType", b"serverType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["hostIPaddress", b"hostIPaddress", "serverType", b"serverType"]) -> None: ...

global___GetRadiensServersRequest = GetRadiensServersRequest

@typing.final
class ServerSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class GrpcService(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PORT_FIELD_NUMBER: builtins.int
        port: builtins.int
        def __init__(
            self,
            *,
            port: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["port", b"port"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["port", b"port"]) -> None: ...

    @typing.final
    class SpawnedProcess(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PID_FIELD_NUMBER: builtins.int
        @property
        def pid(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
        def __init__(
            self,
            *,
            pid: collections.abc.Iterable[builtins.int] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["pid", b"pid"]) -> None: ...

    @typing.final
    class ServiceEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___ServerSpec.GrpcService: ...
        def __init__(
            self,
            *,
            key: builtins.str | None = ...,
            value: global___ServerSpec.GrpcService | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    HOST_FIELD_NUMBER: builtins.int
    PID_FIELD_NUMBER: builtins.int
    SERVICE_FIELD_NUMBER: builtins.int
    SPAWN_FIELD_NUMBER: builtins.int
    host: builtins.str
    pid: builtins.int
    @property
    def service(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ServerSpec.GrpcService]:
        """key: GrpcServiceType enum (string)"""

    @property
    def spawn(self) -> global___ServerSpec.SpawnedProcess:
        """pid of any spawn process"""

    def __init__(
        self,
        *,
        host: builtins.str | None = ...,
        pid: builtins.int | None = ...,
        service: collections.abc.Mapping[builtins.str, global___ServerSpec.GrpcService] | None = ...,
        spawn: global___ServerSpec.SpawnedProcess | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["host", b"host", "pid", b"pid", "spawn", b"spawn"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["host", b"host", "pid", b"pid", "service", b"service", "spawn", b"spawn"]) -> None: ...

global___ServerSpec = ServerSpec

@typing.final
class RadiensServersReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ALLEGOSERVER_FIELD_NUMBER: builtins.int
    RADIENSSERVER_FIELD_NUMBER: builtins.int
    @property
    def allegoserver(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ServerSpec]: ...
    @property
    def radiensserver(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ServerSpec]: ...
    def __init__(
        self,
        *,
        allegoserver: collections.abc.Iterable[global___ServerSpec] | None = ...,
        radiensserver: collections.abc.Iterable[global___ServerSpec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["allegoserver", b"allegoserver", "radiensserver", b"radiensserver"]) -> None: ...

global___RadiensServersReply = RadiensServersReply

@typing.final
class SignalGroupIDRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> None: ...

global___SignalGroupIDRequest = SignalGroupIDRequest

@typing.final
class SignalMap(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SITEIDX_FIELD_NUMBER: builtins.int
    COMPSITENUM_FIELD_NUMBER: builtins.int
    POSPROBEUMX_FIELD_NUMBER: builtins.int
    POSPROBEUMY_FIELD_NUMBER: builtins.int
    POSPROBEUMZ_FIELD_NUMBER: builtins.int
    POSTISSUEUMX_FIELD_NUMBER: builtins.int
    POSTISSUEUMY_FIELD_NUMBER: builtins.int
    POSTISSUEUMZ_FIELD_NUMBER: builtins.int
    SENSORID_FIELD_NUMBER: builtins.int
    @property
    def siteIdx(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def compSiteNum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def posProbeUmX(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def posProbeUmY(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def posProbeUmZ(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def posTissueUmX(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def posTissueUmY(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def posTissueUmZ(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def sensorID(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        siteIdx: collections.abc.Iterable[builtins.int] | None = ...,
        compSiteNum: collections.abc.Iterable[builtins.str] | None = ...,
        posProbeUmX: collections.abc.Iterable[builtins.float] | None = ...,
        posProbeUmY: collections.abc.Iterable[builtins.float] | None = ...,
        posProbeUmZ: collections.abc.Iterable[builtins.float] | None = ...,
        posTissueUmX: collections.abc.Iterable[builtins.float] | None = ...,
        posTissueUmY: collections.abc.Iterable[builtins.float] | None = ...,
        posTissueUmZ: collections.abc.Iterable[builtins.float] | None = ...,
        sensorID: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["compSiteNum", b"compSiteNum", "posProbeUmX", b"posProbeUmX", "posProbeUmY", b"posProbeUmY", "posProbeUmZ", b"posProbeUmZ", "posTissueUmX", b"posTissueUmX", "posTissueUmY", b"posTissueUmY", "posTissueUmZ", b"posTissueUmZ", "sensorID", b"sensorID", "siteIdx", b"siteIdx"]) -> None: ...

global___SignalMap = SignalMap

@typing.final
class GPIOChannelCount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAUX_FIELD_NUMBER: builtins.int
    NDIN_FIELD_NUMBER: builtins.int
    NDOUT_FIELD_NUMBER: builtins.int
    nAux: builtins.int
    nDin: builtins.int
    nDout: builtins.int
    def __init__(
        self,
        *,
        nAux: builtins.int | None = ...,
        nDin: builtins.int | None = ...,
        nDout: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["nAux", b"nAux", "nDin", b"nDin", "nDout", b"nDout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["nAux", b"nAux", "nDin", b"nDin", "nDout", b"nDout"]) -> None: ...

global___GPIOChannelCount = GPIOChannelCount

@typing.final
class PortChannelCount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PORT_FIELD_NUMBER: builtins.int
    CHANNELCOUNT_FIELD_NUMBER: builtins.int
    port: global___Port.ValueType
    channelCount: builtins.int
    def __init__(
        self,
        *,
        port: global___Port.ValueType | None = ...,
        channelCount: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["channelCount", b"channelCount", "port", b"port"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channelCount", b"channelCount", "port", b"port"]) -> None: ...

global___PortChannelCount = PortChannelCount

@typing.final
class SetPortRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PORT_FIELD_NUMBER: builtins.int
    PROBEUID_FIELD_NUMBER: builtins.int
    HSTAGEUID_FIELD_NUMBER: builtins.int
    port: global___Port.ValueType
    probeUID: builtins.str
    hstageUID: builtins.str
    def __init__(
        self,
        *,
        port: global___Port.ValueType | None = ...,
        probeUID: builtins.str | None = ...,
        hstageUID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["hstageUID", b"hstageUID", "port", b"port", "probeUID", b"probeUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["hstageUID", b"hstageUID", "port", b"port", "probeUID", b"probeUID"]) -> None: ...

global___SetPortRequest = SetPortRequest

@typing.final
class HDSnapshotRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SelectedSignals(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NTVCHANIDXS_FIELD_NUMBER: builtins.int
        @property
        def ntvChanIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
        def __init__(
            self,
            *,
            ntvChanIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["ntvChanIdxs", b"ntvChanIdxs"]) -> None: ...

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    PRISIGNALS_FIELD_NUMBER: builtins.int
    AUXSIGNALS_FIELD_NUMBER: builtins.int
    DINSIGNALS_FIELD_NUMBER: builtins.int
    DOUTSIGNALS_FIELD_NUMBER: builtins.int
    ISNOTAPPLYDSPSTAGE2_FIELD_NUMBER: builtins.int
    COMPONENTID_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    isNotApplyDSPstage2: builtins.bool
    componentID: builtins.str
    @property
    def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def priSignals(self) -> global___HDSnapshotRequest.SelectedSignals: ...
    @property
    def auxSignals(self) -> global___HDSnapshotRequest.SelectedSignals: ...
    @property
    def dinSignals(self) -> global___HDSnapshotRequest.SelectedSignals: ...
    @property
    def doutSignals(self) -> global___HDSnapshotRequest.SelectedSignals: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        timeRange: collections.abc.Iterable[builtins.float] | None = ...,
        priSignals: global___HDSnapshotRequest.SelectedSignals | None = ...,
        auxSignals: global___HDSnapshotRequest.SelectedSignals | None = ...,
        dinSignals: global___HDSnapshotRequest.SelectedSignals | None = ...,
        doutSignals: global___HDSnapshotRequest.SelectedSignals | None = ...,
        isNotApplyDSPstage2: builtins.bool | None = ...,
        componentID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["auxSignals", b"auxSignals", "componentID", b"componentID", "dinSignals", b"dinSignals", "doutSignals", b"doutSignals", "isNotApplyDSPstage2", b"isNotApplyDSPstage2", "priSignals", b"priSignals", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["auxSignals", b"auxSignals", "componentID", b"componentID", "dinSignals", b"dinSignals", "doutSignals", b"doutSignals", "isNotApplyDSPstage2", b"isNotApplyDSPstage2", "priSignals", b"priSignals", "streamGroupId", b"streamGroupId", "timeRange", b"timeRange"]) -> None: ...

global___HDSnapshotRequest = HDSnapshotRequest

@typing.final
class HDSnapshotRequest2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    SELMODE_FIELD_NUMBER: builtins.int
    SIGSEL_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    selMode: global___TimeRangeSelMode.ValueType
    @property
    def tR(self) -> global___TimeRange: ...
    @property
    def sigSel(self) -> global___SigSelector: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        tR: global___TimeRange | None = ...,
        selMode: global___TimeRangeSelMode.ValueType | None = ...,
        sigSel: global___SigSelector | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "selMode", b"selMode", "sigSel", b"sigSel", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "selMode", b"selMode", "sigSel", b"sigSel", "tR", b"tR"]) -> None: ...

global___HDSnapshotRequest2 = HDSnapshotRequest2

@typing.final
class RadiensPyGraphicsArgs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GRAPHICSID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    FIGSIZE_FIELD_NUMBER: builtins.int
    graphicsID: builtins.str
    source: builtins.str
    @property
    def figSize(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        graphicsID: builtins.str | None = ...,
        source: builtins.str | None = ...,
        figSize: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["graphicsID", b"graphicsID", "source", b"source"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["figSize", b"figSize", "graphicsID", b"graphicsID", "source", b"source"]) -> None: ...

global___RadiensPyGraphicsArgs = RadiensPyGraphicsArgs

@typing.final
class PSDRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    SELMODE_FIELD_NUMBER: builtins.int
    STYPE_FIELD_NUMBER: builtins.int
    NTVIDXS_FIELD_NUMBER: builtins.int
    RESAMPLEFS_FIELD_NUMBER: builtins.int
    WDWTYPE_FIELD_NUMBER: builtins.int
    SCALING_FIELD_NUMBER: builtins.int
    FREQRANGE_FIELD_NUMBER: builtins.int
    COLLAPSEFREQ_FIELD_NUMBER: builtins.int
    DELTAFREQ_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    ISRETURNPSD_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    selMode: global___TimeRangeSelMode.ValueType
    stype: global___SignalType.ValueType
    resampleFs: builtins.float
    wdwType: global___PSDWindowType.ValueType
    scaling: global___PSDScaling.ValueType
    collapseFreq: builtins.bool
    deltaFreq: builtins.float
    path: builtins.str
    isReturnPSD: builtins.bool
    @property
    def tR(self) -> global___TimeRange: ...
    @property
    def ntvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def freqRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        tR: global___TimeRange | None = ...,
        selMode: global___TimeRangeSelMode.ValueType | None = ...,
        stype: global___SignalType.ValueType | None = ...,
        ntvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        resampleFs: builtins.float | None = ...,
        wdwType: global___PSDWindowType.ValueType | None = ...,
        scaling: global___PSDScaling.ValueType | None = ...,
        freqRange: collections.abc.Iterable[builtins.float] | None = ...,
        collapseFreq: builtins.bool | None = ...,
        deltaFreq: builtins.float | None = ...,
        path: builtins.str | None = ...,
        isReturnPSD: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["collapseFreq", b"collapseFreq", "deltaFreq", b"deltaFreq", "dsourceID", b"dsourceID", "isReturnPSD", b"isReturnPSD", "path", b"path", "resampleFs", b"resampleFs", "scaling", b"scaling", "selMode", b"selMode", "stype", b"stype", "tR", b"tR", "wdwType", b"wdwType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["collapseFreq", b"collapseFreq", "deltaFreq", b"deltaFreq", "dsourceID", b"dsourceID", "freqRange", b"freqRange", "isReturnPSD", b"isReturnPSD", "ntvIdxs", b"ntvIdxs", "path", b"path", "resampleFs", b"resampleFs", "scaling", b"scaling", "selMode", b"selMode", "stype", b"stype", "tR", b"tR", "wdwType", b"wdwType"]) -> None: ...

global___PSDRequest = PSDRequest

@typing.final
class PSD(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    SG_FIELD_NUMBER: builtins.int
    STYPE_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    PSD_FIELD_NUMBER: builtins.int
    FREQ_FIELD_NUMBER: builtins.int
    FREQBINWIDTH_FIELD_NUMBER: builtins.int
    FREQRANGE_FIELD_NUMBER: builtins.int
    WDWTYPE_FIELD_NUMBER: builtins.int
    SCALING_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    stype: global___SignalType.ValueType
    freqBinWidth: builtins.float
    wdwType: global___PSDWindowType.ValueType
    scaling: global___PSDScaling.ValueType
    @property
    def sG(self) -> global___SignalGroup: ...
    @property
    def tR(self) -> global___TimeRange: ...
    @property
    def psd(self) -> global___DenseMatrix: ...
    @property
    def freq(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def freqRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        sG: global___SignalGroup | None = ...,
        stype: global___SignalType.ValueType | None = ...,
        tR: global___TimeRange | None = ...,
        psd: global___DenseMatrix | None = ...,
        freq: collections.abc.Iterable[builtins.float] | None = ...,
        freqBinWidth: builtins.float | None = ...,
        freqRange: collections.abc.Iterable[builtins.float] | None = ...,
        wdwType: global___PSDWindowType.ValueType | None = ...,
        scaling: global___PSDScaling.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "freqBinWidth", b"freqBinWidth", "psd", b"psd", "sG", b"sG", "scaling", b"scaling", "stype", b"stype", "tR", b"tR", "wdwType", b"wdwType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "freq", b"freq", "freqBinWidth", b"freqBinWidth", "freqRange", b"freqRange", "psd", b"psd", "sG", b"sG", "scaling", b"scaling", "stype", b"stype", "tR", b"tR", "wdwType", b"wdwType"]) -> None: ...

global___PSD = PSD

@typing.final
class RadiensPyGraphicsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PSDDATA_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def psdData(self) -> global___PSD: ...
    @property
    def args(self) -> global___RadiensPyGraphicsArgs: ...
    def __init__(
        self,
        *,
        psdData: global___PSD | None = ...,
        args: global___RadiensPyGraphicsArgs | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["args", b"args", "psdData", b"psdData"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["args", b"args", "psdData", b"psdData"]) -> None: ...

global___RadiensPyGraphicsRequest = RadiensPyGraphicsRequest

@typing.final
class SigSelector(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AMPNTVIDXS_FIELD_NUMBER: builtins.int
    AINNTVIDXS_FIELD_NUMBER: builtins.int
    DINNTVIDXS_FIELD_NUMBER: builtins.int
    DOUTNTVIDXS_FIELD_NUMBER: builtins.int
    @property
    def ampNtvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def ainNtvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def dinNtvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def doutNtvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        ampNtvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        ainNtvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        dinNtvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        doutNtvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["ainNtvIdxs", b"ainNtvIdxs", "ampNtvIdxs", b"ampNtvIdxs", "dinNtvIdxs", b"dinNtvIdxs", "doutNtvIdxs", b"doutNtvIdxs"]) -> None: ...

global___SigSelector = SigSelector

@typing.final
class HDSnapshotMeta(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GLOBALMIN_FIELD_NUMBER: builtins.int
    GLOBALMAX_FIELD_NUMBER: builtins.int
    SIGGROUP_FIELD_NUMBER: builtins.int
    globalMin: builtins.float
    globalMax: builtins.float
    @property
    def sigGroup(self) -> global___SignalGroup: ...
    def __init__(
        self,
        *,
        globalMin: builtins.float | None = ...,
        globalMax: builtins.float | None = ...,
        sigGroup: global___SignalGroup | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["globalMax", b"globalMax", "globalMin", b"globalMin", "sigGroup", b"sigGroup"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["globalMax", b"globalMax", "globalMin", b"globalMin", "sigGroup", b"sigGroup"]) -> None: ...

global___HDSnapshotMeta = HDSnapshotMeta

@typing.final
class HDSnapshot(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    META_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    TIMESAMPLES_FIELD_NUMBER: builtins.int
    SIGNALS_FIELD_NUMBER: builtins.int
    PRISIGNALS_FIELD_NUMBER: builtins.int
    AUXSIGNALS_FIELD_NUMBER: builtins.int
    DINSIGNALS_FIELD_NUMBER: builtins.int
    DOUTSIGNALS_FIELD_NUMBER: builtins.int
    sampFreq: builtins.float
    timeSamples: builtins.bytes
    """float64"""
    @property
    def meta(self) -> global___HDSnapshotMeta: ...
    @property
    def signals(self) -> global___RawSignals: ...
    @property
    def priSignals(self) -> global___RawSignals:
        """set if corresponding field set in HDSnapshotRequest"""

    @property
    def auxSignals(self) -> global___RawSignals:
        """ibid"""

    @property
    def dinSignals(self) -> global___RawSignals:
        """ibid"""

    @property
    def doutSignals(self) -> global___RawSignals:
        """ibid"""

    def __init__(
        self,
        *,
        meta: global___HDSnapshotMeta | None = ...,
        sampFreq: builtins.float | None = ...,
        timeSamples: builtins.bytes | None = ...,
        signals: global___RawSignals | None = ...,
        priSignals: global___RawSignals | None = ...,
        auxSignals: global___RawSignals | None = ...,
        dinSignals: global___RawSignals | None = ...,
        doutSignals: global___RawSignals | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["auxSignals", b"auxSignals", "dinSignals", b"dinSignals", "doutSignals", b"doutSignals", "meta", b"meta", "priSignals", b"priSignals", "sampFreq", b"sampFreq", "signals", b"signals", "timeSamples", b"timeSamples"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["auxSignals", b"auxSignals", "dinSignals", b"dinSignals", "doutSignals", b"doutSignals", "meta", b"meta", "priSignals", b"priSignals", "sampFreq", b"sampFreq", "signals", b"signals", "timeSamples", b"timeSamples"]) -> None: ...

global___HDSnapshot = HDSnapshot

@typing.final
class HDSnapshot2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    SIGS_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    @property
    def sigs(self) -> global___Signals2: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        sigs: global___Signals2 | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "sigs", b"sigs"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "sigs", b"sigs"]) -> None: ...

global___HDSnapshot2 = HDSnapshot2

@typing.final
class GetSignalsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class GetSigsParams(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        TIMERANGE_FIELD_NUMBER: builtins.int
        WDWSEC_FIELD_NUMBER: builtins.int
        CHANHEIGHTPX_FIELD_NUMBER: builtins.int
        AMPFSRUV_FIELD_NUMBER: builtins.int
        PLOTWIDTHPOINTS_FIELD_NUMBER: builtins.int
        GPIOONTOP_FIELD_NUMBER: builtins.int
        AINFSRV_FIELD_NUMBER: builtins.int
        COMPONENTID_FIELD_NUMBER: builtins.int
        AMPRESAMPLETYPE_FIELD_NUMBER: builtins.int
        ISHEATMAP_FIELD_NUMBER: builtins.int
        ISNOTAPPLYDSPSTAGE2_FIELD_NUMBER: builtins.int
        CLIPTORANGE_FIELD_NUMBER: builtins.int
        BANDPASSLOWFREQ_FIELD_NUMBER: builtins.int
        BANDPASSHIGHFREQ_FIELD_NUMBER: builtins.int
        NTVCHANIDX_FIELD_NUMBER: builtins.int
        SIGTYPE_FIELD_NUMBER: builtins.int
        AINRESAMPLETYPE_FIELD_NUMBER: builtins.int
        DINRESAMPLETYPE_FIELD_NUMBER: builtins.int
        DOUTRESAMPLETYPE_FIELD_NUMBER: builtins.int
        wdwSec: builtins.float
        """time base [sec]"""
        chanHeightPx: builtins.float
        """channel height (pixels)"""
        ampFsrUv: builtins.float
        """magnitude = channel height / full scale range [uV]"""
        plotWidthPoints: builtins.float
        gpioOnTop: builtins.bool
        ainFsrV: builtins.float
        componentID: builtins.str
        ampResampleType: global___ResampleRoutine.ValueType
        isHeatmap: builtins.bool
        isNotApplyDSPstage2: builtins.bool
        clipToRange: builtins.bool
        """clip the signals at the Fsr points"""
        bandpassLowFreq: builtins.float
        """optionally specify an additional viz bandpass filter for this tab"""
        bandpassHighFreq: builtins.float
        """only
        optionally specify an additional viz bandpass filter for this tab
        """
        ntvChanIdx: builtins.float
        """only
        optionally specify a single channel to grab, instead of
        """
        sigType: global___SignalType.ValueType
        """using the full signal group. For Scope Popout
        signal type of the single channel to
        """
        ainResampleType: global___ResampleRoutine.ValueType
        """grab. must be set if ntvChanIdx is set."""
        dinResampleType: global___ResampleRoutine.ValueType
        doutResampleType: global___ResampleRoutine.ValueType
        @property
        def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        def __init__(
            self,
            *,
            timeRange: collections.abc.Iterable[builtins.float] | None = ...,
            wdwSec: builtins.float | None = ...,
            chanHeightPx: builtins.float | None = ...,
            ampFsrUv: builtins.float | None = ...,
            plotWidthPoints: builtins.float | None = ...,
            gpioOnTop: builtins.bool | None = ...,
            ainFsrV: builtins.float | None = ...,
            componentID: builtins.str | None = ...,
            ampResampleType: global___ResampleRoutine.ValueType | None = ...,
            isHeatmap: builtins.bool | None = ...,
            isNotApplyDSPstage2: builtins.bool | None = ...,
            clipToRange: builtins.bool | None = ...,
            bandpassLowFreq: builtins.float | None = ...,
            bandpassHighFreq: builtins.float | None = ...,
            ntvChanIdx: builtins.float | None = ...,
            sigType: global___SignalType.ValueType | None = ...,
            ainResampleType: global___ResampleRoutine.ValueType | None = ...,
            dinResampleType: global___ResampleRoutine.ValueType | None = ...,
            doutResampleType: global___ResampleRoutine.ValueType | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["ainFsrV", b"ainFsrV", "ainResampleType", b"ainResampleType", "ampFsrUv", b"ampFsrUv", "ampResampleType", b"ampResampleType", "bandpassHighFreq", b"bandpassHighFreq", "bandpassLowFreq", b"bandpassLowFreq", "chanHeightPx", b"chanHeightPx", "clipToRange", b"clipToRange", "componentID", b"componentID", "dinResampleType", b"dinResampleType", "doutResampleType", b"doutResampleType", "gpioOnTop", b"gpioOnTop", "isHeatmap", b"isHeatmap", "isNotApplyDSPstage2", b"isNotApplyDSPstage2", "ntvChanIdx", b"ntvChanIdx", "plotWidthPoints", b"plotWidthPoints", "sigType", b"sigType", "wdwSec", b"wdwSec"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["ainFsrV", b"ainFsrV", "ainResampleType", b"ainResampleType", "ampFsrUv", b"ampFsrUv", "ampResampleType", b"ampResampleType", "bandpassHighFreq", b"bandpassHighFreq", "bandpassLowFreq", b"bandpassLowFreq", "chanHeightPx", b"chanHeightPx", "clipToRange", b"clipToRange", "componentID", b"componentID", "dinResampleType", b"dinResampleType", "doutResampleType", b"doutResampleType", "gpioOnTop", b"gpioOnTop", "isHeatmap", b"isHeatmap", "isNotApplyDSPstage2", b"isNotApplyDSPstage2", "ntvChanIdx", b"ntvChanIdx", "plotWidthPoints", b"plotWidthPoints", "sigType", b"sigType", "timeRange", b"timeRange", "wdwSec", b"wdwSec"]) -> None: ...

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    @property
    def params(self) -> global___GetSignalsRequest.GetSigsParams: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        params: global___GetSignalsRequest.GetSigsParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["params", b"params", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["params", b"params", "streamGroupId", b"streamGroupId"]) -> None: ...

global___GetSignalsRequest = GetSignalsRequest

@typing.final
class RawSignals(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SHAPE_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    """float32"""
    @property
    def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        shape: collections.abc.Iterable[builtins.int] | None = ...,
        timeRange: collections.abc.Iterable[builtins.float] | None = ...,
        data: builtins.bytes | None = ...,
        tR: global___TimeRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data", b"data", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "shape", b"shape", "tR", b"tR", "timeRange", b"timeRange"]) -> None: ...

global___RawSignals = RawSignals

@typing.final
class Signals2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SG_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    AMP_FIELD_NUMBER: builtins.int
    AIN_FIELD_NUMBER: builtins.int
    DIN_FIELD_NUMBER: builtins.int
    DOUT_FIELD_NUMBER: builtins.int
    @property
    def sG(self) -> global___SignalGroup: ...
    @property
    def tR(self) -> global___TimeRange: ...
    @property
    def amp(self) -> global___RadixMatrixBytes: ...
    @property
    def ain(self) -> global___RadixMatrixBytes: ...
    @property
    def din(self) -> global___RadixMatrixBytes: ...
    @property
    def dout(self) -> global___RadixMatrixBytes: ...
    def __init__(
        self,
        *,
        sG: global___SignalGroup | None = ...,
        tR: global___TimeRange | None = ...,
        amp: global___RadixMatrixBytes | None = ...,
        ain: global___RadixMatrixBytes | None = ...,
        din: global___RadixMatrixBytes | None = ...,
        dout: global___RadixMatrixBytes | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ain", b"ain", "amp", b"amp", "din", b"din", "dout", b"dout", "sG", b"sG", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["ain", b"ain", "amp", b"amp", "din", b"din", "dout", b"dout", "sG", b"sG", "tR", b"tR"]) -> None: ...

global___Signals2 = Signals2

@typing.final
class ListSensorSpecsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    SHOWOFFLINEDEVICES_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    showOfflineDevices: builtins.bool
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        showOfflineDevices: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["showOfflineDevices", b"showOfflineDevices", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["showOfflineDevices", b"showOfflineDevices", "streamGroupId", b"streamGroupId"]) -> None: ...

global___ListSensorSpecsRequest = ListSensorSpecsRequest

@typing.final
class ListSensorSpecsReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SpecWithChannelCount(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NAME_FIELD_NUMBER: builtins.int
        CHANNELCOUNT_FIELD_NUMBER: builtins.int
        name: builtins.str
        channelCount: builtins.int
        def __init__(
            self,
            *,
            name: builtins.str | None = ...,
            channelCount: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["channelCount", b"channelCount", "name", b"name"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["channelCount", b"channelCount", "name", b"name"]) -> None: ...

    PROBES_FIELD_NUMBER: builtins.int
    HEADSTAGES_FIELD_NUMBER: builtins.int
    PORTS_FIELD_NUMBER: builtins.int
    @property
    def probes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListSensorSpecsReply.SpecWithChannelCount]: ...
    @property
    def headstages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListSensorSpecsReply.SpecWithChannelCount]: ...
    @property
    def ports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PortChannelCount]: ...
    def __init__(
        self,
        *,
        probes: collections.abc.Iterable[global___ListSensorSpecsReply.SpecWithChannelCount] | None = ...,
        headstages: collections.abc.Iterable[global___ListSensorSpecsReply.SpecWithChannelCount] | None = ...,
        ports: collections.abc.Iterable[global___PortChannelCount] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["headstages", b"headstages", "ports", b"ports", "probes", b"probes"]) -> None: ...

global___ListSensorSpecsReply = ListSensorSpecsReply

@typing.final
class ListDataSourcesRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DIRECTORY_FIELD_NUMBER: builtins.int
    SORTBY_FIELD_NUMBER: builtins.int
    DIRLIST_FIELD_NUMBER: builtins.int
    directory: builtins.str
    sortBy: global___DataSourceSort.ValueType
    @property
    def dirList(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        directory: builtins.str | None = ...,
        sortBy: global___DataSourceSort.ValueType | None = ...,
        dirList: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["directory", b"directory", "sortBy", b"sortBy"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dirList", b"dirList", "directory", b"directory", "sortBy", b"sortBy"]) -> None: ...

global___ListDataSourcesRequest = ListDataSourcesRequest

@typing.final
class SortMap(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SORTERIDS_FIELD_NUMBER: builtins.int
    @property
    def sorterIds(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        sorterIds: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sorterIds", b"sorterIds"]) -> None: ...

global___SortMap = SortMap

@typing.final
class GetSignalGroupIDsReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTINUOUS_FIELD_NUMBER: builtins.int
    DISCRETE_FIELD_NUMBER: builtins.int
    @property
    def continuous(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def discrete(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        continuous: collections.abc.Iterable[builtins.str] | None = ...,
        discrete: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["continuous", b"continuous", "discrete", b"discrete"]) -> None: ...

global___GetSignalGroupIDsReply = GetSignalGroupIDsReply

@typing.final
class GetSorterIDMapReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SigToSortMapEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___SortMap: ...
        def __init__(
            self,
            *,
            key: builtins.str | None = ...,
            value: global___SortMap | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    SIGTOSORTMAP_FIELD_NUMBER: builtins.int
    @property
    def sigToSortMap(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___SortMap]: ...
    def __init__(
        self,
        *,
        sigToSortMap: collections.abc.Mapping[builtins.str, global___SortMap] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sigToSortMap", b"sigToSortMap"]) -> None: ...

global___GetSorterIDMapReply = GetSorterIDMapReply

@typing.final
class DataSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DATE_FIELD_NUMBER: builtins.int
    DURATIONSECONDS_FIELD_NUMBER: builtins.int
    DURATIONMINUTES_FIELD_NUMBER: builtins.int
    DURATIONHOURS_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    NUMSIGNALS_FIELD_NUMBER: builtins.int
    name: builtins.str
    date: builtins.str
    durationSeconds: builtins.float
    durationMinutes: builtins.float
    durationHours: builtins.float
    fileType: global___RadixFileTypes.ValueType
    numSignals: builtins.int
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        date: builtins.str | None = ...,
        durationSeconds: builtins.float | None = ...,
        durationMinutes: builtins.float | None = ...,
        durationHours: builtins.float | None = ...,
        fileType: global___RadixFileTypes.ValueType | None = ...,
        numSignals: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["date", b"date", "durationHours", b"durationHours", "durationMinutes", b"durationMinutes", "durationSeconds", b"durationSeconds", "fileType", b"fileType", "name", b"name", "numSignals", b"numSignals"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["date", b"date", "durationHours", b"durationHours", "durationMinutes", b"durationMinutes", "durationSeconds", b"durationSeconds", "fileType", b"fileType", "name", b"name", "numSignals", b"numSignals"]) -> None: ...

global___DataSource = DataSource

@typing.final
class FileDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PATH_FIELD_NUMBER: builtins.int
    BASENAME_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    FILENAMEUID_FIELD_NUMBER: builtins.int
    ISLIVERECORDING_FIELD_NUMBER: builtins.int
    path: builtins.str
    baseName: builtins.str
    fileType: global___RadixFileTypes.ValueType
    fileNameUID: builtins.str
    isLiveRecording: builtins.bool
    def __init__(
        self,
        *,
        path: builtins.str | None = ...,
        baseName: builtins.str | None = ...,
        fileType: global___RadixFileTypes.ValueType | None = ...,
        fileNameUID: builtins.str | None = ...,
        isLiveRecording: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["baseName", b"baseName", "fileNameUID", b"fileNameUID", "fileType", b"fileType", "isLiveRecording", b"isLiveRecording", "path", b"path"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["baseName", b"baseName", "fileNameUID", b"fileNameUID", "fileType", b"fileType", "isLiveRecording", b"isLiveRecording", "path", b"path"]) -> None: ...

global___FileDescriptor = FileDescriptor

@typing.final
class TimeSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class TimeRangeL(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        TIMERANGE_FIELD_NUMBER: builtins.int
        @property
        def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        def __init__(
            self,
            *,
            timeRange: collections.abc.Iterable[builtins.float] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["timeRange", b"timeRange"]) -> None: ...

    @typing.final
    class TimestampRangeL(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
        @property
        def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
        def __init__(
            self,
            *,
            timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["timestampRange", b"timestampRange"]) -> None: ...

    TIMERANGE_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    @property
    def timeRange(self) -> global___TimeSpec.TimeRangeL: ...
    @property
    def timestampRange(self) -> global___TimeSpec.TimestampRangeL: ...
    def __init__(
        self,
        *,
        timeRange: global___TimeSpec.TimeRangeL | None = ...,
        timestampRange: global___TimeSpec.TimestampRangeL | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["timeDesc", b"timeDesc", "timeRange", b"timeRange", "timestampRange", b"timestampRange"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["timeDesc", b"timeDesc", "timeRange", b"timeRange", "timestampRange", b"timestampRange"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["timeDesc", b"timeDesc"]) -> typing.Literal["timeRange", "timestampRange"] | None: ...

global___TimeSpec = TimeSpec

@typing.final
class SignalSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SiteNumL(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        SITENUM_FIELD_NUMBER: builtins.int
        @property
        def siteNum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
        def __init__(
            self,
            *,
            siteNum: collections.abc.Iterable[builtins.int] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["siteNum", b"siteNum"]) -> None: ...

    @typing.final
    class NtvChanIdxL(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NTVCHANIDX_FIELD_NUMBER: builtins.int
        @property
        def ntvChanIdx(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
        def __init__(
            self,
            *,
            ntvChanIdx: collections.abc.Iterable[builtins.int] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["ntvChanIdx", b"ntvChanIdx"]) -> None: ...

    SITENUM_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    @property
    def siteNum(self) -> global___SignalSpec.SiteNumL: ...
    @property
    def ntvChanIdx(self) -> global___SignalSpec.NtvChanIdxL: ...
    def __init__(
        self,
        *,
        siteNum: global___SignalSpec.SiteNumL | None = ...,
        ntvChanIdx: global___SignalSpec.NtvChanIdxL | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ntvChanIdx", b"ntvChanIdx", "siteDesc", b"siteDesc", "siteNum", b"siteNum"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["ntvChanIdx", b"ntvChanIdx", "siteDesc", b"siteDesc", "siteNum", b"siteNum"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["siteDesc", b"siteDesc"]) -> typing.Literal["siteNum", "ntvChanIdx"] | None: ...

global___SignalSpec = SignalSpec

@typing.final
class ChannelRecord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHANNAME_FIELD_NUMBER: builtins.int
    CHANTYPE_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    SITENUM_FIELD_NUMBER: builtins.int
    COLORGROUPIDX_FIELD_NUMBER: builtins.int
    ISSELECTED_FIELD_NUMBER: builtins.int
    ISAUDIOLEFT_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    SITESHAPE_FIELD_NUMBER: builtins.int
    SITECTRX_FIELD_NUMBER: builtins.int
    SITECTRY_FIELD_NUMBER: builtins.int
    SITECTRZ_FIELD_NUMBER: builtins.int
    SITELIMXMIN_FIELD_NUMBER: builtins.int
    SITELIMXMAX_FIELD_NUMBER: builtins.int
    SITELIMYMIN_FIELD_NUMBER: builtins.int
    SITELIMYMAX_FIELD_NUMBER: builtins.int
    SITELIMZMIN_FIELD_NUMBER: builtins.int
    SITELIMZMAX_FIELD_NUMBER: builtins.int
    SITECTRTCSX_FIELD_NUMBER: builtins.int
    SITECTRTCSY_FIELD_NUMBER: builtins.int
    SITECTRTCSZ_FIELD_NUMBER: builtins.int
    SENSORUNITS_FIELD_NUMBER: builtins.int
    ABSIDX_FIELD_NUMBER: builtins.int
    ISAUDIORIGHT_FIELD_NUMBER: builtins.int
    SYSCHANIDX_FIELD_NUMBER: builtins.int
    SITEAREAMICRON2_FIELD_NUMBER: builtins.int
    SCSTOTCSX_FIELD_NUMBER: builtins.int
    SCSTOTCSY_FIELD_NUMBER: builtins.int
    SCSTOTCSZ_FIELD_NUMBER: builtins.int
    SENSORID_FIELD_NUMBER: builtins.int
    PROBEID_FIELD_NUMBER: builtins.int
    HEADSTAGEID_FIELD_NUMBER: builtins.int
    DATASETRIDX_FIELD_NUMBER: builtins.int
    DATASETAIDX_FIELD_NUMBER: builtins.int
    NTVCHANNAME_FIELD_NUMBER: builtins.int
    SENSORUID_FIELD_NUMBER: builtins.int
    SENSORIDX_FIELD_NUMBER: builtins.int
    chanName: builtins.str
    chanType: global___SignalType.ValueType
    ntvChanIdx: builtins.int
    siteNum: builtins.int
    colorGroupIdx: builtins.int
    isSelected: builtins.bool
    isAudioLeft: builtins.bool
    port: global___Port.ValueType
    siteShape: builtins.str
    siteCtrX: builtins.float
    siteCtrY: builtins.float
    siteCtrZ: builtins.float
    siteLimXMin: builtins.float
    siteLimXMax: builtins.float
    siteLimYMin: builtins.float
    siteLimYMax: builtins.float
    siteLimZMin: builtins.float
    siteLimZMax: builtins.float
    siteCtrTcsX: builtins.float
    siteCtrTcsY: builtins.float
    siteCtrTcsZ: builtins.float
    sensorUnits: builtins.str
    absIdx: builtins.int
    isAudioRight: builtins.bool
    sysChanIdx: builtins.int
    siteAreaMicron2: builtins.float
    scsToTcsX: builtins.float
    scsToTcsY: builtins.float
    scsToTcsZ: builtins.float
    sensorID: builtins.str
    probeID: builtins.str
    headstageID: builtins.str
    datasetRidx: builtins.int
    datasetAidx: builtins.int
    ntvChanName: builtins.str
    sensorUID: builtins.str
    sensorIdx: builtins.int
    def __init__(
        self,
        *,
        chanName: builtins.str | None = ...,
        chanType: global___SignalType.ValueType | None = ...,
        ntvChanIdx: builtins.int | None = ...,
        siteNum: builtins.int | None = ...,
        colorGroupIdx: builtins.int | None = ...,
        isSelected: builtins.bool | None = ...,
        isAudioLeft: builtins.bool | None = ...,
        port: global___Port.ValueType | None = ...,
        siteShape: builtins.str | None = ...,
        siteCtrX: builtins.float | None = ...,
        siteCtrY: builtins.float | None = ...,
        siteCtrZ: builtins.float | None = ...,
        siteLimXMin: builtins.float | None = ...,
        siteLimXMax: builtins.float | None = ...,
        siteLimYMin: builtins.float | None = ...,
        siteLimYMax: builtins.float | None = ...,
        siteLimZMin: builtins.float | None = ...,
        siteLimZMax: builtins.float | None = ...,
        siteCtrTcsX: builtins.float | None = ...,
        siteCtrTcsY: builtins.float | None = ...,
        siteCtrTcsZ: builtins.float | None = ...,
        sensorUnits: builtins.str | None = ...,
        absIdx: builtins.int | None = ...,
        isAudioRight: builtins.bool | None = ...,
        sysChanIdx: builtins.int | None = ...,
        siteAreaMicron2: builtins.float | None = ...,
        scsToTcsX: builtins.float | None = ...,
        scsToTcsY: builtins.float | None = ...,
        scsToTcsZ: builtins.float | None = ...,
        sensorID: builtins.str | None = ...,
        probeID: builtins.str | None = ...,
        headstageID: builtins.str | None = ...,
        datasetRidx: builtins.int | None = ...,
        datasetAidx: builtins.int | None = ...,
        ntvChanName: builtins.str | None = ...,
        sensorUID: builtins.str | None = ...,
        sensorIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["absIdx", b"absIdx", "chanName", b"chanName", "chanType", b"chanType", "colorGroupIdx", b"colorGroupIdx", "datasetAidx", b"datasetAidx", "datasetRidx", b"datasetRidx", "headstageID", b"headstageID", "isAudioLeft", b"isAudioLeft", "isAudioRight", b"isAudioRight", "isSelected", b"isSelected", "ntvChanIdx", b"ntvChanIdx", "ntvChanName", b"ntvChanName", "port", b"port", "probeID", b"probeID", "scsToTcsX", b"scsToTcsX", "scsToTcsY", b"scsToTcsY", "scsToTcsZ", b"scsToTcsZ", "sensorID", b"sensorID", "sensorIdx", b"sensorIdx", "sensorUID", b"sensorUID", "sensorUnits", b"sensorUnits", "siteAreaMicron2", b"siteAreaMicron2", "siteCtrTcsX", b"siteCtrTcsX", "siteCtrTcsY", b"siteCtrTcsY", "siteCtrTcsZ", b"siteCtrTcsZ", "siteCtrX", b"siteCtrX", "siteCtrY", b"siteCtrY", "siteCtrZ", b"siteCtrZ", "siteLimXMax", b"siteLimXMax", "siteLimXMin", b"siteLimXMin", "siteLimYMax", b"siteLimYMax", "siteLimYMin", b"siteLimYMin", "siteLimZMax", b"siteLimZMax", "siteLimZMin", b"siteLimZMin", "siteNum", b"siteNum", "siteShape", b"siteShape", "sysChanIdx", b"sysChanIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["absIdx", b"absIdx", "chanName", b"chanName", "chanType", b"chanType", "colorGroupIdx", b"colorGroupIdx", "datasetAidx", b"datasetAidx", "datasetRidx", b"datasetRidx", "headstageID", b"headstageID", "isAudioLeft", b"isAudioLeft", "isAudioRight", b"isAudioRight", "isSelected", b"isSelected", "ntvChanIdx", b"ntvChanIdx", "ntvChanName", b"ntvChanName", "port", b"port", "probeID", b"probeID", "scsToTcsX", b"scsToTcsX", "scsToTcsY", b"scsToTcsY", "scsToTcsZ", b"scsToTcsZ", "sensorID", b"sensorID", "sensorIdx", b"sensorIdx", "sensorUID", b"sensorUID", "sensorUnits", b"sensorUnits", "siteAreaMicron2", b"siteAreaMicron2", "siteCtrTcsX", b"siteCtrTcsX", "siteCtrTcsY", b"siteCtrTcsY", "siteCtrTcsZ", b"siteCtrTcsZ", "siteCtrX", b"siteCtrX", "siteCtrY", b"siteCtrY", "siteCtrZ", b"siteCtrZ", "siteLimXMax", b"siteLimXMax", "siteLimXMin", b"siteLimXMin", "siteLimYMax", b"siteLimYMax", "siteLimYMin", b"siteLimYMin", "siteLimZMax", b"siteLimZMax", "siteLimZMin", b"siteLimZMin", "siteNum", b"siteNum", "siteShape", b"siteShape", "sysChanIdx", b"sysChanIdx"]) -> None: ...

global___ChannelRecord = ChannelRecord

@typing.final
class XYCoord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    Y_FIELD_NUMBER: builtins.int
    x: builtins.float
    y: builtins.float
    def __init__(
        self,
        *,
        x: builtins.float | None = ...,
        y: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> None: ...

global___XYCoord = XYCoord

@typing.final
class XYZCoord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    Y_FIELD_NUMBER: builtins.int
    Z_FIELD_NUMBER: builtins.int
    x: builtins.float
    y: builtins.float
    z: builtins.float
    def __init__(
        self,
        *,
        x: builtins.float | None = ...,
        y: builtins.float | None = ...,
        z: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["x", b"x", "y", b"y", "z", b"z"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["x", b"x", "y", b"y", "z", b"z"]) -> None: ...

global___XYZCoord = XYZCoord

@typing.final
class Sensor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class WireFrame(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        VTX_FIELD_NUMBER: builtins.int
        VTXXLIM_FIELD_NUMBER: builtins.int
        VTXYLIM_FIELD_NUMBER: builtins.int
        @property
        def vtx(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___XYCoord]: ...
        @property
        def vtxXlim(self) -> global___XYCoord: ...
        @property
        def vtxYlim(self) -> global___XYCoord: ...
        def __init__(
            self,
            *,
            vtx: collections.abc.Iterable[global___XYCoord] | None = ...,
            vtxXlim: global___XYCoord | None = ...,
            vtxYlim: global___XYCoord | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["vtxXlim", b"vtxXlim", "vtxYlim", b"vtxYlim"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["vtx", b"vtx", "vtxXlim", b"vtxXlim", "vtxYlim", b"vtxYlim"]) -> None: ...

    PROBEID_FIELD_NUMBER: builtins.int
    HEADSTAGEID_FIELD_NUMBER: builtins.int
    WIREFRAME_FIELD_NUMBER: builtins.int
    XMIN_FIELD_NUMBER: builtins.int
    XMAX_FIELD_NUMBER: builtins.int
    YMIN_FIELD_NUMBER: builtins.int
    YMAX_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SENSORUID_FIELD_NUMBER: builtins.int
    CONNECTIONNTVIDX_FIELD_NUMBER: builtins.int
    NUMSITES_FIELD_NUMBER: builtins.int
    SENSORIDX_FIELD_NUMBER: builtins.int
    probeId: builtins.str
    headstageId: builtins.str
    xMin: builtins.float
    xMax: builtins.float
    yMin: builtins.float
    yMax: builtins.float
    sensorUID: builtins.str
    connectionNtvIdx: builtins.int
    numSites: builtins.int
    sensorIdx: builtins.int
    """sensor index on port"""
    @property
    def wireframe(self) -> global___Sensor.WireFrame: ...
    @property
    def position(self) -> global___SensorPositionTcs: ...
    def __init__(
        self,
        *,
        probeId: builtins.str | None = ...,
        headstageId: builtins.str | None = ...,
        wireframe: global___Sensor.WireFrame | None = ...,
        xMin: builtins.float | None = ...,
        xMax: builtins.float | None = ...,
        yMin: builtins.float | None = ...,
        yMax: builtins.float | None = ...,
        position: global___SensorPositionTcs | None = ...,
        sensorUID: builtins.str | None = ...,
        connectionNtvIdx: builtins.int | None = ...,
        numSites: builtins.int | None = ...,
        sensorIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numSites", b"numSites", "position", b"position", "probeId", b"probeId", "sensorIdx", b"sensorIdx", "sensorUID", b"sensorUID", "wireframe", b"wireframe", "xMax", b"xMax", "xMin", b"xMin", "yMax", b"yMax", "yMin", b"yMin"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numSites", b"numSites", "position", b"position", "probeId", b"probeId", "sensorIdx", b"sensorIdx", "sensorUID", b"sensorUID", "wireframe", b"wireframe", "xMax", b"xMax", "xMin", b"xMin", "yMax", b"yMax", "yMin", b"yMin"]) -> None: ...

global___Sensor = Sensor

@typing.final
class SensorPortSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENSORA_FIELD_NUMBER: builtins.int
    SENSORB_FIELD_NUMBER: builtins.int
    SENSORC_FIELD_NUMBER: builtins.int
    SENSORD_FIELD_NUMBER: builtins.int
    SENSORE_FIELD_NUMBER: builtins.int
    SENSORF_FIELD_NUMBER: builtins.int
    SENSORG_FIELD_NUMBER: builtins.int
    SENSORH_FIELD_NUMBER: builtins.int
    @property
    def sensorA(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorB(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorC(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorD(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorE(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorF(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorG(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    @property
    def sensorH(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sensor]: ...
    def __init__(
        self,
        *,
        sensorA: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorB: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorC: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorD: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorE: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorF: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorG: collections.abc.Iterable[global___Sensor] | None = ...,
        sensorH: collections.abc.Iterable[global___Sensor] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sensorA", b"sensorA", "sensorB", b"sensorB", "sensorC", b"sensorC", "sensorD", b"sensorD", "sensorE", b"sensorE", "sensorF", b"sensorF", "sensorG", b"sensorG", "sensorH", b"sensorH"]) -> None: ...

global___SensorPortSpec = SensorPortSpec

@typing.final
class SignalGroupUnits(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class UnitsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.int
        value: builtins.int
        def __init__(
            self,
            *,
            key: builtins.int | None = ...,
            value: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    UNITS_FIELD_NUMBER: builtins.int
    @property
    def units(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.int]: ...
    def __init__(
        self,
        *,
        units: collections.abc.Mapping[builtins.int, builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["units", b"units"]) -> None: ...

global___SignalGroupUnits = SignalGroupUnits

@typing.final
class SignalGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHANNELS_FIELD_NUMBER: builtins.int
    SENSORPORTSPEC_FIELD_NUMBER: builtins.int
    DATASETUID_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    SOURCELABEL_FIELD_NUMBER: builtins.int
    NEIGHBORMAXRADIUS_FIELD_NUMBER: builtins.int
    SIGNALUNITS_FIELD_NUMBER: builtins.int
    HASDISCRETE_FIELD_NUMBER: builtins.int
    HASCONTINUOUSAMP_FIELD_NUMBER: builtins.int
    datasetUID: builtins.str
    sampFreq: builtins.float
    sourceLabel: builtins.str
    neighborMaxRadius: builtins.float
    hasDiscrete: builtins.bool
    hasContinuousAmp: builtins.bool
    @property
    def channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChannelRecord]: ...
    @property
    def sensorPortSpec(self) -> global___SensorPortSpec: ...
    @property
    def signalUnits(self) -> global___SignalGroupUnits: ...
    def __init__(
        self,
        *,
        channels: collections.abc.Iterable[global___ChannelRecord] | None = ...,
        sensorPortSpec: global___SensorPortSpec | None = ...,
        datasetUID: builtins.str | None = ...,
        sampFreq: builtins.float | None = ...,
        sourceLabel: builtins.str | None = ...,
        neighborMaxRadius: builtins.float | None = ...,
        signalUnits: global___SignalGroupUnits | None = ...,
        hasDiscrete: builtins.bool | None = ...,
        hasContinuousAmp: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["datasetUID", b"datasetUID", "hasContinuousAmp", b"hasContinuousAmp", "hasDiscrete", b"hasDiscrete", "neighborMaxRadius", b"neighborMaxRadius", "sampFreq", b"sampFreq", "sensorPortSpec", b"sensorPortSpec", "signalUnits", b"signalUnits", "sourceLabel", b"sourceLabel"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channels", b"channels", "datasetUID", b"datasetUID", "hasContinuousAmp", b"hasContinuousAmp", "hasDiscrete", b"hasDiscrete", "neighborMaxRadius", b"neighborMaxRadius", "sampFreq", b"sampFreq", "sensorPortSpec", b"sensorPortSpec", "signalUnits", b"signalUnits", "sourceLabel", b"sourceLabel"]) -> None: ...

global___SignalGroup = SignalGroup

@typing.final
class CreateSignalGroupRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATASOURCENAME_FIELD_NUMBER: builtins.int
    DATASOURCEPATH_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    STREAMGROUPID_FIELD_NUMBER: builtins.int
    dataSourceName: builtins.str
    dataSourcePath: builtins.str
    type: global___RadixFileTypes.ValueType
    streamGroupId: builtins.str
    def __init__(
        self,
        *,
        dataSourceName: builtins.str | None = ...,
        dataSourcePath: builtins.str | None = ...,
        type: global___RadixFileTypes.ValueType | None = ...,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dataSourceName", b"dataSourceName", "dataSourcePath", b"dataSourcePath", "streamGroupId", b"streamGroupId", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dataSourceName", b"dataSourceName", "dataSourcePath", b"dataSourcePath", "streamGroupId", b"streamGroupId", "type", b"type"]) -> None: ...

global___CreateSignalGroupRequest = CreateSignalGroupRequest

@typing.final
class SubOpSort(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _SortField:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _SortFieldEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SubOpSort._SortField.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        SITE_CTR_X: SubOpSort._SortField.ValueType  # 0
        SITE_CTR_Y: SubOpSort._SortField.ValueType  # 1
        SITE_CTR_Z: SubOpSort._SortField.ValueType  # 2

    class SortField(_SortField, metaclass=_SortFieldEnumTypeWrapper): ...
    SITE_CTR_X: SubOpSort.SortField.ValueType  # 0
    SITE_CTR_Y: SubOpSort.SortField.ValueType  # 1
    SITE_CTR_Z: SubOpSort.SortField.ValueType  # 2

    SORT_FIELD_NUMBER: builtins.int
    @property
    def sort(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___SubOpSort.SortField.ValueType]: ...
    def __init__(
        self,
        *,
        sort: collections.abc.Iterable[global___SubOpSort.SortField.ValueType] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sort", b"sort"]) -> None: ...

global___SubOpSort = SubOpSort

@typing.final
class UpdateSignalGroupRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _Operation:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _OperationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[UpdateSignalGroupRequest._Operation.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        COLOR: UpdateSignalGroupRequest._Operation.ValueType  # 0
        SELECT: UpdateSignalGroupRequest._Operation.ValueType  # 1
        DEPRECATED_AUDIO: UpdateSignalGroupRequest._Operation.ValueType  # 2
        SORT: UpdateSignalGroupRequest._Operation.ValueType  # 3

    class Operation(_Operation, metaclass=_OperationEnumTypeWrapper): ...
    COLOR: UpdateSignalGroupRequest.Operation.ValueType  # 0
    SELECT: UpdateSignalGroupRequest.Operation.ValueType  # 1
    DEPRECATED_AUDIO: UpdateSignalGroupRequest.Operation.ValueType  # 2
    SORT: UpdateSignalGroupRequest.Operation.ValueType  # 3

    class _SubOperation:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _SubOperationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[UpdateSignalGroupRequest._SubOperation.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        ADD: UpdateSignalGroupRequest._SubOperation.ValueType  # 0
        REMOVE: UpdateSignalGroupRequest._SubOperation.ValueType  # 1

    class SubOperation(_SubOperation, metaclass=_SubOperationEnumTypeWrapper): ...
    ADD: UpdateSignalGroupRequest.SubOperation.ValueType  # 0
    REMOVE: UpdateSignalGroupRequest.SubOperation.ValueType  # 1

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    OPERATION_FIELD_NUMBER: builtins.int
    ADDREMOVE_FIELD_NUMBER: builtins.int
    SORTOP_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    SIGNALTYPE_FIELD_NUMBER: builtins.int
    PROPAGATE_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    operation: global___UpdateSignalGroupRequest.Operation.ValueType
    addRemove: global___UpdateSignalGroupRequest.SubOperation.ValueType
    signalType: global___SignalType.ValueType
    propagate: builtins.bool
    @property
    def sortOp(self) -> global___SubOpSort: ...
    @property
    def ntvChanIdx(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        operation: global___UpdateSignalGroupRequest.Operation.ValueType | None = ...,
        addRemove: global___UpdateSignalGroupRequest.SubOperation.ValueType | None = ...,
        sortOp: global___SubOpSort | None = ...,
        ntvChanIdx: collections.abc.Iterable[builtins.int] | None = ...,
        signalType: global___SignalType.ValueType | None = ...,
        propagate: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["addRemove", b"addRemove", "operation", b"operation", "propagate", b"propagate", "signalType", b"signalType", "sortOp", b"sortOp", "streamGroupId", b"streamGroupId", "subOperation", b"subOperation"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["addRemove", b"addRemove", "ntvChanIdx", b"ntvChanIdx", "operation", b"operation", "propagate", b"propagate", "signalType", b"signalType", "sortOp", b"sortOp", "streamGroupId", b"streamGroupId", "subOperation", b"subOperation"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["subOperation", b"subOperation"]) -> typing.Literal["addRemove", "sortOp"] | None: ...

global___UpdateSignalGroupRequest = UpdateSignalGroupRequest

@typing.final
class SliceSignalGroupSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SORTBY_FIELD_NUMBER: builtins.int
    DELIM_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    sortBy: builtins.str
    """comma delimited"""
    delim: builtins.str
    """comma delimited"""
    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        sortBy: builtins.str | None = ...,
        delim: builtins.str | None = ...,
        tR: global___TimeRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["delim", b"delim", "sortBy", b"sortBy", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["delim", b"delim", "sortBy", b"sortBy", "tR", b"tR"]) -> None: ...

global___SliceSignalGroupSpec = SliceSignalGroupSpec

@typing.final
class SliceSignalGroupRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    @property
    def spec(self) -> global___SliceSignalGroupSpec: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        spec: global___SliceSignalGroupSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "spec", b"spec"]) -> None: ...

global___SliceSignalGroupRequest = SliceSignalGroupRequest

@typing.final
class SliceSignalGroupReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    SG_FIELD_NUMBER: builtins.int
    OUTCOME_FIELD_NUMBER: builtins.int
    dsourceID: builtins.str
    outcome: builtins.str
    @property
    def spec(self) -> global___SliceSignalGroupSpec: ...
    @property
    def sG(self) -> global___SignalGroup: ...
    def __init__(
        self,
        *,
        dsourceID: builtins.str | None = ...,
        spec: global___SliceSignalGroupSpec | None = ...,
        sG: global___SignalGroup | None = ...,
        outcome: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "outcome", b"outcome", "sG", b"sG", "spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID", "outcome", b"outcome", "sG", b"sG", "spec", b"spec"]) -> None: ...

global___SliceSignalGroupReply = SliceSignalGroupReply

@typing.final
class LicenseStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___LicenseStatus = LicenseStatus

@typing.final
class SetDSPGroupRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    STAGE_FIELD_NUMBER: builtins.int
    DSPPARAMS_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    stage: global___FilterStage.ValueType
    @property
    def dspParams(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DSPParams]: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        stage: global___FilterStage.ValueType | None = ...,
        dspParams: collections.abc.Iterable[global___DSPParams] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["stage", b"stage", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dspParams", b"dspParams", "stage", b"stage", "streamGroupId", b"streamGroupId"]) -> None: ...

global___SetDSPGroupRequest = SetDSPGroupRequest

@typing.final
class DSPParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class FreqSpecBand(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        LOWFREQ_FIELD_NUMBER: builtins.int
        HIGHFREQ_FIELD_NUMBER: builtins.int
        lowFreq: builtins.float
        highFreq: builtins.float
        def __init__(
            self,
            *,
            lowFreq: builtins.float | None = ...,
            highFreq: builtins.float | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["highFreq", b"highFreq", "lowFreq", b"lowFreq"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["highFreq", b"highFreq", "lowFreq", b"lowFreq"]) -> None: ...

    TYPE_FIELD_NUMBER: builtins.int
    STAGE_FIELD_NUMBER: builtins.int
    FREQ_FIELD_NUMBER: builtins.int
    FREQSPECBAND_FIELD_NUMBER: builtins.int
    REFNTVCHANIDX_FIELD_NUMBER: builtins.int
    NOTCHBANDWIDTH_FIELD_NUMBER: builtins.int
    USERLABEL_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    TARGETNTVCHANIDX_FIELD_NUMBER: builtins.int
    ISAUX_FIELD_NUMBER: builtins.int
    AUXCHANIDX_FIELD_NUMBER: builtins.int
    FILTERORDER_FIELD_NUMBER: builtins.int
    ZEROPHASE_FIELD_NUMBER: builtins.int
    FORCESOS_FIELD_NUMBER: builtins.int
    type: global___DSPType.ValueType
    stage: global___FilterStage.ValueType
    freq: builtins.float
    refNtvChanIdx: builtins.int
    notchBandwidth: builtins.float
    userLabel: builtins.str
    port: global___Port.ValueType
    targetNtvChanIdx: builtins.float
    isAux: builtins.bool
    auxChanIdx: builtins.int
    filterOrder: builtins.int
    zeroPhase: builtins.bool
    """zero-phase filter"""
    forceSOS: builtins.bool
    """second-order section filter (SOS) - will be set if order > 2"""
    @property
    def freqSpecBand(self) -> global___DSPParams.FreqSpecBand: ...
    def __init__(
        self,
        *,
        type: global___DSPType.ValueType | None = ...,
        stage: global___FilterStage.ValueType | None = ...,
        freq: builtins.float | None = ...,
        freqSpecBand: global___DSPParams.FreqSpecBand | None = ...,
        refNtvChanIdx: builtins.int | None = ...,
        notchBandwidth: builtins.float | None = ...,
        userLabel: builtins.str | None = ...,
        port: global___Port.ValueType | None = ...,
        targetNtvChanIdx: builtins.float | None = ...,
        isAux: builtins.bool | None = ...,
        auxChanIdx: builtins.int | None = ...,
        filterOrder: builtins.int | None = ...,
        zeroPhase: builtins.bool | None = ...,
        forceSOS: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["auxChanIdx", b"auxChanIdx", "filterOrder", b"filterOrder", "forceSOS", b"forceSOS", "freq", b"freq", "freqSpec", b"freqSpec", "freqSpecBand", b"freqSpecBand", "isAux", b"isAux", "notchBandwidth", b"notchBandwidth", "port", b"port", "refNtvChanIdx", b"refNtvChanIdx", "stage", b"stage", "targetNtvChanIdx", b"targetNtvChanIdx", "type", b"type", "userLabel", b"userLabel", "zeroPhase", b"zeroPhase"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["auxChanIdx", b"auxChanIdx", "filterOrder", b"filterOrder", "forceSOS", b"forceSOS", "freq", b"freq", "freqSpec", b"freqSpec", "freqSpecBand", b"freqSpecBand", "isAux", b"isAux", "notchBandwidth", b"notchBandwidth", "port", b"port", "refNtvChanIdx", b"refNtvChanIdx", "stage", b"stage", "targetNtvChanIdx", b"targetNtvChanIdx", "type", b"type", "userLabel", b"userLabel", "zeroPhase", b"zeroPhase"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["freqSpec", b"freqSpec"]) -> typing.Literal["freq", "freqSpecBand", "refNtvChanIdx"] | None: ...

global___DSPParams = DSPParams

@typing.final
class DSPGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HARDWARE_FIELD_NUMBER: builtins.int
    SOFTWARESTAGE1_FIELD_NUMBER: builtins.int
    SOFTWARESTAGE2_FIELD_NUMBER: builtins.int
    SPIKESORTER_FIELD_NUMBER: builtins.int
    @property
    def hardware(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DSPParams]: ...
    @property
    def softwareStage1(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DSPParams]: ...
    @property
    def softwareStage2(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DSPParams]: ...
    @property
    def spikeSorter(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DSPParams]: ...
    def __init__(
        self,
        *,
        hardware: collections.abc.Iterable[global___DSPParams] | None = ...,
        softwareStage1: collections.abc.Iterable[global___DSPParams] | None = ...,
        softwareStage2: collections.abc.Iterable[global___DSPParams] | None = ...,
        spikeSorter: collections.abc.Iterable[global___DSPParams] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["hardware", b"hardware", "softwareStage1", b"softwareStage1", "softwareStage2", b"softwareStage2", "spikeSorter", b"spikeSorter"]) -> None: ...

global___DSPGroup = DSPGroup

@typing.final
class SetSensorRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    PROBEID_FIELD_NUMBER: builtins.int
    HEADSTAGEID_FIELD_NUMBER: builtins.int
    CONNECTIONNTVIDX_FIELD_NUMBER: builtins.int
    NUMCHANNELS_FIELD_NUMBER: builtins.int
    USELOCALDEVICE_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    port: global___Port.ValueType
    probeId: builtins.str
    """use "no-probe" to disconnect sensor at connectionNtvIdx"""
    headstageId: builtins.str
    """use "no-headstage" to disconnect sensor at connectionNtvIdx"""
    connectionNtvIdx: builtins.int
    numChannels: builtins.int
    """used to specify how many channels to"""
    useLocalDevice: builtins.bool
    """disconnect, in case of "no-probe" """
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        port: global___Port.ValueType | None = ...,
        probeId: builtins.str | None = ...,
        headstageId: builtins.str | None = ...,
        connectionNtvIdx: builtins.int | None = ...,
        numChannels: builtins.int | None = ...,
        useLocalDevice: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numChannels", b"numChannels", "port", b"port", "probeId", b"probeId", "streamGroupId", b"streamGroupId", "useLocalDevice", b"useLocalDevice"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numChannels", b"numChannels", "port", b"port", "probeId", b"probeId", "streamGroupId", b"streamGroupId", "useLocalDevice", b"useLocalDevice"]) -> None: ...

global___SetSensorRequest = SetSensorRequest

@typing.final
class SensorPositionTcs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    Y_FIELD_NUMBER: builtins.int
    Z_FIELD_NUMBER: builtins.int
    RINGANGLE_FIELD_NUMBER: builtins.int
    AXIALANGLE_FIELD_NUMBER: builtins.int
    ARCANGLE_FIELD_NUMBER: builtins.int
    X: builtins.float
    Y: builtins.float
    Z: builtins.float
    RingAngle: builtins.float
    AxialAngle: builtins.float
    ArcAngle: builtins.float
    def __init__(
        self,
        *,
        X: builtins.float | None = ...,
        Y: builtins.float | None = ...,
        Z: builtins.float | None = ...,
        RingAngle: builtins.float | None = ...,
        AxialAngle: builtins.float | None = ...,
        ArcAngle: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ArcAngle", b"ArcAngle", "AxialAngle", b"AxialAngle", "RingAngle", b"RingAngle", "X", b"X", "Y", b"Y", "Z", b"Z"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["ArcAngle", b"ArcAngle", "AxialAngle", b"AxialAngle", "RingAngle", b"RingAngle", "X", b"X", "Y", b"Y", "Z", b"Z"]) -> None: ...

global___SensorPositionTcs = SensorPositionTcs

@typing.final
class SetSensorPositionTcsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SENSORIDX_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    port: global___Port.ValueType
    sensorIdx: builtins.int
    @property
    def position(self) -> global___SensorPositionTcs: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        port: global___Port.ValueType | None = ...,
        position: global___SensorPositionTcs | None = ...,
        sensorIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["port", b"port", "position", b"position", "sensorIdx", b"sensorIdx", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["port", b"port", "position", b"position", "sensorIdx", b"sensorIdx", "streamGroupId", b"streamGroupId"]) -> None: ...

global___SetSensorPositionTcsRequest = SetSensorPositionTcsRequest

@typing.final
class SitePositionTcs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NTVCHANIDX_FIELD_NUMBER: builtins.int
    X_FIELD_NUMBER: builtins.int
    Y_FIELD_NUMBER: builtins.int
    Z_FIELD_NUMBER: builtins.int
    ntvChanIdx: builtins.int
    X: builtins.float
    Y: builtins.float
    Z: builtins.float
    def __init__(
        self,
        *,
        ntvChanIdx: builtins.int | None = ...,
        X: builtins.float | None = ...,
        Y: builtins.float | None = ...,
        Z: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["X", b"X", "Y", b"Y", "Z", b"Z", "ntvChanIdx", b"ntvChanIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["X", b"X", "Y", b"Y", "Z", b"Z", "ntvChanIdx", b"ntvChanIdx"]) -> None: ...

global___SitePositionTcs = SitePositionTcs

@typing.final
class SetSitePositionsTcsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    SITEPOSITIONS_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    port: global___Port.ValueType
    @property
    def sitePositions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SitePositionTcs]: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        port: global___Port.ValueType | None = ...,
        sitePositions: collections.abc.Iterable[global___SitePositionTcs] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["port", b"port", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["port", b"port", "sitePositions", b"sitePositions", "streamGroupId", b"streamGroupId"]) -> None: ...

global___SetSitePositionsTcsRequest = SetSitePositionsTcsRequest

@typing.final
class FeatureStartStopRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODEID_FIELD_NUMBER: builtins.int
    FEATURELICENSE_FIELD_NUMBER: builtins.int
    nodeId: builtins.str
    featureLicense: global___FeatureLicense.ValueType
    def __init__(
        self,
        *,
        nodeId: builtins.str | None = ...,
        featureLicense: global___FeatureLicense.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["featureLicense", b"featureLicense", "nodeId", b"nodeId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["featureLicense", b"featureLicense", "nodeId", b"nodeId"]) -> None: ...

global___FeatureStartStopRequest = FeatureStartStopRequest

@typing.final
class PrivacyReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISPRIVATE_FIELD_NUMBER: builtins.int
    isPrivate: builtins.bool
    def __init__(
        self,
        *,
        isPrivate: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isPrivate", b"isPrivate"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["isPrivate", b"isPrivate"]) -> None: ...

global___PrivacyReply = PrivacyReply

@typing.final
class SetPrivacyRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISPRIVATE_FIELD_NUMBER: builtins.int
    isPrivate: builtins.bool
    def __init__(
        self,
        *,
        isPrivate: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isPrivate", b"isPrivate"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["isPrivate", b"isPrivate"]) -> None: ...

global___SetPrivacyRequest = SetPrivacyRequest

@typing.final
class DenseMatrix(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROWS_FIELD_NUMBER: builtins.int
    COLS_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    rows: builtins.int
    cols: builtins.int
    data: builtins.bytes
    def __init__(
        self,
        *,
        rows: builtins.int | None = ...,
        cols: builtins.int | None = ...,
        data: builtins.bytes | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cols", b"cols", "data", b"data", "rows", b"rows"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cols", b"cols", "data", b"data", "rows", b"rows"]) -> None: ...

global___DenseMatrix = DenseMatrix

@typing.final
class Histogram(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATS_FIELD_NUMBER: builtins.int
    COUNTS_FIELD_NUMBER: builtins.int
    DIVIDERS_FIELD_NUMBER: builtins.int
    NUMBINS_FIELD_NUMBER: builtins.int
    ISPDF_FIELD_NUMBER: builtins.int
    numBins: builtins.int
    isPDF: builtins.bool
    @property
    def stats(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def counts(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def dividers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        stats: collections.abc.Iterable[builtins.float] | None = ...,
        counts: collections.abc.Iterable[builtins.float] | None = ...,
        dividers: collections.abc.Iterable[builtins.float] | None = ...,
        numBins: builtins.int | None = ...,
        isPDF: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isPDF", b"isPDF", "numBins", b"numBins"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["counts", b"counts", "dividers", b"dividers", "isPDF", b"isPDF", "numBins", b"numBins", "stats", b"stats"]) -> None: ...

global___Histogram = Histogram

@typing.final
class KpiMetricID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    mode: global___KpiMetricsMode.ValueType
    name: global___KpiMetricsEnum.ValueType
    def __init__(
        self,
        *,
        mode: global___KpiMetricsMode.ValueType | None = ...,
        name: global___KpiMetricsEnum.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["mode", b"mode", "name", b"name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["mode", b"mode", "name", b"name"]) -> None: ...

global___KpiMetricID = KpiMetricID

@typing.final
class TimeRange(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TIMERANGESEC_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    FS_FIELD_NUMBER: builtins.int
    WALLTIMESTART_FIELD_NUMBER: builtins.int
    WALLTIME_FIELD_NUMBER: builtins.int
    fs: builtins.float
    wallTimeStart: builtins.str
    """to be deprecated and replaced by wallTime"""
    @property
    def timeRangeSec(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def timestamp(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def wallTime(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        timeRangeSec: collections.abc.Iterable[builtins.float] | None = ...,
        timestamp: collections.abc.Iterable[builtins.int] | None = ...,
        fs: builtins.float | None = ...,
        wallTimeStart: builtins.str | None = ...,
        wallTime: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fs", b"fs", "wallTime", b"wallTime", "wallTimeStart", b"wallTimeStart"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fs", b"fs", "timeRangeSec", b"timeRangeSec", "timestamp", b"timestamp", "wallTime", b"wallTime", "wallTimeStart", b"wallTimeStart"]) -> None: ...

global___TimeRange = TimeRange

@typing.final
class BundleReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NTVIDXS_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    METRICS_FIELD_NUMBER: builtins.int
    @property
    def ntvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def tR(self) -> global___TimeRange: ...
    @property
    def metrics(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiMetricID]: ...
    def __init__(
        self,
        *,
        ntvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        tR: global___TimeRange | None = ...,
        metrics: collections.abc.Iterable[global___KpiMetricID] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["metrics", b"metrics", "ntvIdxs", b"ntvIdxs", "tR", b"tR"]) -> None: ...

global___BundleReq = BundleReq

@typing.final
class KpiMetricsReq(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    STYPE_FIELD_NUMBER: builtins.int
    ARG_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    stype: global___SignalType.ValueType
    @property
    def arg(self) -> global___BundleReq: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        stype: global___SignalType.ValueType | None = ...,
        arg: global___BundleReq | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["arg", b"arg", "streamGroupId", b"streamGroupId", "stype", b"stype"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["arg", b"arg", "streamGroupId", b"streamGroupId", "stype", b"stype"]) -> None: ...

global___KpiMetricsReq = KpiMetricsReq

@typing.final
class KpiMetricsData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class MetricStats(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        MEAN_FIELD_NUMBER: builtins.int
        SD_FIELD_NUMBER: builtins.int
        MAX_FIELD_NUMBER: builtins.int
        MIN_FIELD_NUMBER: builtins.int
        @property
        def mean(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        @property
        def sD(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        @property
        def max(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        @property
        def min(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        def __init__(
            self,
            *,
            mean: collections.abc.Iterable[builtins.float] | None = ...,
            sD: collections.abc.Iterable[builtins.float] | None = ...,
            max: collections.abc.Iterable[builtins.float] | None = ...,
            min: collections.abc.Iterable[builtins.float] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["max", b"max", "mean", b"mean", "min", b"min", "sD", b"sD"]) -> None: ...

    NUMPACKETS_FIELD_NUMBER: builtins.int
    NUMSIGS_FIELD_NUMBER: builtins.int
    NUMMETRICS_FIELD_NUMBER: builtins.int
    METRIC_FIELD_NUMBER: builtins.int
    PKTIDXS_FIELD_NUMBER: builtins.int
    STATSCHANS_FIELD_NUMBER: builtins.int
    STATSGLOBAL_FIELD_NUMBER: builtins.int
    PACKETDURSEC_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    numPackets: builtins.int
    numSigs: builtins.int
    numMetrics: builtins.int
    packetDurSec: builtins.float
    @property
    def metric(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiMetricID]: ...
    @property
    def pktIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def statsChans(self) -> global___KpiMetricsData.MetricStats: ...
    @property
    def statsGlobal(self) -> global___KpiMetricsData.MetricStats: ...
    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        numPackets: builtins.int | None = ...,
        numSigs: builtins.int | None = ...,
        numMetrics: builtins.int | None = ...,
        metric: collections.abc.Iterable[global___KpiMetricID] | None = ...,
        pktIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        statsChans: global___KpiMetricsData.MetricStats | None = ...,
        statsGlobal: global___KpiMetricsData.MetricStats | None = ...,
        packetDurSec: builtins.float | None = ...,
        tR: global___TimeRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["numMetrics", b"numMetrics", "numPackets", b"numPackets", "numSigs", b"numSigs", "packetDurSec", b"packetDurSec", "statsChans", b"statsChans", "statsGlobal", b"statsGlobal", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["metric", b"metric", "numMetrics", b"numMetrics", "numPackets", b"numPackets", "numSigs", b"numSigs", "packetDurSec", b"packetDurSec", "pktIdxs", b"pktIdxs", "statsChans", b"statsChans", "statsGlobal", b"statsGlobal", "tR", b"tR"]) -> None: ...

global___KpiMetricsData = KpiMetricsData

@typing.final
class KpiBundlePacketMetrics(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NTVIDXS_FIELD_NUMBER: builtins.int
    SIGTYPE_FIELD_NUMBER: builtins.int
    METRICS_FIELD_NUMBER: builtins.int
    sigType: global___SignalType.ValueType
    @property
    def ntvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def metrics(self) -> global___KpiMetricsData: ...
    def __init__(
        self,
        *,
        ntvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        sigType: global___SignalType.ValueType | None = ...,
        metrics: global___KpiMetricsData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["metrics", b"metrics", "sigType", b"sigType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["metrics", b"metrics", "ntvIdxs", b"ntvIdxs", "sigType", b"sigType"]) -> None: ...

global___KpiBundlePacketMetrics = KpiBundlePacketMetrics

@typing.final
class KpiMetrics(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    BUNDLE_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    @property
    def bundle(self) -> global___KpiBundlePacketMetrics: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        bundle: global___KpiBundlePacketMetrics | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bundle", b"bundle", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bundle", b"bundle", "streamGroupId", b"streamGroupId"]) -> None: ...

global___KpiMetrics = KpiMetrics

@typing.final
class SignalMetricsPacketReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NTVIDXS_FIELD_NUMBER: builtins.int
    SIGTYPE_FIELD_NUMBER: builtins.int
    METRICS_FIELD_NUMBER: builtins.int
    METRICVALS_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    sigType: global___SignalType.ValueType
    @property
    def ntvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def metrics(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiMetricID]: ...
    @property
    def metricVals(self) -> global___DenseMatrix:
        """rows: ntvIdxs, cols: metrics"""

    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        ntvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        sigType: global___SignalType.ValueType | None = ...,
        metrics: collections.abc.Iterable[global___KpiMetricID] | None = ...,
        metricVals: global___DenseMatrix | None = ...,
        tR: global___TimeRange | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["metricVals", b"metricVals", "sigType", b"sigType", "tR", b"tR"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["metricVals", b"metricVals", "metrics", b"metrics", "ntvIdxs", b"ntvIdxs", "sigType", b"sigType", "tR", b"tR"]) -> None: ...

global___SignalMetricsPacketReply = SignalMetricsPacketReply

@typing.final
class KpiControlRequest(google.protobuf.message.Message):
    """NOTE: 'streamGroupId' ~= 'datasourceId'"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    STYPE_FIELD_NUMBER: builtins.int
    ISALLBUNDLES_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    stype: global___SignalType.ValueType
    isAllBundles: builtins.bool
    """deprecated"""
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        stype: global___SignalType.ValueType | None = ...,
        isAllBundles: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isAllBundles", b"isAllBundles", "streamGroupId", b"streamGroupId", "stype", b"stype"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["isAllBundles", b"isAllBundles", "streamGroupId", b"streamGroupId", "stype", b"stype"]) -> None: ...

global___KpiControlRequest = KpiControlRequest

@typing.final
class SetKpiParamRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    PARAM_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    param: builtins.float
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        param: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["param", b"param", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["param", b"param", "streamGroupId", b"streamGroupId"]) -> None: ...

global___SetKpiParamRequest = SetKpiParamRequest

@typing.final
class GetKpiStatusRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    """aka datasource ID"""
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["streamGroupId", b"streamGroupId"]) -> None: ...

global___GetKpiStatusRequest = GetKpiStatusRequest

@typing.final
class KpiStandardRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSOURCEID_FIELD_NUMBER: builtins.int
    @property
    def dsourceID(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        dsourceID: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["dsourceID", b"dsourceID"]) -> None: ...

global___KpiStandardRequest = KpiStandardRequest

@typing.final
class KpiFileStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class State(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        ISAVAIL_FIELD_NUMBER: builtins.int
        ISCOMPLETE_FIELD_NUMBER: builtins.int
        DSOURCEUID_FIELD_NUMBER: builtins.int
        KPITR_FIELD_NUMBER: builtins.int
        FILEPATHANDNAME_FIELD_NUMBER: builtins.int
        isAvail: builtins.bool
        isComplete: builtins.bool
        dsourceUID: builtins.str
        filePathAndName: builtins.str
        @property
        def kpiTR(self) -> global___TimeRange: ...
        def __init__(
            self,
            *,
            isAvail: builtins.bool | None = ...,
            isComplete: builtins.bool | None = ...,
            dsourceUID: builtins.str | None = ...,
            kpiTR: global___TimeRange | None = ...,
            filePathAndName: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["dsourceUID", b"dsourceUID", "filePathAndName", b"filePathAndName", "isAvail", b"isAvail", "isComplete", b"isComplete", "kpiTR", b"kpiTR"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["dsourceUID", b"dsourceUID", "filePathAndName", b"filePathAndName", "isAvail", b"isAvail", "isComplete", b"isComplete", "kpiTR", b"kpiTR"]) -> None: ...

    DSOURCE_FIELD_NUMBER: builtins.int
    @property
    def dsource(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiFileStatus.State]: ...
    def __init__(
        self,
        *,
        dsource: collections.abc.Iterable[global___KpiFileStatus.State] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["dsource", b"dsource"]) -> None: ...

global___KpiFileStatus = KpiFileStatus

@typing.final
class KpiFileStatus2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class KPI_State(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        ISAVAIL_FIELD_NUMBER: builtins.int
        ISCOMPLETE_FIELD_NUMBER: builtins.int
        FRACCOMPLETE_FIELD_NUMBER: builtins.int
        FILEPATHANDNAME_FIELD_NUMBER: builtins.int
        KPITR_FIELD_NUMBER: builtins.int
        PACKETDURSEC_FIELD_NUMBER: builtins.int
        NUMAMP_FIELD_NUMBER: builtins.int
        BYTESINBUNDLEPKT_FIELD_NUMBER: builtins.int
        NUMPACKETS_FIELD_NUMBER: builtins.int
        DATASETUID_FIELD_NUMBER: builtins.int
        UPDATEPERIODSEC_FIELD_NUMBER: builtins.int
        PERSISTENCESEC_FIELD_NUMBER: builtins.int
        NUMPACKETSMEMORY_FIELD_NUMBER: builtins.int
        MEMORYBYTES_FIELD_NUMBER: builtins.int
        FS_FIELD_NUMBER: builtins.int
        ISTRACKINGCACHE_FIELD_NUMBER: builtins.int
        BETA_FIELD_NUMBER: builtins.int
        isAvail: builtins.bool
        isComplete: builtins.bool
        fracComplete: builtins.float
        filePathAndName: builtins.str
        packetDurSec: builtins.float
        numAmp: builtins.int
        bytesInBundlePkt: builtins.int
        numPackets: builtins.int
        datasetUID: builtins.str
        updatePeriodSec: builtins.float
        """Runtime/cache fields (added for consolidation with KpiStatusReply)"""
        persistenceSec: builtins.float
        numPacketsMemory: builtins.int
        memoryBytes: builtins.float
        fs: builtins.float
        isTrackingCache: builtins.bool
        beta: builtins.float
        @property
        def kpiTR(self) -> global___TimeRange: ...
        def __init__(
            self,
            *,
            isAvail: builtins.bool | None = ...,
            isComplete: builtins.bool | None = ...,
            fracComplete: builtins.float | None = ...,
            filePathAndName: builtins.str | None = ...,
            kpiTR: global___TimeRange | None = ...,
            packetDurSec: builtins.float | None = ...,
            numAmp: builtins.int | None = ...,
            bytesInBundlePkt: builtins.int | None = ...,
            numPackets: builtins.int | None = ...,
            datasetUID: builtins.str | None = ...,
            updatePeriodSec: builtins.float | None = ...,
            persistenceSec: builtins.float | None = ...,
            numPacketsMemory: builtins.int | None = ...,
            memoryBytes: builtins.float | None = ...,
            fs: builtins.float | None = ...,
            isTrackingCache: builtins.bool | None = ...,
            beta: builtins.float | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["beta", b"beta", "bytesInBundlePkt", b"bytesInBundlePkt", "datasetUID", b"datasetUID", "filePathAndName", b"filePathAndName", "fracComplete", b"fracComplete", "fs", b"fs", "isAvail", b"isAvail", "isComplete", b"isComplete", "isTrackingCache", b"isTrackingCache", "kpiTR", b"kpiTR", "memoryBytes", b"memoryBytes", "numAmp", b"numAmp", "numPackets", b"numPackets", "numPacketsMemory", b"numPacketsMemory", "packetDurSec", b"packetDurSec", "persistenceSec", b"persistenceSec", "updatePeriodSec", b"updatePeriodSec"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["beta", b"beta", "bytesInBundlePkt", b"bytesInBundlePkt", "datasetUID", b"datasetUID", "filePathAndName", b"filePathAndName", "fracComplete", b"fracComplete", "fs", b"fs", "isAvail", b"isAvail", "isComplete", b"isComplete", "isTrackingCache", b"isTrackingCache", "kpiTR", b"kpiTR", "memoryBytes", b"memoryBytes", "numAmp", b"numAmp", "numPackets", b"numPackets", "numPacketsMemory", b"numPacketsMemory", "packetDurSec", b"packetDurSec", "persistenceSec", b"persistenceSec", "updatePeriodSec", b"updatePeriodSec"]) -> None: ...

    @typing.final
    class Datasource_State(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        FILEPATHANDNAME_FIELD_NUMBER: builtins.int
        TR_FIELD_NUMBER: builtins.int
        DATASETUID_FIELD_NUMBER: builtins.int
        DSOURCEID_FIELD_NUMBER: builtins.int
        filePathAndName: builtins.str
        datasetUID: builtins.str
        dsourceID: builtins.str
        @property
        def TR(self) -> global___TimeRange: ...
        def __init__(
            self,
            *,
            filePathAndName: builtins.str | None = ...,
            TR: global___TimeRange | None = ...,
            datasetUID: builtins.str | None = ...,
            dsourceID: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["TR", b"TR", "datasetUID", b"datasetUID", "dsourceID", b"dsourceID", "filePathAndName", b"filePathAndName"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["TR", b"TR", "datasetUID", b"datasetUID", "dsourceID", b"dsourceID", "filePathAndName", b"filePathAndName"]) -> None: ...

    @typing.final
    class KpiDatasourceStateSpec(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        SOURCE_FIELD_NUMBER: builtins.int
        KPI_FIELD_NUMBER: builtins.int
        ISSPRINTING_FIELD_NUMBER: builtins.int
        isSprinting: builtins.bool
        @property
        def source(self) -> global___KpiFileStatus2.Datasource_State: ...
        @property
        def kpi(self) -> global___KpiFileStatus2.KPI_State: ...
        def __init__(
            self,
            *,
            source: global___KpiFileStatus2.Datasource_State | None = ...,
            kpi: global___KpiFileStatus2.KPI_State | None = ...,
            isSprinting: builtins.bool | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["isSprinting", b"isSprinting", "kpi", b"kpi", "source", b"source"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["isSprinting", b"isSprinting", "kpi", b"kpi", "source", b"source"]) -> None: ...

    DSOURCE_FIELD_NUMBER: builtins.int
    @property
    def dsource(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiFileStatus2.KpiDatasourceStateSpec]: ...
    def __init__(
        self,
        *,
        dsource: collections.abc.Iterable[global___KpiFileStatus2.KpiDatasourceStateSpec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["dsource", b"dsource"]) -> None: ...

global___KpiFileStatus2 = KpiFileStatus2

@typing.final
class KpiFileMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class State(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        ISAVAIL_FIELD_NUMBER: builtins.int
        DSOURCEUID_FIELD_NUMBER: builtins.int
        PACKETDUR_FIELD_NUMBER: builtins.int
        NAMP_FIELD_NUMBER: builtins.int
        BYTESINBUNDLEPACKET_FIELD_NUMBER: builtins.int
        NUMPACKETS_FIELD_NUMBER: builtins.int
        KPITR_FIELD_NUMBER: builtins.int
        FILEPATHANDNAME_FIELD_NUMBER: builtins.int
        FRACCOMPLETE_FIELD_NUMBER: builtins.int
        isAvail: builtins.bool
        dsourceUID: builtins.str
        packetDur: builtins.float
        nAMP: builtins.int
        bytesInBundlePacket: builtins.int
        numPackets: builtins.int
        filePathAndName: builtins.str
        fracComplete: builtins.float
        @property
        def kpiTR(self) -> global___TimeRange: ...
        def __init__(
            self,
            *,
            isAvail: builtins.bool | None = ...,
            dsourceUID: builtins.str | None = ...,
            packetDur: builtins.float | None = ...,
            nAMP: builtins.int | None = ...,
            bytesInBundlePacket: builtins.int | None = ...,
            numPackets: builtins.int | None = ...,
            kpiTR: global___TimeRange | None = ...,
            filePathAndName: builtins.str | None = ...,
            fracComplete: builtins.float | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["bytesInBundlePacket", b"bytesInBundlePacket", "dsourceUID", b"dsourceUID", "filePathAndName", b"filePathAndName", "fracComplete", b"fracComplete", "isAvail", b"isAvail", "kpiTR", b"kpiTR", "nAMP", b"nAMP", "numPackets", b"numPackets", "packetDur", b"packetDur"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["bytesInBundlePacket", b"bytesInBundlePacket", "dsourceUID", b"dsourceUID", "filePathAndName", b"filePathAndName", "fracComplete", b"fracComplete", "isAvail", b"isAvail", "kpiTR", b"kpiTR", "nAMP", b"nAMP", "numPackets", b"numPackets", "packetDur", b"packetDur"]) -> None: ...

    DSOURCE_FIELD_NUMBER: builtins.int
    @property
    def dsource(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiFileMetadata.State]: ...
    def __init__(
        self,
        *,
        dsource: collections.abc.Iterable[global___KpiFileMetadata.State] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["dsource", b"dsource"]) -> None: ...

global___KpiFileMetadata = KpiFileMetadata

@typing.final
class KpiStatusReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STREAMGROUPID_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    NUMPACKETSMEMORY_FIELD_NUMBER: builtins.int
    PACKETDUR_FIELD_NUMBER: builtins.int
    UPDATEPERIOD_FIELD_NUMBER: builtins.int
    PERSISTENCE_FIELD_NUMBER: builtins.int
    BETA_FIELD_NUMBER: builtins.int
    ISTRACKINGSIGNALCACHE_FIELD_NUMBER: builtins.int
    NUMPACKETS_FIELD_NUMBER: builtins.int
    MEMORYBYTES_FIELD_NUMBER: builtins.int
    FS_FIELD_NUMBER: builtins.int
    WALLTIMESTART_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    NUMSIGS_FIELD_NUMBER: builtins.int
    streamGroupId: builtins.str
    timeRange: builtins.float
    """deprecated"""
    timestampRange: builtins.int
    """deprecated"""
    numPacketsMemory: builtins.int
    packetDur: builtins.float
    updatePeriod: builtins.float
    persistence: builtins.float
    beta: builtins.float
    isTrackingSignalCache: builtins.bool
    numPackets: builtins.int
    memoryBytes: builtins.float
    fs: builtins.float
    """deprecated"""
    wallTimeStart: builtins.str
    """deprecated"""
    numSigs: builtins.int
    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        streamGroupId: builtins.str | None = ...,
        timeRange: builtins.float | None = ...,
        timestampRange: builtins.int | None = ...,
        numPacketsMemory: builtins.int | None = ...,
        packetDur: builtins.float | None = ...,
        updatePeriod: builtins.float | None = ...,
        persistence: builtins.float | None = ...,
        beta: builtins.float | None = ...,
        isTrackingSignalCache: builtins.bool | None = ...,
        numPackets: builtins.int | None = ...,
        memoryBytes: builtins.float | None = ...,
        fs: builtins.float | None = ...,
        wallTimeStart: builtins.str | None = ...,
        tR: global___TimeRange | None = ...,
        numSigs: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["beta", b"beta", "fs", b"fs", "isTrackingSignalCache", b"isTrackingSignalCache", "memoryBytes", b"memoryBytes", "numPackets", b"numPackets", "numPacketsMemory", b"numPacketsMemory", "numSigs", b"numSigs", "packetDur", b"packetDur", "persistence", b"persistence", "streamGroupId", b"streamGroupId", "tR", b"tR", "timeRange", b"timeRange", "timestampRange", b"timestampRange", "updatePeriod", b"updatePeriod", "wallTimeStart", b"wallTimeStart"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["beta", b"beta", "fs", b"fs", "isTrackingSignalCache", b"isTrackingSignalCache", "memoryBytes", b"memoryBytes", "numPackets", b"numPackets", "numPacketsMemory", b"numPacketsMemory", "numSigs", b"numSigs", "packetDur", b"packetDur", "persistence", b"persistence", "streamGroupId", b"streamGroupId", "tR", b"tR", "timeRange", b"timeRange", "timestampRange", b"timestampRange", "updatePeriod", b"updatePeriod", "wallTimeStart", b"wallTimeStart"]) -> None: ...

global___KpiStatusReply = KpiStatusReply

@typing.final
class SigKpiParamRecord(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISEVENTDETECT_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    EVENTTHR0_FIELD_NUMBER: builtins.int
    EVENTTHR1_FIELD_NUMBER: builtins.int
    EVENTTHRSD0_FIELD_NUMBER: builtins.int
    EVENTTHRSD1_FIELD_NUMBER: builtins.int
    PRETHRPTS_FIELD_NUMBER: builtins.int
    POSTTHRPTS_FIELD_NUMBER: builtins.int
    EVTDURPTS_FIELD_NUMBER: builtins.int
    SHADOWPTS_FIELD_NUMBER: builtins.int
    PRETHR_FIELD_NUMBER: builtins.int
    POSTTHR_FIELD_NUMBER: builtins.int
    EVTDUR_FIELD_NUMBER: builtins.int
    SHADOW_FIELD_NUMBER: builtins.int
    ISSETTHR0_FIELD_NUMBER: builtins.int
    ISSETTHR1_FIELD_NUMBER: builtins.int
    ISSDTHR0_FIELD_NUMBER: builtins.int
    ISSDTHR1_FIELD_NUMBER: builtins.int
    isEventDetect: builtins.bool
    ntvChanIdx: builtins.int
    eventThr0: builtins.float
    """neg threshold"""
    eventThr1: builtins.float
    """pos threshold"""
    eventThrSd0: builtins.float
    eventThrSd1: builtins.float
    preThrPts: builtins.int
    postThrPts: builtins.int
    evtDurPts: builtins.int
    shadowPts: builtins.int
    preThr: builtins.float
    postThr: builtins.float
    evtDur: builtins.float
    shadow: builtins.float
    isSetThr0: builtins.bool
    isSetThr1: builtins.bool
    isSDThr0: builtins.bool
    isSDThr1: builtins.bool
    def __init__(
        self,
        *,
        isEventDetect: builtins.bool | None = ...,
        ntvChanIdx: builtins.int | None = ...,
        eventThr0: builtins.float | None = ...,
        eventThr1: builtins.float | None = ...,
        eventThrSd0: builtins.float | None = ...,
        eventThrSd1: builtins.float | None = ...,
        preThrPts: builtins.int | None = ...,
        postThrPts: builtins.int | None = ...,
        evtDurPts: builtins.int | None = ...,
        shadowPts: builtins.int | None = ...,
        preThr: builtins.float | None = ...,
        postThr: builtins.float | None = ...,
        evtDur: builtins.float | None = ...,
        shadow: builtins.float | None = ...,
        isSetThr0: builtins.bool | None = ...,
        isSetThr1: builtins.bool | None = ...,
        isSDThr0: builtins.bool | None = ...,
        isSDThr1: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventThr0", b"eventThr0", "eventThr1", b"eventThr1", "eventThrSd0", b"eventThrSd0", "eventThrSd1", b"eventThrSd1", "evtDur", b"evtDur", "evtDurPts", b"evtDurPts", "isEventDetect", b"isEventDetect", "isSDThr0", b"isSDThr0", "isSDThr1", b"isSDThr1", "isSetThr0", b"isSetThr0", "isSetThr1", b"isSetThr1", "ntvChanIdx", b"ntvChanIdx", "postThr", b"postThr", "postThrPts", b"postThrPts", "preThr", b"preThr", "preThrPts", b"preThrPts", "shadow", b"shadow", "shadowPts", b"shadowPts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventThr0", b"eventThr0", "eventThr1", b"eventThr1", "eventThrSd0", b"eventThrSd0", "eventThrSd1", b"eventThrSd1", "evtDur", b"evtDur", "evtDurPts", b"evtDurPts", "isEventDetect", b"isEventDetect", "isSDThr0", b"isSDThr0", "isSDThr1", b"isSDThr1", "isSetThr0", b"isSetThr0", "isSetThr1", b"isSetThr1", "ntvChanIdx", b"ntvChanIdx", "postThr", b"postThr", "postThrPts", b"postThrPts", "preThr", b"preThr", "preThrPts", b"preThrPts", "shadow", b"shadow", "shadowPts", b"shadowPts"]) -> None: ...

global___SigKpiParamRecord = SigKpiParamRecord

@typing.final
class AnnotateBundle(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    NOTES_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    name: builtins.str
    label: builtins.str
    notes: builtins.str
    tags: builtins.str
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        label: builtins.str | None = ...,
        notes: builtins.str | None = ...,
        tags: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["label", b"label", "name", b"name", "notes", b"notes", "tags", b"tags"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["label", b"label", "name", b"name", "notes", b"notes", "tags", b"tags"]) -> None: ...

global___AnnotateBundle = AnnotateBundle

@typing.final
class ProjectMetadata(google.protobuf.message.Message):
    """message SensorSiteExtendedMetadata {  // forward comp
      optional int64 siteAreaUm2 = 1;
      optional SensorSiteMaterial siteMaterial = 2;
      optional SensorSiteShape siteShape = 3;
    }
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECTUID_FIELD_NUMBER: builtins.int
    CASEUID_FIELD_NUMBER: builtins.int
    TRIALUID_FIELD_NUMBER: builtins.int
    ANNOTATEUID_FIELD_NUMBER: builtins.int
    projectUID: builtins.str
    caseUID: builtins.str
    trialUID: builtins.str
    @property
    def annotateUID(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        projectUID: builtins.str | None = ...,
        caseUID: builtins.str | None = ...,
        trialUID: builtins.str | None = ...,
        annotateUID: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["caseUID", b"caseUID", "projectUID", b"projectUID", "trialUID", b"trialUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["annotateUID", b"annotateUID", "caseUID", b"caseUID", "projectUID", b"projectUID", "trialUID", b"trialUID"]) -> None: ...

global___ProjectMetadata = ProjectMetadata

@typing.final
class SensorExtendedMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENSORINSTANCEUID_FIELD_NUMBER: builtins.int
    sensorInstanceUID: builtins.str
    def __init__(
        self,
        *,
        sensorInstanceUID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["sensorInstanceUID", b"sensorInstanceUID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["sensorInstanceUID", b"sensorInstanceUID"]) -> None: ...

global___SensorExtendedMetadata = SensorExtendedMetadata

@typing.final
class GonumMatrixList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MDATABYTES_FIELD_NUMBER: builtins.int
    mdataBytes: builtins.bytes
    def __init__(
        self,
        *,
        mdataBytes: builtins.bytes | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["mdataBytes", b"mdataBytes"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["mdataBytes", b"mdataBytes"]) -> None: ...

global___GonumMatrixList = GonumMatrixList

@typing.final
class RadixMatrixList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MATRIX_FIELD_NUMBER: builtins.int
    @property
    def matrix(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RadixMatrix]: ...
    def __init__(
        self,
        *,
        matrix: collections.abc.Iterable[global___RadixMatrix] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["matrix", b"matrix"]) -> None: ...

global___RadixMatrixList = RadixMatrixList

@typing.final
class RadixMatrix(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATA_FIELD_NUMBER: builtins.int
    SHAPE_FIELD_NUMBER: builtins.int
    @property
    def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        data: collections.abc.Iterable[builtins.float] | None = ...,
        shape: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "shape", b"shape"]) -> None: ...

global___RadixMatrix = RadixMatrix

@typing.final
class RadixMatrixBytes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATA_FIELD_NUMBER: builtins.int
    SHAPE_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    @property
    def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        data: builtins.bytes | None = ...,
        shape: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data", b"data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "shape", b"shape"]) -> None: ...

global___RadixMatrixBytes = RadixMatrixBytes

@typing.final
class RadixSignalsList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MATRIX_FIELD_NUMBER: builtins.int
    @property
    def matrix(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RadixSignals]: ...
    def __init__(
        self,
        *,
        matrix: collections.abc.Iterable[global___RadixSignals] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["matrix", b"matrix"]) -> None: ...

global___RadixSignalsList = RadixSignalsList

@typing.final
class RadixSignals(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SAMPFREQ_FIELD_NUMBER: builtins.int
    PRI_FIELD_NUMBER: builtins.int
    AUX_FIELD_NUMBER: builtins.int
    DIN_FIELD_NUMBER: builtins.int
    DOUT_FIELD_NUMBER: builtins.int
    sampFreq: builtins.float
    @property
    def pri(self) -> global___RadixMatrix: ...
    @property
    def aux(self) -> global___RadixMatrix: ...
    @property
    def din(self) -> global___RadixMatrix: ...
    @property
    def dout(self) -> global___RadixMatrix: ...
    def __init__(
        self,
        *,
        sampFreq: builtins.float | None = ...,
        pri: global___RadixMatrix | None = ...,
        aux: global___RadixMatrix | None = ...,
        din: global___RadixMatrix | None = ...,
        dout: global___RadixMatrix | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["aux", b"aux", "din", b"din", "dout", b"dout", "pri", b"pri", "sampFreq", b"sampFreq"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["aux", b"aux", "din", b"din", "dout", b"dout", "pri", b"pri", "sampFreq", b"sampFreq"]) -> None: ...

global___RadixSignals = RadixSignals

@typing.final
class VectorString(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    @property
    def x(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        x: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["x", b"x"]) -> None: ...

global___VectorString = VectorString

@typing.final
class VectorFloat64(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    @property
    def x(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        x: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["x", b"x"]) -> None: ...

global___VectorFloat64 = VectorFloat64

@typing.final
class VectorSliceFloat64(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VEC_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    label: builtins.str
    @property
    def vec(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VectorFloat64]: ...
    def __init__(
        self,
        *,
        vec: collections.abc.Iterable[global___VectorFloat64] | None = ...,
        label: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["label", b"label"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["label", b"label", "vec", b"vec"]) -> None: ...

global___VectorSliceFloat64 = VectorSliceFloat64

@typing.final
class LogsysKpiStatusReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PORTA_FIELD_NUMBER: builtins.int
    PORTB_FIELD_NUMBER: builtins.int
    PORTC_FIELD_NUMBER: builtins.int
    PORTD_FIELD_NUMBER: builtins.int
    PORTE_FIELD_NUMBER: builtins.int
    PORTF_FIELD_NUMBER: builtins.int
    PORTG_FIELD_NUMBER: builtins.int
    PORTH_FIELD_NUMBER: builtins.int
    AUX0_FIELD_NUMBER: builtins.int
    AUX1_FIELD_NUMBER: builtins.int
    @property
    def portA(self) -> global___KpiCache: ...
    @property
    def portB(self) -> global___KpiCache: ...
    @property
    def portC(self) -> global___KpiCache: ...
    @property
    def portD(self) -> global___KpiCache: ...
    @property
    def portE(self) -> global___KpiCache: ...
    @property
    def portF(self) -> global___KpiCache: ...
    @property
    def portG(self) -> global___KpiCache: ...
    @property
    def portH(self) -> global___KpiCache: ...
    @property
    def aux0(self) -> global___KpiCache: ...
    @property
    def aux1(self) -> global___KpiCache: ...
    def __init__(
        self,
        *,
        portA: global___KpiCache | None = ...,
        portB: global___KpiCache | None = ...,
        portC: global___KpiCache | None = ...,
        portD: global___KpiCache | None = ...,
        portE: global___KpiCache | None = ...,
        portF: global___KpiCache | None = ...,
        portG: global___KpiCache | None = ...,
        portH: global___KpiCache | None = ...,
        aux0: global___KpiCache | None = ...,
        aux1: global___KpiCache | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["aux0", b"aux0", "aux1", b"aux1", "portA", b"portA", "portB", b"portB", "portC", b"portC", "portD", b"portD", "portE", b"portE", "portF", b"portF", "portG", b"portG", "portH", b"portH"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["aux0", b"aux0", "aux1", b"aux1", "portA", b"portA", "portB", b"portB", "portC", b"portC", "portD", b"portD", "portE", b"portE", "portF", b"portF", "portG", b"portG", "portH", b"portH"]) -> None: ...

global___LogsysKpiStatusReply = LogsysKpiStatusReply

@typing.final
class KpiCache(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    PERSISTDUR_FIELD_NUMBER: builtins.int
    MINNUMPACKETS_FIELD_NUMBER: builtins.int
    SIZEBYTES_FIELD_NUMBER: builtins.int
    NUMPACKETS_FIELD_NUMBER: builtins.int
    TRANGE_FIELD_NUMBER: builtins.int
    TSRANGE_FIELD_NUMBER: builtins.int
    MEANPACKETDUR_FIELD_NUMBER: builtins.int
    MEANCALCPACKETDUR_FIELD_NUMBER: builtins.int
    PACKETDUR_FIELD_NUMBER: builtins.int
    TOTALPACKETSPROCESSED_FIELD_NUMBER: builtins.int
    SIGNALTYPE_FIELD_NUMBER: builtins.int
    NUMPRISIGS_FIELD_NUMBER: builtins.int
    NUMAUXSIGS_FIELD_NUMBER: builtins.int
    NUMDINSIGS_FIELD_NUMBER: builtins.int
    NUMDOUTSIGS_FIELD_NUMBER: builtins.int
    UPDATEPERIOD_FIELD_NUMBER: builtins.int
    name: builtins.str
    sampFreq: builtins.float
    persistDur: builtins.float
    minNumPackets: builtins.int
    sizeBytes: builtins.int
    numPackets: builtins.int
    meanPacketDur: builtins.float
    meanCalcPacketDur: builtins.float
    packetDur: builtins.float
    totalPacketsProcessed: builtins.int
    signalType: builtins.str
    numPriSigs: builtins.int
    numAuxSigs: builtins.int
    numDinSigs: builtins.int
    numDoutSigs: builtins.int
    updatePeriod: builtins.float
    @property
    def tRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def tsRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        sampFreq: builtins.float | None = ...,
        persistDur: builtins.float | None = ...,
        minNumPackets: builtins.int | None = ...,
        sizeBytes: builtins.int | None = ...,
        numPackets: builtins.int | None = ...,
        tRange: collections.abc.Iterable[builtins.float] | None = ...,
        tsRange: collections.abc.Iterable[builtins.int] | None = ...,
        meanPacketDur: builtins.float | None = ...,
        meanCalcPacketDur: builtins.float | None = ...,
        packetDur: builtins.float | None = ...,
        totalPacketsProcessed: builtins.int | None = ...,
        signalType: builtins.str | None = ...,
        numPriSigs: builtins.int | None = ...,
        numAuxSigs: builtins.int | None = ...,
        numDinSigs: builtins.int | None = ...,
        numDoutSigs: builtins.int | None = ...,
        updatePeriod: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["meanCalcPacketDur", b"meanCalcPacketDur", "meanPacketDur", b"meanPacketDur", "minNumPackets", b"minNumPackets", "name", b"name", "numAuxSigs", b"numAuxSigs", "numDinSigs", b"numDinSigs", "numDoutSigs", b"numDoutSigs", "numPackets", b"numPackets", "numPriSigs", b"numPriSigs", "packetDur", b"packetDur", "persistDur", b"persistDur", "sampFreq", b"sampFreq", "signalType", b"signalType", "sizeBytes", b"sizeBytes", "totalPacketsProcessed", b"totalPacketsProcessed", "updatePeriod", b"updatePeriod"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["meanCalcPacketDur", b"meanCalcPacketDur", "meanPacketDur", b"meanPacketDur", "minNumPackets", b"minNumPackets", "name", b"name", "numAuxSigs", b"numAuxSigs", "numDinSigs", b"numDinSigs", "numDoutSigs", b"numDoutSigs", "numPackets", b"numPackets", "numPriSigs", b"numPriSigs", "packetDur", b"packetDur", "persistDur", b"persistDur", "sampFreq", b"sampFreq", "signalType", b"signalType", "sizeBytes", b"sizeBytes", "tRange", b"tRange", "totalPacketsProcessed", b"totalPacketsProcessed", "tsRange", b"tsRange", "updatePeriod", b"updatePeriod"]) -> None: ...

global___KpiCache = KpiCache

@typing.final
class LogsysKpiTailReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PORTA_FIELD_NUMBER: builtins.int
    PORTB_FIELD_NUMBER: builtins.int
    PORTC_FIELD_NUMBER: builtins.int
    PORTD_FIELD_NUMBER: builtins.int
    PORTE_FIELD_NUMBER: builtins.int
    PORTF_FIELD_NUMBER: builtins.int
    PORTG_FIELD_NUMBER: builtins.int
    PORTH_FIELD_NUMBER: builtins.int
    AUX0_FIELD_NUMBER: builtins.int
    AUX1_FIELD_NUMBER: builtins.int
    @property
    def portA(self) -> global___KpiPortInfo: ...
    @property
    def portB(self) -> global___KpiPortInfo: ...
    @property
    def portC(self) -> global___KpiPortInfo: ...
    @property
    def portD(self) -> global___KpiPortInfo: ...
    @property
    def portE(self) -> global___KpiPortInfo: ...
    @property
    def portF(self) -> global___KpiPortInfo: ...
    @property
    def portG(self) -> global___KpiPortInfo: ...
    @property
    def portH(self) -> global___KpiPortInfo: ...
    @property
    def aux0(self) -> global___KpiPortInfo: ...
    @property
    def aux1(self) -> global___KpiPortInfo: ...
    def __init__(
        self,
        *,
        portA: global___KpiPortInfo | None = ...,
        portB: global___KpiPortInfo | None = ...,
        portC: global___KpiPortInfo | None = ...,
        portD: global___KpiPortInfo | None = ...,
        portE: global___KpiPortInfo | None = ...,
        portF: global___KpiPortInfo | None = ...,
        portG: global___KpiPortInfo | None = ...,
        portH: global___KpiPortInfo | None = ...,
        aux0: global___KpiPortInfo | None = ...,
        aux1: global___KpiPortInfo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["aux0", b"aux0", "aux1", b"aux1", "portA", b"portA", "portB", b"portB", "portC", b"portC", "portD", b"portD", "portE", b"portE", "portF", b"portF", "portG", b"portG", "portH", b"portH"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["aux0", b"aux0", "aux1", b"aux1", "portA", b"portA", "portB", b"portB", "portC", b"portC", "portD", b"portD", "portE", b"portE", "portF", b"portF", "portG", b"portG", "portH", b"portH"]) -> None: ...

global___LogsysKpiTailReply = LogsysKpiTailReply

@typing.final
class KpiPortInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KPITAIL_FIELD_NUMBER: builtins.int
    @property
    def kpiTail(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KpiTailRows]: ...
    def __init__(
        self,
        *,
        kpiTail: collections.abc.Iterable[global___KpiTailRows] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["kpiTail", b"kpiTail"]) -> None: ...

global___KpiPortInfo = KpiPortInfo

@typing.final
class KpiTailRows(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WALLTIME_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    LOCALSIGTYPE_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    DUR_FIELD_NUMBER: builtins.int
    STDDEV_FIELD_NUMBER: builtins.int
    CSTDDEV_FIELD_NUMBER: builtins.int
    ABSEVTAMP_FIELD_NUMBER: builtins.int
    CABSEVTAMP_FIELD_NUMBER: builtins.int
    SNR_FIELD_NUMBER: builtins.int
    CSNR_FIELD_NUMBER: builtins.int
    NUMEVTS_FIELD_NUMBER: builtins.int
    CNUMEVTS_FIELD_NUMBER: builtins.int
    EVTRATE_FIELD_NUMBER: builtins.int
    CEVTRATE_FIELD_NUMBER: builtins.int
    MAX_FIELD_NUMBER: builtins.int
    CMAX_FIELD_NUMBER: builtins.int
    MIN_FIELD_NUMBER: builtins.int
    CMIN_FIELD_NUMBER: builtins.int
    MEANPOSPKAMP_FIELD_NUMBER: builtins.int
    MEANNEGPKAMP_FIELD_NUMBER: builtins.int
    wallTime: builtins.str
    timeRange: builtins.float
    localSigType: builtins.str
    ntvChanIdx: builtins.int
    dur: builtins.float
    stdDev: builtins.float
    cStdDev: builtins.float
    absEvtAmp: builtins.float
    cabsEvtAmp: builtins.float
    SNR: builtins.float
    cSNR: builtins.float
    numEvts: builtins.int
    cnumEvts: builtins.int
    evtRate: builtins.float
    cEvtRate: builtins.float
    max: builtins.float
    cmax: builtins.float
    min: builtins.float
    cmin: builtins.float
    meanPosPkAmp: builtins.float
    meanNegPkAmp: builtins.float
    def __init__(
        self,
        *,
        wallTime: builtins.str | None = ...,
        timeRange: builtins.float | None = ...,
        localSigType: builtins.str | None = ...,
        ntvChanIdx: builtins.int | None = ...,
        dur: builtins.float | None = ...,
        stdDev: builtins.float | None = ...,
        cStdDev: builtins.float | None = ...,
        absEvtAmp: builtins.float | None = ...,
        cabsEvtAmp: builtins.float | None = ...,
        SNR: builtins.float | None = ...,
        cSNR: builtins.float | None = ...,
        numEvts: builtins.int | None = ...,
        cnumEvts: builtins.int | None = ...,
        evtRate: builtins.float | None = ...,
        cEvtRate: builtins.float | None = ...,
        max: builtins.float | None = ...,
        cmax: builtins.float | None = ...,
        min: builtins.float | None = ...,
        cmin: builtins.float | None = ...,
        meanPosPkAmp: builtins.float | None = ...,
        meanNegPkAmp: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["SNR", b"SNR", "absEvtAmp", b"absEvtAmp", "cEvtRate", b"cEvtRate", "cSNR", b"cSNR", "cStdDev", b"cStdDev", "cabsEvtAmp", b"cabsEvtAmp", "cmax", b"cmax", "cmin", b"cmin", "cnumEvts", b"cnumEvts", "dur", b"dur", "evtRate", b"evtRate", "localSigType", b"localSigType", "max", b"max", "meanNegPkAmp", b"meanNegPkAmp", "meanPosPkAmp", b"meanPosPkAmp", "min", b"min", "ntvChanIdx", b"ntvChanIdx", "numEvts", b"numEvts", "stdDev", b"stdDev", "timeRange", b"timeRange", "wallTime", b"wallTime"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["SNR", b"SNR", "absEvtAmp", b"absEvtAmp", "cEvtRate", b"cEvtRate", "cSNR", b"cSNR", "cStdDev", b"cStdDev", "cabsEvtAmp", b"cabsEvtAmp", "cmax", b"cmax", "cmin", b"cmin", "cnumEvts", b"cnumEvts", "dur", b"dur", "evtRate", b"evtRate", "localSigType", b"localSigType", "max", b"max", "meanNegPkAmp", b"meanNegPkAmp", "meanPosPkAmp", b"meanPosPkAmp", "min", b"min", "ntvChanIdx", b"ntvChanIdx", "numEvts", b"numEvts", "stdDev", b"stdDev", "timeRange", b"timeRange", "wallTime", b"wallTime"]) -> None: ...

global___KpiTailRows = KpiTailRows

@typing.final
class WarehouseHealthcheckSpec(google.protobuf.message.Message):
    """message OutfitterComponentHealth {
      optional string errMsg = 2;
    }
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ERRMSG_FIELD_NUMBER: builtins.int
    errMsg: builtins.str
    def __init__(
        self,
        *,
        errMsg: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> None: ...

global___WarehouseHealthcheckSpec = WarehouseHealthcheckSpec

@typing.final
class OutfitterGetDeviceRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    KEY_FIELD_NUMBER: builtins.int
    key: builtins.str
    def __init__(
        self,
        *,
        key: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["key", b"key"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["key", b"key"]) -> None: ...

global___OutfitterGetDeviceRequest = OutfitterGetDeviceRequest

@typing.final
class SensorCompRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBE_FIELD_NUMBER: builtins.int
    HEADSTAGE_FIELD_NUMBER: builtins.int
    ISINCLUDEMODEL_FIELD_NUMBER: builtins.int
    ISINCLUDEMETADATA_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    isIncludeModel: builtins.bool
    isIncludeMetadata: builtins.bool
    iD: builtins.str
    """provisionally deprecated; map key for radiensserver"""
    @property
    def probe(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbeDesc]: ...
    @property
    def headstage(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeadstageDesc]: ...
    def __init__(
        self,
        *,
        probe: collections.abc.Iterable[global___ProbeDesc] | None = ...,
        headstage: collections.abc.Iterable[global___HeadstageDesc] | None = ...,
        isIncludeModel: builtins.bool | None = ...,
        isIncludeMetadata: builtins.bool | None = ...,
        iD: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["iD", b"iD", "isIncludeMetadata", b"isIncludeMetadata", "isIncludeModel", b"isIncludeModel"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headstage", b"headstage", "iD", b"iD", "isIncludeMetadata", b"isIncludeMetadata", "isIncludeModel", b"isIncludeModel", "probe", b"probe"]) -> None: ...

global___SensorCompRequest = SensorCompRequest

@typing.final
class RegisterSensorCompRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBE_FIELD_NUMBER: builtins.int
    HEADSTAGE_FIELD_NUMBER: builtins.int
    PROFILEID_FIELD_NUMBER: builtins.int
    profileID: builtins.str
    @property
    def probe(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbeDesc]: ...
    @property
    def headstage(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeadstageDesc]: ...
    def __init__(
        self,
        *,
        probe: collections.abc.Iterable[global___ProbeDesc] | None = ...,
        headstage: collections.abc.Iterable[global___HeadstageDesc] | None = ...,
        profileID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["profileID", b"profileID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headstage", b"headstage", "probe", b"probe", "profileID", b"profileID"]) -> None: ...

global___RegisterSensorCompRequest = RegisterSensorCompRequest

@typing.final
class SaveSensorCompInstanceRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBE_FIELD_NUMBER: builtins.int
    HEADSTAGE_FIELD_NUMBER: builtins.int
    ISINCLUDEMETADATA_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    isIncludeMetadata: builtins.bool
    iD: builtins.str
    """key for radiensserver SensorCompManager"""
    @property
    def probe(self) -> global___ProbeDesc: ...
    @property
    def headstage(self) -> global___HeadstageDesc: ...
    def __init__(
        self,
        *,
        probe: global___ProbeDesc | None = ...,
        headstage: global___HeadstageDesc | None = ...,
        isIncludeMetadata: builtins.bool | None = ...,
        iD: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["headstage", b"headstage", "iD", b"iD", "isIncludeMetadata", b"isIncludeMetadata", "probe", b"probe"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["headstage", b"headstage", "iD", b"iD", "isIncludeMetadata", b"isIncludeMetadata", "probe", b"probe"]) -> None: ...

global___SaveSensorCompInstanceRequest = SaveSensorCompInstanceRequest

@typing.final
class ProbeDesc(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    UID_FIELD_NUMBER: builtins.int
    name: builtins.str
    """file name"""
    uID: builtins.str
    """nil->generic, NNx serial number->instantiated, immutable once set"""
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        uID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["name", b"name", "uID", b"uID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["name", b"name", "uID", b"uID"]) -> None: ...

global___ProbeDesc = ProbeDesc

@typing.final
class HeadstageDesc(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    UID_FIELD_NUMBER: builtins.int
    name: builtins.str
    """file name"""
    uID: builtins.str
    """nil->generic, NNx serial number->registered, immutable once set"""
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        uID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["name", b"name", "uID", b"uID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["name", b"name", "uID", b"uID"]) -> None: ...

global___HeadstageDesc = HeadstageDesc

@typing.final
class GetSensorCompReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBE_FIELD_NUMBER: builtins.int
    HEADSTAGE_FIELD_NUMBER: builtins.int
    @property
    def probe(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbeSpec]: ...
    @property
    def headstage(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeadstageSpec]: ...
    def __init__(
        self,
        *,
        probe: collections.abc.Iterable[global___ProbeSpec] | None = ...,
        headstage: collections.abc.Iterable[global___HeadstageSpec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["headstage", b"headstage", "probe", b"probe"]) -> None: ...

global___GetSensorCompReply = GetSensorCompReply

@typing.final
class ProbeSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESC_FIELD_NUMBER: builtins.int
    MODEL_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def desc(self) -> global___ProbeDesc: ...
    @property
    def model(self) -> global___ProbeModel: ...
    @property
    def metaData(self) -> global___ProbeMetaData: ...
    def __init__(
        self,
        *,
        desc: global___ProbeDesc | None = ...,
        model: global___ProbeModel | None = ...,
        metaData: global___ProbeMetaData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["desc", b"desc", "metaData", b"metaData", "model", b"model"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["desc", b"desc", "metaData", b"metaData", "model", b"model"]) -> None: ...

global___ProbeSpec = ProbeSpec

@typing.final
class HeadstageSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESC_FIELD_NUMBER: builtins.int
    MODEL_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    @property
    def desc(self) -> global___HeadstageDesc: ...
    @property
    def model(self) -> global___HeadstageModel: ...
    @property
    def metaData(self) -> global___HeadstageMetaData: ...
    def __init__(
        self,
        *,
        desc: global___HeadstageDesc | None = ...,
        model: global___HeadstageModel | None = ...,
        metaData: global___HeadstageMetaData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["desc", b"desc", "metaData", b"metaData", "model", b"model"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["desc", b"desc", "metaData", b"metaData", "model", b"model"]) -> None: ...

global___HeadstageSpec = HeadstageSpec

@typing.final
class ProbeModel(google.protobuf.message.Message):
    """comprehensive probe model. Must be a superset of sensor.ProbeT"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class ProbeSiteDesc(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        AREA_FIELD_NUMBER: builtins.int
        CENTERX_FIELD_NUMBER: builtins.int
        CENTERY_FIELD_NUMBER: builtins.int
        CENTERZ_FIELD_NUMBER: builtins.int
        LIMITXMAX_FIELD_NUMBER: builtins.int
        LIMITXMIN_FIELD_NUMBER: builtins.int
        LIMITYMAX_FIELD_NUMBER: builtins.int
        LIMITYMIN_FIELD_NUMBER: builtins.int
        LIMITZMAX_FIELD_NUMBER: builtins.int
        LIMITZMIN_FIELD_NUMBER: builtins.int
        NUM_FIELD_NUMBER: builtins.int
        SHAPE_FIELD_NUMBER: builtins.int
        area: builtins.float
        centerX: builtins.float
        centerY: builtins.float
        centerZ: builtins.float
        limitXMax: builtins.float
        limitXMin: builtins.float
        limitYMax: builtins.float
        limitYMin: builtins.float
        limitZMax: builtins.float
        limitZMin: builtins.float
        num: builtins.int
        shape: builtins.str
        def __init__(
            self,
            *,
            area: builtins.float | None = ...,
            centerX: builtins.float | None = ...,
            centerY: builtins.float | None = ...,
            centerZ: builtins.float | None = ...,
            limitXMax: builtins.float | None = ...,
            limitXMin: builtins.float | None = ...,
            limitYMax: builtins.float | None = ...,
            limitYMin: builtins.float | None = ...,
            limitZMax: builtins.float | None = ...,
            limitZMin: builtins.float | None = ...,
            num: builtins.int | None = ...,
            shape: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["area", b"area", "centerX", b"centerX", "centerY", b"centerY", "centerZ", b"centerZ", "limitXMax", b"limitXMax", "limitXMin", b"limitXMin", "limitYMax", b"limitYMax", "limitYMin", b"limitYMin", "limitZMax", b"limitZMax", "limitZMin", b"limitZMin", "num", b"num", "shape", b"shape"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["area", b"area", "centerX", b"centerX", "centerY", b"centerY", "centerZ", b"centerZ", "limitXMax", b"limitXMax", "limitXMin", b"limitXMin", "limitYMax", b"limitYMax", "limitYMin", b"limitYMin", "limitZMax", b"limitZMax", "limitZMin", b"limitZMin", "num", b"num", "shape", b"shape"]) -> None: ...

    @typing.final
    class ProbeWireFrame(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        VERTEX_FIELD_NUMBER: builtins.int
        LIMITX_FIELD_NUMBER: builtins.int
        LIMITY_FIELD_NUMBER: builtins.int
        @property
        def vertex(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbeModel.ProbePtXY]: ...
        @property
        def limitX(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        @property
        def limitY(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
        def __init__(
            self,
            *,
            vertex: collections.abc.Iterable[global___ProbeModel.ProbePtXY] | None = ...,
            limitX: collections.abc.Iterable[builtins.float] | None = ...,
            limitY: collections.abc.Iterable[builtins.float] | None = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["limitX", b"limitX", "limitY", b"limitY", "vertex", b"vertex"]) -> None: ...

    @typing.final
    class ProbePtXY(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        X_FIELD_NUMBER: builtins.int
        Y_FIELD_NUMBER: builtins.int
        x: builtins.float
        y: builtins.float
        def __init__(
            self,
            *,
            x: builtins.float | None = ...,
            y: builtins.float | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    SITE_FIELD_NUMBER: builtins.int
    WIREFRAME_FIELD_NUMBER: builtins.int
    SITEOVERALLMIN_FIELD_NUMBER: builtins.int
    SITEOVERALLMAX_FIELD_NUMBER: builtins.int
    iD: builtins.str
    @property
    def site(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbeModel.ProbeSiteDesc]:
        """len = # sites"""

    @property
    def wireframe(self) -> global___ProbeModel.ProbeWireFrame: ...
    @property
    def siteOverallMin(self) -> global___ProbeModel.ProbePtXY: ...
    @property
    def siteOverallMax(self) -> global___ProbeModel.ProbePtXY: ...
    def __init__(
        self,
        *,
        iD: builtins.str | None = ...,
        site: collections.abc.Iterable[global___ProbeModel.ProbeSiteDesc] | None = ...,
        wireframe: global___ProbeModel.ProbeWireFrame | None = ...,
        siteOverallMin: global___ProbeModel.ProbePtXY | None = ...,
        siteOverallMax: global___ProbeModel.ProbePtXY | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["iD", b"iD", "siteOverallMax", b"siteOverallMax", "siteOverallMin", b"siteOverallMin", "wireframe", b"wireframe"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["iD", b"iD", "site", b"site", "siteOverallMax", b"siteOverallMax", "siteOverallMin", b"siteOverallMin", "wireframe", b"wireframe"]) -> None: ...

global___ProbeModel = ProbeModel

@typing.final
class ProbeMetaData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROBENAME_FIELD_NUMBER: builtins.int
    NUMSITES_FIELD_NUMBER: builtins.int
    CATALOGTAGS_FIELD_NUMBER: builtins.int
    INSTANCETAGS_FIELD_NUMBER: builtins.int
    probeName: builtins.str
    numSites: builtins.int
    catalogTags: builtins.str
    instanceTags: builtins.str
    def __init__(
        self,
        *,
        probeName: builtins.str | None = ...,
        numSites: builtins.int | None = ...,
        catalogTags: builtins.str | None = ...,
        instanceTags: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["catalogTags", b"catalogTags", "instanceTags", b"instanceTags", "numSites", b"numSites", "probeName", b"probeName"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["catalogTags", b"catalogTags", "instanceTags", b"instanceTags", "numSites", b"numSites", "probeName", b"probeName"]) -> None: ...

global___ProbeMetaData = ProbeMetaData

@typing.final
class HeadstageModel(google.protobuf.message.Message):
    """must exactly map sensor.HeadstageT"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class HeadstageRow(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NTVCHANIDX_FIELD_NUMBER: builtins.int
        SITENUM_FIELD_NUMBER: builtins.int
        ntvChanIdx: builtins.int
        siteNum: builtins.int
        def __init__(
            self,
            *,
            ntvChanIdx: builtins.int | None = ...,
            siteNum: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["ntvChanIdx", b"ntvChanIdx", "siteNum", b"siteNum"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["ntvChanIdx", b"ntvChanIdx", "siteNum", b"siteNum"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    ROWS_FIELD_NUMBER: builtins.int
    iD: builtins.str
    @property
    def rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeadstageModel.HeadstageRow]: ...
    def __init__(
        self,
        *,
        iD: builtins.str | None = ...,
        rows: collections.abc.Iterable[global___HeadstageModel.HeadstageRow] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["iD", b"iD"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["iD", b"iD", "rows", b"rows"]) -> None: ...

global___HeadstageModel = HeadstageModel

@typing.final
class HeadstageMetaData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___HeadstageMetaData = HeadstageMetaData

@typing.final
class UserProfile(google.protobuf.message.Message):
    """message ManageSessionReply {
      repeated SessionPayload payload = 1;
      required bool isActiveSession = 2;
    }
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROFILEID_FIELD_NUMBER: builtins.int
    LICENSECODE_FIELD_NUMBER: builtins.int
    profileID: builtins.str
    licenseCode: builtins.str
    def __init__(
        self,
        *,
        profileID: builtins.str | None = ...,
        licenseCode: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["licenseCode", b"licenseCode", "profileID", b"profileID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["licenseCode", b"licenseCode", "profileID", b"profileID"]) -> None: ...

global___UserProfile = UserProfile

@typing.final
class GetCurrentProfileReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERPROFILE_FIELD_NUMBER: builtins.int
    @property
    def userProfile(self) -> global___UserProfile: ...
    def __init__(
        self,
        *,
        userProfile: global___UserProfile | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["userProfile", b"userProfile"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["userProfile", b"userProfile"]) -> None: ...

global___GetCurrentProfileReply = GetCurrentProfileReply

@typing.final
class GetAllProfilesReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERPROFILES_FIELD_NUMBER: builtins.int
    @property
    def userProfiles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UserProfile]: ...
    def __init__(
        self,
        *,
        userProfiles: collections.abc.Iterable[global___UserProfile] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["userProfiles", b"userProfiles"]) -> None: ...

global___GetAllProfilesReply = GetAllProfilesReply

@typing.final
class SetCurrentProfileRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROFILEID_FIELD_NUMBER: builtins.int
    profileID: builtins.str
    def __init__(
        self,
        *,
        profileID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["profileID", b"profileID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["profileID", b"profileID"]) -> None: ...

global___SetCurrentProfileRequest = SetCurrentProfileRequest

@typing.final
class ManageNodeOrgPayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ORGID_FIELD_NUMBER: builtins.int
    ORGNAME_FIELD_NUMBER: builtins.int
    ORGSHORTNAME_FIELD_NUMBER: builtins.int
    CITY_FIELD_NUMBER: builtins.int
    COUNTRY_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    orgID: builtins.str
    orgName: builtins.str
    orgShortName: builtins.str
    city: builtins.str
    country: builtins.str
    state: builtins.str
    tags: builtins.str
    def __init__(
        self,
        *,
        orgID: builtins.str | None = ...,
        orgName: builtins.str | None = ...,
        orgShortName: builtins.str | None = ...,
        city: builtins.str | None = ...,
        country: builtins.str | None = ...,
        state: builtins.str | None = ...,
        tags: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["city", b"city", "country", b"country", "orgID", b"orgID", "orgName", b"orgName", "orgShortName", b"orgShortName", "state", b"state", "tags", b"tags"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["city", b"city", "country", b"country", "orgID", b"orgID", "orgName", b"orgName", "orgShortName", b"orgShortName", "state", b"state", "tags", b"tags"]) -> None: ...

global___ManageNodeOrgPayload = ManageNodeOrgPayload

@typing.final
class ManageNodeOrgRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    cmd: global___ManageNodeCmd.ValueType
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeOrgPayload]: ...
    def __init__(
        self,
        *,
        cmd: global___ManageNodeCmd.ValueType | None = ...,
        payload: collections.abc.Iterable[global___ManageNodeOrgPayload] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cmd", b"cmd", "payload", b"payload"]) -> None: ...

global___ManageNodeOrgRequest = ManageNodeOrgRequest

@typing.final
class ManageNodeOrgReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    ERRMSG_FIELD_NUMBER: builtins.int
    errMsg: builtins.str
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeOrgPayload]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___ManageNodeOrgPayload] | None = ...,
        errMsg: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["errMsg", b"errMsg", "payload", b"payload"]) -> None: ...

global___ManageNodeOrgReply = ManageNodeOrgReply

@typing.final
class ManageNodeLabPayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LABID_FIELD_NUMBER: builtins.int
    LABDESC_FIELD_NUMBER: builtins.int
    DEPT_FIELD_NUMBER: builtins.int
    ORGANIZATION_FIELD_NUMBER: builtins.int
    ADMINID_FIELD_NUMBER: builtins.int
    LABHEADID_FIELD_NUMBER: builtins.int
    LABMANAGERID_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    labID: builtins.str
    labDesc: builtins.str
    dept: builtins.str
    organization: builtins.str
    adminID: builtins.str
    labHeadID: builtins.str
    labManagerID: builtins.str
    tags: builtins.str
    def __init__(
        self,
        *,
        labID: builtins.str | None = ...,
        labDesc: builtins.str | None = ...,
        dept: builtins.str | None = ...,
        organization: builtins.str | None = ...,
        adminID: builtins.str | None = ...,
        labHeadID: builtins.str | None = ...,
        labManagerID: builtins.str | None = ...,
        tags: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["adminID", b"adminID", "dept", b"dept", "labDesc", b"labDesc", "labHeadID", b"labHeadID", "labID", b"labID", "labManagerID", b"labManagerID", "organization", b"organization", "tags", b"tags"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["adminID", b"adminID", "dept", b"dept", "labDesc", b"labDesc", "labHeadID", b"labHeadID", "labID", b"labID", "labManagerID", b"labManagerID", "organization", b"organization", "tags", b"tags"]) -> None: ...

global___ManageNodeLabPayload = ManageNodeLabPayload

@typing.final
class ManageNodeLabRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    cmd: global___ManageNodeCmd.ValueType
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeLabPayload]: ...
    def __init__(
        self,
        *,
        cmd: global___ManageNodeCmd.ValueType | None = ...,
        payload: collections.abc.Iterable[global___ManageNodeLabPayload] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cmd", b"cmd", "payload", b"payload"]) -> None: ...

global___ManageNodeLabRequest = ManageNodeLabRequest

@typing.final
class ManageNodeLabReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    ERRMSG_FIELD_NUMBER: builtins.int
    errMsg: builtins.str
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeLabPayload]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___ManageNodeLabPayload] | None = ...,
        errMsg: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["errMsg", b"errMsg", "payload", b"payload"]) -> None: ...

global___ManageNodeLabReply = ManageNodeLabReply

@typing.final
class ManageNodeUserPayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USERID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PASSWORD_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    LABNAME_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    userID: builtins.str
    Name: builtins.str
    password: builtins.bytes
    role: global___UserRoleType.ValueType
    email: builtins.str
    labName: builtins.str
    tags: builtins.str
    def __init__(
        self,
        *,
        userID: builtins.str | None = ...,
        Name: builtins.str | None = ...,
        password: builtins.bytes | None = ...,
        role: global___UserRoleType.ValueType | None = ...,
        email: builtins.str | None = ...,
        labName: builtins.str | None = ...,
        tags: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["Name", b"Name", "email", b"email", "labName", b"labName", "password", b"password", "role", b"role", "tags", b"tags", "userID", b"userID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["Name", b"Name", "email", b"email", "labName", b"labName", "password", b"password", "role", b"role", "tags", b"tags", "userID", b"userID"]) -> None: ...

global___ManageNodeUserPayload = ManageNodeUserPayload

@typing.final
class ManageNodeUserRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    cmd: global___ManageNodeCmd.ValueType
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeUserPayload]: ...
    def __init__(
        self,
        *,
        cmd: global___ManageNodeCmd.ValueType | None = ...,
        payload: collections.abc.Iterable[global___ManageNodeUserPayload] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cmd", b"cmd", "payload", b"payload"]) -> None: ...

global___ManageNodeUserRequest = ManageNodeUserRequest

@typing.final
class ManageNodeUserReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    ERRMSG_FIELD_NUMBER: builtins.int
    errMsg: builtins.str
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ManageNodeUserPayload]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___ManageNodeUserPayload] | None = ...,
        errMsg: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["errMsg", b"errMsg"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["errMsg", b"errMsg", "payload", b"payload"]) -> None: ...

global___ManageNodeUserReply = ManageNodeUserReply

@typing.final
class CatalogProbePayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SPEC_FIELD_NUMBER: builtins.int
    @property
    def spec(self) -> global___ProbeSpec: ...
    def __init__(
        self,
        *,
        spec: global___ProbeSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["spec", b"spec"]) -> None: ...

global___CatalogProbePayload = CatalogProbePayload

@typing.final
class ProbeNodeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    cmd: global___ManageNodeCmd.ValueType
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbePayload]: ...
    def __init__(
        self,
        *,
        cmd: global___ManageNodeCmd.ValueType | None = ...,
        payload: collections.abc.Iterable[global___ProbePayload] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cmd", b"cmd", "payload", b"payload"]) -> None: ...

global___ProbeNodeRequest = ProbeNodeRequest

@typing.final
class ProbeNodeReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProbePayload]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___ProbePayload] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["payload", b"payload"]) -> None: ...

global___ProbeNodeReply = ProbeNodeReply

@typing.final
class ProbePayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SPEC_FIELD_NUMBER: builtins.int
    @property
    def spec(self) -> global___ProbeSpec: ...
    def __init__(
        self,
        *,
        spec: global___ProbeSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["spec", b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["spec", b"spec"]) -> None: ...

global___ProbePayload = ProbePayload

@typing.final
class EdgePayload(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class GenericNode(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        LABEL_FIELD_NUMBER: builtins.int
        IDPROPKEY_FIELD_NUMBER: builtins.int
        IDPROPVAL_FIELD_NUMBER: builtins.int
        label: global___WorldNodeLabel.ValueType
        idPropKey: builtins.str
        idPropVal: builtins.str
        def __init__(
            self,
            *,
            label: global___WorldNodeLabel.ValueType | None = ...,
            idPropKey: builtins.str | None = ...,
            idPropVal: builtins.str | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["idPropKey", b"idPropKey", "idPropVal", b"idPropVal", "label", b"label"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["idPropKey", b"idPropKey", "idPropVal", b"idPropVal", "label", b"label"]) -> None: ...

    SOURCE_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    EDGELABEL_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    edgeLabel: global___WorldEdgeLabel.ValueType
    direction: global___WorldEdgeDirection.ValueType
    @property
    def source(self) -> global___EdgePayload.GenericNode: ...
    @property
    def target(self) -> global___EdgePayload.GenericNode: ...
    def __init__(
        self,
        *,
        source: global___EdgePayload.GenericNode | None = ...,
        target: global___EdgePayload.GenericNode | None = ...,
        edgeLabel: global___WorldEdgeLabel.ValueType | None = ...,
        direction: global___WorldEdgeDirection.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["direction", b"direction", "edgeLabel", b"edgeLabel", "source", b"source", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["direction", b"direction", "edgeLabel", b"edgeLabel", "source", b"source", "target", b"target"]) -> None: ...

global___EdgePayload = EdgePayload

@typing.final
class WorldEdgeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EdgePayload]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___EdgePayload] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["payload", b"payload"]) -> None: ...

global___WorldEdgeRequest = WorldEdgeRequest

@typing.final
class WorldEdgeReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___WorldEdgeReply = WorldEdgeReply

@typing.final
class QueryWorldRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CMD_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    cmd: global___WorldQueryCmd.ValueType
    @property
    def args(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """nil or ordered args specific to each query"""

    def __init__(
        self,
        *,
        cmd: global___WorldQueryCmd.ValueType | None = ...,
        args: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["args", b"args", "cmd", b"cmd"]) -> None: ...

global___QueryWorldRequest = QueryWorldRequest

@typing.final
class QueryWorldRec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ORG_FIELD_NUMBER: builtins.int
    LAB_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    CATPROBE_FIELD_NUMBER: builtins.int
    PROBE_FIELD_NUMBER: builtins.int
    @property
    def org(self) -> global___ManageNodeOrgPayload:
        """nil"""

    @property
    def lab(self) -> global___ManageNodeLabPayload: ...
    @property
    def user(self) -> global___ManageNodeUserPayload: ...
    @property
    def catProbe(self) -> global___CatalogProbePayload: ...
    @property
    def probe(self) -> global___ProbePayload: ...
    def __init__(
        self,
        *,
        org: global___ManageNodeOrgPayload | None = ...,
        lab: global___ManageNodeLabPayload | None = ...,
        user: global___ManageNodeUserPayload | None = ...,
        catProbe: global___CatalogProbePayload | None = ...,
        probe: global___ProbePayload | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["catProbe", b"catProbe", "lab", b"lab", "org", b"org", "probe", b"probe", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["catProbe", b"catProbe", "lab", b"lab", "org", b"org", "probe", b"probe", "user", b"user"]) -> None: ...

global___QueryWorldRec = QueryWorldRec

@typing.final
class QueryWorldReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYLOAD_FIELD_NUMBER: builtins.int
    @property
    def payload(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___QueryWorldRec]: ...
    def __init__(
        self,
        *,
        payload: collections.abc.Iterable[global___QueryWorldRec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["payload", b"payload"]) -> None: ...

global___QueryWorldReply = QueryWorldReply

@typing.final
class HighLowPassTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FREQUENCY_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    frequency: builtins.float
    order: builtins.int
    """filter order"""
    def __init__(
        self,
        *,
        frequency: builtins.float | None = ...,
        order: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["frequency", b"frequency", "order", b"order"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["frequency", b"frequency", "order", b"order"]) -> None: ...

global___HighLowPassTransformParams = HighLowPassTransformParams

@typing.final
class BandTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LOWFREQUENCY_FIELD_NUMBER: builtins.int
    HIGHFREQUENCY_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    lowFrequency: builtins.float
    highFrequency: builtins.float
    order: builtins.int
    """filter order"""
    def __init__(
        self,
        *,
        lowFrequency: builtins.float | None = ...,
        highFrequency: builtins.float | None = ...,
        order: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["highFrequency", b"highFrequency", "lowFrequency", b"lowFrequency", "order", b"order"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["highFrequency", b"highFrequency", "lowFrequency", b"lowFrequency", "order", b"order"]) -> None: ...

global___BandTransformParams = BandTransformParams

@typing.final
class NotchTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NOTCHFREQUENCY_FIELD_NUMBER: builtins.int
    NOTCHBANDWIDTH_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    notchFrequency: builtins.float
    notchBandwidth: builtins.float
    order: builtins.int
    """filter order"""
    def __init__(
        self,
        *,
        notchFrequency: builtins.float | None = ...,
        notchBandwidth: builtins.float | None = ...,
        order: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["notchBandwidth", b"notchBandwidth", "notchFrequency", b"notchFrequency", "order", b"order"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["notchBandwidth", b"notchBandwidth", "notchFrequency", b"notchFrequency", "order", b"order"]) -> None: ...

global___NotchTransformParams = NotchTransformParams

@typing.final
class CARTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___CARTransformParams = CARTransformParams

@typing.final
class VirtualRefTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REFNTVCHANIDX_FIELD_NUMBER: builtins.int
    refNtvChanIdx: builtins.int
    def __init__(
        self,
        *,
        refNtvChanIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["refNtvChanIdx", b"refNtvChanIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["refNtvChanIdx", b"refNtvChanIdx"]) -> None: ...

global___VirtualRefTransformParams = VirtualRefTransformParams

@typing.final
class PairedRefTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REFNTVCHANIDX_FIELD_NUMBER: builtins.int
    TARGETNTVCHANIDX_FIELD_NUMBER: builtins.int
    refNtvChanIdx: builtins.int
    targetNtvChanIdx: builtins.int
    def __init__(
        self,
        *,
        refNtvChanIdx: builtins.int | None = ...,
        targetNtvChanIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["refNtvChanIdx", b"refNtvChanIdx", "targetNtvChanIdx", b"targetNtvChanIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["refNtvChanIdx", b"refNtvChanIdx", "targetNtvChanIdx", b"targetNtvChanIdx"]) -> None: ...

global___PairedRefTransformParams = PairedRefTransformParams

@typing.final
class DataSourceSinkTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DSRCNAME_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    dsrcName: builtins.str
    path: builtins.str
    fileType: global___RadixFileTypes.ValueType
    id: builtins.str
    def __init__(
        self,
        *,
        dsrcName: builtins.str | None = ...,
        path: builtins.str | None = ...,
        fileType: global___RadixFileTypes.ValueType | None = ...,
        id: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsrcName", b"dsrcName", "fileType", b"fileType", "id", b"id", "path", b"path"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsrcName", b"dsrcName", "fileType", b"fileType", "id", b"id", "path", b"path"]) -> None: ...

global___DataSourceSinkTransformParams = DataSourceSinkTransformParams

@typing.final
class BulkDataSourceTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SRCPARAMS_FIELD_NUMBER: builtins.int
    @property
    def srcParams(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataSourceSinkTransformParams]: ...
    def __init__(
        self,
        *,
        srcParams: collections.abc.Iterable[global___DataSourceSinkTransformParams] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["srcParams", b"srcParams"]) -> None: ...

global___BulkDataSourceTransformParams = BulkDataSourceTransformParams

@typing.final
class BulkDataSinkTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUFFIX_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    suffix: builtins.str
    """must apply suffix if fileType is same as corresponding source"""
    path: builtins.str
    fileType: global___RadixFileTypes.ValueType
    def __init__(
        self,
        *,
        suffix: builtins.str | None = ...,
        path: builtins.str | None = ...,
        fileType: global___RadixFileTypes.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fileType", b"fileType", "path", b"path", "suffix", b"suffix"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fileType", b"fileType", "path", b"path", "suffix", b"suffix"]) -> None: ...

global___BulkDataSinkTransformParams = BulkDataSinkTransformParams

@typing.final
class SliceTimeTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TIMESTART_FIELD_NUMBER: builtins.int
    TIMEEND_FIELD_NUMBER: builtins.int
    timeStart: builtins.float
    timeEnd: builtins.float
    def __init__(
        self,
        *,
        timeStart: builtins.float | None = ...,
        timeEnd: builtins.float | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["timeEnd", b"timeEnd", "timeStart", b"timeStart"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["timeEnd", b"timeEnd", "timeStart", b"timeStart"]) -> None: ...

global___SliceTimeTransformParams = SliceTimeTransformParams

@typing.final
class SliceChannelsTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SYSCHANIDXS_FIELD_NUMBER: builtins.int
    SIGNALGROUP_FIELD_NUMBER: builtins.int
    DSRCUID_FIELD_NUMBER: builtins.int
    dsrcUid: builtins.str
    @property
    def sysChanIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def signalGroup(self) -> global___SignalGroup: ...
    def __init__(
        self,
        *,
        sysChanIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        signalGroup: global___SignalGroup | None = ...,
        dsrcUid: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsrcUid", b"dsrcUid", "signalGroup", b"signalGroup"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsrcUid", b"dsrcUid", "signalGroup", b"signalGroup", "sysChanIdxs", b"sysChanIdxs"]) -> None: ...

global___SliceChannelsTransformParams = SliceChannelsTransformParams

@typing.final
class DownsampleTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SAMPLEFACTOR_FIELD_NUMBER: builtins.int
    sampleFactor: builtins.int
    def __init__(
        self,
        *,
        sampleFactor: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["sampleFactor", b"sampleFactor"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["sampleFactor", b"sampleFactor"]) -> None: ...

global___DownsampleTransformParams = DownsampleTransformParams

@typing.final
class RemapSensorTransformParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class SensorSpec(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        PORT_FIELD_NUMBER: builtins.int
        PROBEID_FIELD_NUMBER: builtins.int
        HEADSTAGEID_FIELD_NUMBER: builtins.int
        CONNECTIONNTVIDX_FIELD_NUMBER: builtins.int
        NUMCHANNELS_FIELD_NUMBER: builtins.int
        port: global___Port.ValueType
        probeId: builtins.str
        headstageId: builtins.str
        connectionNtvIdx: builtins.int
        numChannels: builtins.int
        """used to specify how many channels to"""
        def __init__(
            self,
            *,
            port: global___Port.ValueType | None = ...,
            probeId: builtins.str | None = ...,
            headstageId: builtins.str | None = ...,
            connectionNtvIdx: builtins.int | None = ...,
            numChannels: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numChannels", b"numChannels", "port", b"port", "probeId", b"probeId"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["connectionNtvIdx", b"connectionNtvIdx", "headstageId", b"headstageId", "numChannels", b"numChannels", "port", b"port", "probeId", b"probeId"]) -> None: ...

    SENSORS_FIELD_NUMBER: builtins.int
    DSRCUID_FIELD_NUMBER: builtins.int
    dsrcUid: builtins.str
    @property
    def sensors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RemapSensorTransformParams.SensorSpec]: ...
    def __init__(
        self,
        *,
        sensors: collections.abc.Iterable[global___RemapSensorTransformParams.SensorSpec] | None = ...,
        dsrcUid: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsrcUid", b"dsrcUid"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsrcUid", b"dsrcUid", "sensors", b"sensors"]) -> None: ...

global___RemapSensorTransformParams = RemapSensorTransformParams

@typing.final
class Position(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    X_FIELD_NUMBER: builtins.int
    Y_FIELD_NUMBER: builtins.int
    x: builtins.int
    y: builtins.int
    def __init__(
        self,
        *,
        x: builtins.int | None = ...,
        y: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["x", b"x", "y", b"y"]) -> None: ...

global___Position = Position

@typing.final
class TransformNode(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    INVALID_FIELD_NUMBER: builtins.int
    ERRORMESSAGE_FIELD_NUMBER: builtins.int
    HIGHLOWPASSPARAMS_FIELD_NUMBER: builtins.int
    BANDPARAMS_FIELD_NUMBER: builtins.int
    NOTCHPARAMS_FIELD_NUMBER: builtins.int
    CARPARAMS_FIELD_NUMBER: builtins.int
    VIRTUALREFPARAMS_FIELD_NUMBER: builtins.int
    PAIREDREFPARAMS_FIELD_NUMBER: builtins.int
    DATASOURCESINKPARAMS_FIELD_NUMBER: builtins.int
    SLICETIMEPARAMS_FIELD_NUMBER: builtins.int
    SLICECHANNELSPARAMS_FIELD_NUMBER: builtins.int
    DOWNSAMPLEPARAMS_FIELD_NUMBER: builtins.int
    REMAPSENSORPARAMS_FIELD_NUMBER: builtins.int
    BULKDATASOURCEPARAMS_FIELD_NUMBER: builtins.int
    BULKDATASINKPARAMS_FIELD_NUMBER: builtins.int
    SELECTED_FIELD_NUMBER: builtins.int
    id: builtins.str
    type: global___TransformNodeType.ValueType
    invalid: builtins.bool
    errorMessage: builtins.str
    selected: builtins.bool
    @property
    def position(self) -> global___Position: ...
    @property
    def highLowPassParams(self) -> global___HighLowPassTransformParams: ...
    @property
    def bandParams(self) -> global___BandTransformParams: ...
    @property
    def notchParams(self) -> global___NotchTransformParams: ...
    @property
    def carParams(self) -> global___CARTransformParams: ...
    @property
    def virtualRefParams(self) -> global___VirtualRefTransformParams: ...
    @property
    def pairedRefParams(self) -> global___PairedRefTransformParams: ...
    @property
    def datasourceSinkParams(self) -> global___DataSourceSinkTransformParams:
        """file descriptor"""

    @property
    def sliceTimeParams(self) -> global___SliceTimeTransformParams: ...
    @property
    def sliceChannelsParams(self) -> global___SliceChannelsTransformParams: ...
    @property
    def downsampleParams(self) -> global___DownsampleTransformParams: ...
    @property
    def remapSensorParams(self) -> global___RemapSensorTransformParams: ...
    @property
    def bulkDataSourceParams(self) -> global___BulkDataSourceTransformParams: ...
    @property
    def bulkDataSinkParams(self) -> global___BulkDataSinkTransformParams: ...
    def __init__(
        self,
        *,
        id: builtins.str | None = ...,
        type: global___TransformNodeType.ValueType | None = ...,
        position: global___Position | None = ...,
        invalid: builtins.bool | None = ...,
        errorMessage: builtins.str | None = ...,
        highLowPassParams: global___HighLowPassTransformParams | None = ...,
        bandParams: global___BandTransformParams | None = ...,
        notchParams: global___NotchTransformParams | None = ...,
        carParams: global___CARTransformParams | None = ...,
        virtualRefParams: global___VirtualRefTransformParams | None = ...,
        pairedRefParams: global___PairedRefTransformParams | None = ...,
        datasourceSinkParams: global___DataSourceSinkTransformParams | None = ...,
        sliceTimeParams: global___SliceTimeTransformParams | None = ...,
        sliceChannelsParams: global___SliceChannelsTransformParams | None = ...,
        downsampleParams: global___DownsampleTransformParams | None = ...,
        remapSensorParams: global___RemapSensorTransformParams | None = ...,
        bulkDataSourceParams: global___BulkDataSourceTransformParams | None = ...,
        bulkDataSinkParams: global___BulkDataSinkTransformParams | None = ...,
        selected: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bandParams", b"bandParams", "bulkDataSinkParams", b"bulkDataSinkParams", "bulkDataSourceParams", b"bulkDataSourceParams", "carParams", b"carParams", "datasourceSinkParams", b"datasourceSinkParams", "downsampleParams", b"downsampleParams", "errorMessage", b"errorMessage", "highLowPassParams", b"highLowPassParams", "id", b"id", "invalid", b"invalid", "notchParams", b"notchParams", "pairedRefParams", b"pairedRefParams", "position", b"position", "remapSensorParams", b"remapSensorParams", "selected", b"selected", "sliceChannelsParams", b"sliceChannelsParams", "sliceTimeParams", b"sliceTimeParams", "type", b"type", "virtualRefParams", b"virtualRefParams"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bandParams", b"bandParams", "bulkDataSinkParams", b"bulkDataSinkParams", "bulkDataSourceParams", b"bulkDataSourceParams", "carParams", b"carParams", "datasourceSinkParams", b"datasourceSinkParams", "downsampleParams", b"downsampleParams", "errorMessage", b"errorMessage", "highLowPassParams", b"highLowPassParams", "id", b"id", "invalid", b"invalid", "notchParams", b"notchParams", "pairedRefParams", b"pairedRefParams", "position", b"position", "remapSensorParams", b"remapSensorParams", "selected", b"selected", "sliceChannelsParams", b"sliceChannelsParams", "sliceTimeParams", b"sliceTimeParams", "type", b"type", "virtualRefParams", b"virtualRefParams"]) -> None: ...

global___TransformNode = TransformNode

@typing.final
class TransformEdge(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    SELECTED_FIELD_NUMBER: builtins.int
    id: builtins.str
    source: builtins.str
    target: builtins.str
    selected: builtins.bool
    def __init__(
        self,
        *,
        id: builtins.str | None = ...,
        source: builtins.str | None = ...,
        target: builtins.str | None = ...,
        selected: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["id", b"id", "selected", b"selected", "source", b"source", "target", b"target"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "selected", b"selected", "source", b"source", "target", b"target"]) -> None: ...

global___TransformEdge = TransformEdge

@typing.final
class Protocol(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TRANSFORMNODES_FIELD_NUMBER: builtins.int
    TRANSFORMEDGES_FIELD_NUMBER: builtins.int
    id: builtins.str
    @property
    def transformNodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TransformNode]: ...
    @property
    def transformEdges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TransformEdge]: ...
    def __init__(
        self,
        *,
        id: builtins.str | None = ...,
        transformNodes: collections.abc.Iterable[global___TransformNode] | None = ...,
        transformEdges: collections.abc.Iterable[global___TransformEdge] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["id", b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "transformEdges", b"transformEdges", "transformNodes", b"transformNodes"]) -> None: ...

global___Protocol = Protocol

@typing.final
class ProtocolRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROTOCOLID_FIELD_NUMBER: builtins.int
    protocolID: builtins.str
    def __init__(
        self,
        *,
        protocolID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["protocolID", b"protocolID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["protocolID", b"protocolID"]) -> None: ...

global___ProtocolRequest = ProtocolRequest

@typing.final
class RenameProtocolRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROTOCOLID_FIELD_NUMBER: builtins.int
    NEWPROTOCOLID_FIELD_NUMBER: builtins.int
    protocolID: builtins.str
    newProtocolID: builtins.str
    def __init__(
        self,
        *,
        protocolID: builtins.str | None = ...,
        newProtocolID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["newProtocolID", b"newProtocolID", "protocolID", b"protocolID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["newProtocolID", b"newProtocolID", "protocolID", b"protocolID"]) -> None: ...

global___RenameProtocolRequest = RenameProtocolRequest

@typing.final
class GetAllProtocolsReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROTOCOLS_FIELD_NUMBER: builtins.int
    @property
    def protocols(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Protocol]: ...
    def __init__(
        self,
        *,
        protocols: collections.abc.Iterable[global___Protocol] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["protocols", b"protocols"]) -> None: ...

global___GetAllProtocolsReply = GetAllProtocolsReply

@typing.final
class ApplyProtocolProgress(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LASTTIMESTAMPWRITTEN_FIELD_NUMBER: builtins.int
    DSRCTIMESTAMPEND_FIELD_NUMBER: builtins.int
    FRACCOMPLETE_FIELD_NUMBER: builtins.int
    INCREMENTSEC_FIELD_NUMBER: builtins.int
    PROTOCOLID_FIELD_NUMBER: builtins.int
    lastTimestampWritten: builtins.int
    dsrcTimestampEnd: builtins.int
    fracComplete: builtins.float
    incrementSec: builtins.float
    protocolID: builtins.str
    """distinguishes which protocol of expanded bulk protocol"""
    def __init__(
        self,
        *,
        lastTimestampWritten: builtins.int | None = ...,
        dsrcTimestampEnd: builtins.int | None = ...,
        fracComplete: builtins.float | None = ...,
        incrementSec: builtins.float | None = ...,
        protocolID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dsrcTimestampEnd", b"dsrcTimestampEnd", "fracComplete", b"fracComplete", "incrementSec", b"incrementSec", "lastTimestampWritten", b"lastTimestampWritten", "protocolID", b"protocolID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dsrcTimestampEnd", b"dsrcTimestampEnd", "fracComplete", b"fracComplete", "incrementSec", b"incrementSec", "lastTimestampWritten", b"lastTimestampWritten", "protocolID", b"protocolID"]) -> None: ...

global___ApplyProtocolProgress = ApplyProtocolProgress

@typing.final
class SpikeSorterSetParamRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SPIKESORTERID_FIELD_NUMBER: builtins.int
    CMD_FIELD_NUMBER: builtins.int
    REGFLOAT64_FIELD_NUMBER: builtins.int
    REGBOOL_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    spikeSorterID: builtins.str
    cmd: global___SpikeSorterParamCommand.ValueType
    @property
    def regFloat64(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def regBool(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
    @property
    def ntvChanIdx(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        spikeSorterID: builtins.str | None = ...,
        cmd: global___SpikeSorterParamCommand.ValueType | None = ...,
        regFloat64: collections.abc.Iterable[builtins.float] | None = ...,
        regBool: collections.abc.Iterable[builtins.bool] | None = ...,
        ntvChanIdx: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["cmd", b"cmd", "spikeSorterID", b"spikeSorterID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["cmd", b"cmd", "ntvChanIdx", b"ntvChanIdx", "regBool", b"regBool", "regFloat64", b"regFloat64", "spikeSorterID", b"spikeSorterID"]) -> None: ...

global___SpikeSorterSetParamRequest = SpikeSorterSetParamRequest

@typing.final
class SpikeSorterSetParamsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SpikeSorterSetParamRequest]: ...
    def __init__(
        self,
        *,
        params: collections.abc.Iterable[global___SpikeSorterSetParamRequest] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["params", b"params"]) -> None: ...

global___SpikeSorterSetParamsRequest = SpikeSorterSetParamsRequest

@typing.final
class SpikeSorterParamCommandRecord(google.protobuf.message.Message):
    """!! post-MVP refactor to SpikeDetectParamRecord"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ISENABLED_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    THR_FIELD_NUMBER: builtins.int
    THRSD_FIELD_NUMBER: builtins.int
    THRWDWPTS_FIELD_NUMBER: builtins.int
    THRWDW_FIELD_NUMBER: builtins.int
    SHADOW_FIELD_NUMBER: builtins.int
    SHADOWPTS_FIELD_NUMBER: builtins.int
    ISSETTHR_FIELD_NUMBER: builtins.int
    WEAKTHR_FIELD_NUMBER: builtins.int
    WEAKTHRSD_FIELD_NUMBER: builtins.int
    ISSETWEAKTHR_FIELD_NUMBER: builtins.int
    PEAKWDWPTS_FIELD_NUMBER: builtins.int
    PEAKWDW_FIELD_NUMBER: builtins.int
    ISSD_FIELD_NUMBER: builtins.int
    isEnabled: builtins.bool
    ntvChanIdx: builtins.int
    shadow: builtins.float
    """sec"""
    shadowPts: builtins.int
    isSD: builtins.bool
    """indicates if the thr was controlled via SD or uV. Doesn't control any backend behavior; just used as a hint for UI display"""
    @property
    def thr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[neg, pos] uV"""

    @property
    def thrSd(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[neg, pos] units of standard deviation"""

    @property
    def thrWdwPts(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """[pre, post, total]"""

    @property
    def thrWdw(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[pre, post, total] sec"""

    @property
    def isSetThr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]:
        """[neg, pos]"""

    @property
    def weakThr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[neg, pos] threshold"""

    @property
    def weakThrSd(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[neg, pos] units of standard deviation"""

    @property
    def isSetWeakThr(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]:
        """[neg, pos]"""

    @property
    def peakWdwPts(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """[pre, post, total]"""

    @property
    def peakWdw(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """[pre, post, total] sec"""

    def __init__(
        self,
        *,
        isEnabled: builtins.bool | None = ...,
        ntvChanIdx: builtins.int | None = ...,
        thr: collections.abc.Iterable[builtins.float] | None = ...,
        thrSd: collections.abc.Iterable[builtins.float] | None = ...,
        thrWdwPts: collections.abc.Iterable[builtins.int] | None = ...,
        thrWdw: collections.abc.Iterable[builtins.float] | None = ...,
        shadow: builtins.float | None = ...,
        shadowPts: builtins.int | None = ...,
        isSetThr: collections.abc.Iterable[builtins.bool] | None = ...,
        weakThr: collections.abc.Iterable[builtins.float] | None = ...,
        weakThrSd: collections.abc.Iterable[builtins.float] | None = ...,
        isSetWeakThr: collections.abc.Iterable[builtins.bool] | None = ...,
        peakWdwPts: collections.abc.Iterable[builtins.int] | None = ...,
        peakWdw: collections.abc.Iterable[builtins.float] | None = ...,
        isSD: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["isEnabled", b"isEnabled", "isSD", b"isSD", "ntvChanIdx", b"ntvChanIdx", "shadow", b"shadow", "shadowPts", b"shadowPts"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["isEnabled", b"isEnabled", "isSD", b"isSD", "isSetThr", b"isSetThr", "isSetWeakThr", b"isSetWeakThr", "ntvChanIdx", b"ntvChanIdx", "peakWdw", b"peakWdw", "peakWdwPts", b"peakWdwPts", "shadow", b"shadow", "shadowPts", b"shadowPts", "thr", b"thr", "thrSd", b"thrSd", "thrWdw", b"thrWdw", "thrWdwPts", b"thrWdwPts", "weakThr", b"weakThr", "weakThrSd", b"weakThrSd"]) -> None: ...

global___SpikeSorterParamCommandRecord = SpikeSorterParamCommandRecord

@typing.final
class DACStreamRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DAC_FIELD_NUMBER: builtins.int
    NTVCHANIDX_FIELD_NUMBER: builtins.int
    STREAMGROUPID_FIELD_NUMBER: builtins.int
    DAC: builtins.int
    NtvChanIdx: builtins.int
    streamGroupId: builtins.str
    """!! DEPRECATE"""
    def __init__(
        self,
        *,
        DAC: builtins.int | None = ...,
        NtvChanIdx: builtins.int | None = ...,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["DAC", b"DAC", "NtvChanIdx", b"NtvChanIdx", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["DAC", b"DAC", "NtvChanIdx", b"NtvChanIdx", "streamGroupId", b"streamGroupId"]) -> None: ...

global___DACStreamRequest = DACStreamRequest

@typing.final
class EventViewerConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTVIEWERID_FIELD_NUMBER: builtins.int
    STREAMGROUPID_FIELD_NUMBER: builtins.int
    TRIGGERSYSCHANIDX_FIELD_NUMBER: builtins.int
    TRIGGERTHRESHOLDUV_FIELD_NUMBER: builtins.int
    PRETRIGGERMS_FIELD_NUMBER: builtins.int
    POSTTRIGGERMS_FIELD_NUMBER: builtins.int
    TRIGGERTYPE_FIELD_NUMBER: builtins.int
    NTVIDX_FIELD_NUMBER: builtins.int
    eventViewerId: builtins.str
    streamGroupId: builtins.str
    triggerSysChanIdx: builtins.int
    triggerThresholdUV: builtins.float
    preTriggerMs: builtins.float
    postTriggerMs: builtins.float
    triggerType: global___SignalType.ValueType
    ntvIdx: builtins.int
    def __init__(
        self,
        *,
        eventViewerId: builtins.str | None = ...,
        streamGroupId: builtins.str | None = ...,
        triggerSysChanIdx: builtins.int | None = ...,
        triggerThresholdUV: builtins.float | None = ...,
        preTriggerMs: builtins.float | None = ...,
        postTriggerMs: builtins.float | None = ...,
        triggerType: global___SignalType.ValueType | None = ...,
        ntvIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId", "ntvIdx", b"ntvIdx", "postTriggerMs", b"postTriggerMs", "preTriggerMs", b"preTriggerMs", "streamGroupId", b"streamGroupId", "triggerSysChanIdx", b"triggerSysChanIdx", "triggerThresholdUV", b"triggerThresholdUV", "triggerType", b"triggerType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId", "ntvIdx", b"ntvIdx", "postTriggerMs", b"postTriggerMs", "preTriggerMs", b"preTriggerMs", "streamGroupId", b"streamGroupId", "triggerSysChanIdx", b"triggerSysChanIdx", "triggerThresholdUV", b"triggerThresholdUV", "triggerType", b"triggerType"]) -> None: ...

global___EventViewerConfig = EventViewerConfig

@typing.final
class EventViewerID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTVIEWERID_FIELD_NUMBER: builtins.int
    STREAMGROUPID_FIELD_NUMBER: builtins.int
    eventViewerId: builtins.str
    streamGroupId: builtins.str
    def __init__(
        self,
        *,
        eventViewerId: builtins.str | None = ...,
        streamGroupId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId", "streamGroupId", b"streamGroupId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId", "streamGroupId", b"streamGroupId"]) -> None: ...

global___EventViewerID = EventViewerID

@typing.final
class GetEventViewerEventRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTVIEWERID_FIELD_NUMBER: builtins.int
    EVENTID_FIELD_NUMBER: builtins.int
    eventViewerId: builtins.str
    eventId: builtins.str
    def __init__(
        self,
        *,
        eventViewerId: builtins.str | None = ...,
        eventId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventId", b"eventId", "eventViewerId", b"eventViewerId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventId", b"eventId", "eventViewerId", b"eventViewerId"]) -> None: ...

global___GetEventViewerEventRequest = GetEventViewerEventRequest

@typing.final
class EventViewerEventDesc(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTID_FIELD_NUMBER: builtins.int
    TRIGGERTIMESTAMP_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    eventId: builtins.str
    triggerTimestamp: builtins.int
    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        eventId: builtins.str | None = ...,
        triggerTimestamp: builtins.int | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventId", b"eventId", "triggerTimestamp", b"triggerTimestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventId", b"eventId", "timestampRange", b"timestampRange", "triggerTimestamp", b"triggerTimestamp"]) -> None: ...

global___EventViewerEventDesc = EventViewerEventDesc

@typing.final
class EventViewerEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTID_FIELD_NUMBER: builtins.int
    TRIGGERTIMESTAMP_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    SIGNALS_FIELD_NUMBER: builtins.int
    SYSCHANIDXS_FIELD_NUMBER: builtins.int
    eventId: builtins.str
    triggerTimestamp: builtins.int
    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def signals(self) -> global___RawSignals: ...
    @property
    def sysChanIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """same length as signals.shape[0]; denotes"""

    def __init__(
        self,
        *,
        eventId: builtins.str | None = ...,
        triggerTimestamp: builtins.int | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
        signals: global___RawSignals | None = ...,
        sysChanIdxs: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventId", b"eventId", "signals", b"signals", "triggerTimestamp", b"triggerTimestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventId", b"eventId", "signals", b"signals", "sysChanIdxs", b"sysChanIdxs", "timestampRange", b"timestampRange", "triggerTimestamp", b"triggerTimestamp"]) -> None: ...

global___EventViewerEvent = EventViewerEvent

@typing.final
class ListEventViewerEventsReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTVIEWERID_FIELD_NUMBER: builtins.int
    EVENTS_FIELD_NUMBER: builtins.int
    eventViewerId: builtins.str
    @property
    def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EventViewerEventDesc]: ...
    def __init__(
        self,
        *,
        eventViewerId: builtins.str | None = ...,
        events: collections.abc.Iterable[global___EventViewerEventDesc] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["eventViewerId", b"eventViewerId", "events", b"events"]) -> None: ...

global___ListEventViewerEventsReply = ListEventViewerEventsReply

@typing.final
class ListEventViewersReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    EVENTVIEWERS_FIELD_NUMBER: builtins.int
    @property
    def eventViewers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EventViewerID]: ...
    def __init__(
        self,
        *,
        eventViewers: collections.abc.Iterable[global___EventViewerID] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["eventViewers", b"eventViewers"]) -> None: ...

global___ListEventViewersReply = ListEventViewersReply

@typing.final
class StatusPollFieldsToUpdateRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLIENTID_FIELD_NUMBER: builtins.int
    clientId: builtins.str
    def __init__(
        self,
        *,
        clientId: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["clientId", b"clientId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["clientId", b"clientId"]) -> None: ...

global___StatusPollFieldsToUpdateRequest = StatusPollFieldsToUpdateRequest

@typing.final
class StatusPollFieldsToUpdate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLIENTID_FIELD_NUMBER: builtins.int
    FIELDSTOUPDATE_FIELD_NUMBER: builtins.int
    clientId: builtins.str
    @property
    def fieldsToUpdate(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___StatusPollFields.ValueType]: ...
    def __init__(
        self,
        *,
        clientId: builtins.str | None = ...,
        fieldsToUpdate: collections.abc.Iterable[global___StatusPollFields.ValueType] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["clientId", b"clientId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["clientId", b"clientId", "fieldsToUpdate", b"fieldsToUpdate"]) -> None: ...

global___StatusPollFieldsToUpdate = StatusPollFieldsToUpdate

@typing.final
class DashboardCommandRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class Args(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        CMD_FIELD_NUMBER: builtins.int
        cmd: global___DashboardCommand.ValueType
        def __init__(
            self,
            *,
            cmd: global___DashboardCommand.ValueType | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["cmd", b"cmd"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["cmd", b"cmd"]) -> None: ...

    DASHTYPE_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    dashType: global___DashboardType.ValueType
    @property
    def args(self) -> global___DashboardCommandRequest.Args: ...
    def __init__(
        self,
        *,
        dashType: global___DashboardType.ValueType | None = ...,
        args: global___DashboardCommandRequest.Args | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["args", b"args", "dashType", b"dashType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["args", b"args", "dashType", b"dashType"]) -> None: ...

global___DashboardCommandRequest = DashboardCommandRequest

@typing.final
class SelTableSignalGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INDEX_FIELD_NUMBER: builtins.int
    CRITERIONDESC_FIELD_NUMBER: builtins.int
    NTVIDXS_FIELD_NUMBER: builtins.int
    NUMSIGS_FIELD_NUMBER: builtins.int
    index: builtins.str
    criterionDesc: builtins.str
    numSigs: builtins.int
    @property
    def ntvIdxs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        index: builtins.str | None = ...,
        criterionDesc: builtins.str | None = ...,
        ntvIdxs: collections.abc.Iterable[builtins.int] | None = ...,
        numSigs: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["criterionDesc", b"criterionDesc", "index", b"index", "numSigs", b"numSigs"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["criterionDesc", b"criterionDesc", "index", b"index", "ntvIdxs", b"ntvIdxs", "numSigs", b"numSigs"]) -> None: ...

global___SelTableSignalGroup = SelTableSignalGroup

@typing.final
class SelectorTablesReply(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SIG_FIELD_NUMBER: builtins.int
    @property
    def sig(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SelTableSignalGroup]: ...
    def __init__(
        self,
        *,
        sig: collections.abc.Iterable[global___SelTableSignalGroup] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sig", b"sig"]) -> None: ...

global___SelectorTablesReply = SelectorTablesReply

@typing.final
class DataSourceStatus(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    SIGNALGROUP_FIELD_NUMBER: builtins.int
    NUMTOTALSAMPLES_FIELD_NUMBER: builtins.int
    SAMPLEFREQ_FIELD_NUMBER: builtins.int
    UID_FIELD_NUMBER: builtins.int
    DATASOURCETYPE_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    MODE_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    BASEFILENAME_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    KPIDSOURCEID_FIELD_NUMBER: builtins.int
    type: global___SignalGroupType.ValueType
    duration: builtins.float
    """deprecated"""
    numTotalSamples: builtins.int
    sampleFreq: builtins.float
    """required int64 sizeBytes = 8;
    deprecated
    """
    uid: builtins.str
    dataSourceType: builtins.str
    fileType: global___RadixFileTypes.ValueType
    mode: builtins.str
    label: builtins.str
    path: builtins.str
    baseFileName: builtins.str
    kpiDsourceID: builtins.str
    @property
    def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """deprecated"""

    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """deprecated"""

    @property
    def signalGroup(self) -> global___SignalGroup:
        """repeated int64 shape = 5;"""

    @property
    def tR(self) -> global___TimeRange: ...
    def __init__(
        self,
        *,
        type: global___SignalGroupType.ValueType | None = ...,
        timeRange: collections.abc.Iterable[builtins.float] | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
        duration: builtins.float | None = ...,
        signalGroup: global___SignalGroup | None = ...,
        numTotalSamples: builtins.int | None = ...,
        sampleFreq: builtins.float | None = ...,
        uid: builtins.str | None = ...,
        dataSourceType: builtins.str | None = ...,
        fileType: global___RadixFileTypes.ValueType | None = ...,
        mode: builtins.str | None = ...,
        label: builtins.str | None = ...,
        path: builtins.str | None = ...,
        baseFileName: builtins.str | None = ...,
        tR: global___TimeRange | None = ...,
        kpiDsourceID: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["baseFileName", b"baseFileName", "dataSourceType", b"dataSourceType", "duration", b"duration", "fileType", b"fileType", "kpiDsourceID", b"kpiDsourceID", "label", b"label", "mode", b"mode", "numTotalSamples", b"numTotalSamples", "path", b"path", "sampleFreq", b"sampleFreq", "signalGroup", b"signalGroup", "tR", b"tR", "type", b"type", "uid", b"uid"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["baseFileName", b"baseFileName", "dataSourceType", b"dataSourceType", "duration", b"duration", "fileType", b"fileType", "kpiDsourceID", b"kpiDsourceID", "label", b"label", "mode", b"mode", "numTotalSamples", b"numTotalSamples", "path", b"path", "sampleFreq", b"sampleFreq", "signalGroup", b"signalGroup", "tR", b"tR", "timeRange", b"timeRange", "timestampRange", b"timestampRange", "type", b"type", "uid", b"uid"]) -> None: ...

global___DataSourceStatus = DataSourceStatus
