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

from . import biointerface_pb2
import builtins
import collections.abc
from . import common_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
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 _PyBridgeFileIOmode:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PyBridgeFileIOmodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PyBridgeFileIOmode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    READ: _PyBridgeFileIOmode.ValueType  # 0
    WRITE: _PyBridgeFileIOmode.ValueType  # 1

class PyBridgeFileIOmode(_PyBridgeFileIOmode, metaclass=_PyBridgeFileIOmodeEnumTypeWrapper): ...

READ: PyBridgeFileIOmode.ValueType  # 0
WRITE: PyBridgeFileIOmode.ValueType  # 1
global___PyBridgeFileIOmode = PyBridgeFileIOmode

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

class _SpikesExportFileModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SpikesExportFileMode.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SPIKES_FILE_CREATE: _SpikesExportFileMode.ValueType  # 0
    SPIKES_FILE_APPEND: _SpikesExportFileMode.ValueType  # 1
    SPIKES_FILE_POST_HOC: _SpikesExportFileMode.ValueType  # 2

class SpikesExportFileMode(_SpikesExportFileMode, metaclass=_SpikesExportFileModeEnumTypeWrapper): ...

SPIKES_FILE_CREATE: SpikesExportFileMode.ValueType  # 0
SPIKES_FILE_APPEND: SpikesExportFileMode.ValueType  # 1
SPIKES_FILE_POST_HOC: SpikesExportFileMode.ValueType  # 2
global___SpikesExportFileMode = SpikesExportFileMode

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

class _WaveformTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_WaveformType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SPIKE: _WaveformType.ValueType  # 0
    TEMPLATE: _WaveformType.ValueType  # 1

class WaveformType(_WaveformType, metaclass=_WaveformTypeEnumTypeWrapper): ...

SPIKE: WaveformType.ValueType  # 0
TEMPLATE: WaveformType.ValueType  # 1
global___WaveformType = WaveformType

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

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

global___Request = Request

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

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

global___Reply = Reply

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

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

global___PyBridgeFileStandardRequest = PyBridgeFileStandardRequest

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

    FILEUID_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    IOMODE_FIELD_NUMBER: builtins.int
    FILENAME_FIELD_NUMBER: builtins.int
    fileUID: builtins.str
    fileType: common_pb2.RadixFileTypes.ValueType
    ioMode: global___PyBridgeFileIOmode.ValueType
    fileName: builtins.str
    def __init__(
        self,
        *,
        fileUID: builtins.str | None = ...,
        fileType: common_pb2.RadixFileTypes.ValueType | None = ...,
        ioMode: global___PyBridgeFileIOmode.ValueType | None = ...,
        fileName: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fileName", b"fileName", "fileType", b"fileType", "fileUID", b"fileUID", "ioMode", b"ioMode"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fileName", b"fileName", "fileType", b"fileType", "fileUID", b"fileUID", "ioMode", b"ioMode"]) -> None: ...

global___PyBridgeFileOpenRequest = PyBridgeFileOpenRequest

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

    FILTTYPE_FIELD_NUMBER: builtins.int
    FREQSPEC_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    SECONDORDERSECTION_FIELD_NUMBER: builtins.int
    filtType: common_pb2.DSPType.ValueType
    order: builtins.int
    sampFreq: builtins.float
    secondOrderSection: builtins.bool
    """if true, design will be in SOS form"""
    @property
    def freqSpec(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        filtType: common_pb2.DSPType.ValueType | None = ...,
        freqSpec: collections.abc.Iterable[builtins.float] | None = ...,
        order: builtins.int | None = ...,
        sampFreq: builtins.float | None = ...,
        secondOrderSection: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["filtType", b"filtType", "order", b"order", "sampFreq", b"sampFreq", "secondOrderSection", b"secondOrderSection"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["filtType", b"filtType", "freqSpec", b"freqSpec", "order", b"order", "sampFreq", b"sampFreq", "secondOrderSection", b"secondOrderSection"]) -> None: ...

global___PyBridgeIirFilterDesignRequest = PyBridgeIirFilterDesignRequest

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

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

global___PyBridgeIirFilterDesignReply = PyBridgeIirFilterDesignReply

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

    FILEUID_FIELD_NUMBER: builtins.int
    DATAFILENAME_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    SHAPEPRI_FIELD_NUMBER: builtins.int
    SHAPEAUX_FIELD_NUMBER: builtins.int
    SHAPEDIN_FIELD_NUMBER: builtins.int
    SHAPEDOUT_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    TIMESPEC_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    fileUID: builtins.str
    dataFileName: builtins.str
    fileType: common_pb2.RadixFileTypes.ValueType
    sampFreq: builtins.float
    @property
    def shapePri(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def shapeAux(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def shapeDin(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def shapeDout(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def timeSpec(self) -> global___PyBridgeTimeSpec: ...
    @property
    def metaData(self) -> global___PyBridgeFileMetaData: ...
    def __init__(
        self,
        *,
        fileUID: builtins.str | None = ...,
        dataFileName: builtins.str | None = ...,
        fileType: common_pb2.RadixFileTypes.ValueType | None = ...,
        shapePri: collections.abc.Iterable[builtins.int] | None = ...,
        shapeAux: collections.abc.Iterable[builtins.int] | None = ...,
        shapeDin: collections.abc.Iterable[builtins.int] | None = ...,
        shapeDout: collections.abc.Iterable[builtins.int] | None = ...,
        sampFreq: builtins.float | None = ...,
        timeSpec: global___PyBridgeTimeSpec | None = ...,
        metaData: global___PyBridgeFileMetaData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dataFileName", b"dataFileName", "fileType", b"fileType", "fileUID", b"fileUID", "metaData", b"metaData", "sampFreq", b"sampFreq", "timeSpec", b"timeSpec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dataFileName", b"dataFileName", "fileType", b"fileType", "fileUID", b"fileUID", "metaData", b"metaData", "sampFreq", b"sampFreq", "shapeAux", b"shapeAux", "shapeDin", b"shapeDin", "shapeDout", b"shapeDout", "shapePri", b"shapePri", "timeSpec", b"timeSpec"]) -> None: ...

global___PyBridgeGetSpecReply = PyBridgeGetSpecReply

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

    @typing.final
    class PyBridgeTimeRangeT(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 PyBridgeTimestampRangeT(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: ...

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

        NUMDATABLOCKS_FIELD_NUMBER: builtins.int
        NUMSAMPLESPERDATABLOCK_FIELD_NUMBER: builtins.int
        FIRSTTIMESTAMP_FIELD_NUMBER: builtins.int
        HEADERBYTES_FIELD_NUMBER: builtins.int
        NUMBYTESDATABLOCK_FIELD_NUMBER: builtins.int
        numDataBlocks: builtins.int
        numSamplesPerDataBlock: builtins.int
        firstTimestamp: builtins.int
        headerBytes: builtins.int
        numBytesDataBlock: builtins.int
        def __init__(
            self,
            *,
            numDataBlocks: builtins.int | None = ...,
            numSamplesPerDataBlock: builtins.int | None = ...,
            firstTimestamp: builtins.int | None = ...,
            headerBytes: builtins.int | None = ...,
            numBytesDataBlock: builtins.int | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["firstTimestamp", b"firstTimestamp", "headerBytes", b"headerBytes", "numBytesDataBlock", b"numBytesDataBlock", "numDataBlocks", b"numDataBlocks", "numSamplesPerDataBlock", b"numSamplesPerDataBlock"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["firstTimestamp", b"firstTimestamp", "headerBytes", b"headerBytes", "numBytesDataBlock", b"numBytesDataBlock", "numDataBlocks", b"numDataBlocks", "numSamplesPerDataBlock", b"numSamplesPerDataBlock"]) -> None: ...

    TIMERANGE_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    DATABLOCK_FIELD_NUMBER: builtins.int
    @property
    def timeRange(self) -> global___PyBridgeTimeSpec.PyBridgeTimeRangeT: ...
    @property
    def timestampRange(self) -> global___PyBridgeTimeSpec.PyBridgeTimestampRangeT: ...
    @property
    def dataBlock(self) -> global___PyBridgeTimeSpec.PyBridgeDataBlockRangeT: ...
    def __init__(
        self,
        *,
        timeRange: global___PyBridgeTimeSpec.PyBridgeTimeRangeT | None = ...,
        timestampRange: global___PyBridgeTimeSpec.PyBridgeTimestampRangeT | None = ...,
        dataBlock: global___PyBridgeTimeSpec.PyBridgeDataBlockRangeT | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["dataBlock", b"dataBlock", "timeRange", b"timeRange", "timestampRange", b"timestampRange"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["dataBlock", b"dataBlock", "timeRange", b"timeRange", "timestampRange", b"timestampRange"]) -> None: ...

global___PyBridgeTimeSpec = PyBridgeTimeSpec

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

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

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

    @typing.final
    class PortIdxToDfSigMapEntry(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: ...

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.int
        @property
        def value(self) -> global___PyBridgePortMap.PyBridgeSitePos: ...
        def __init__(
            self,
            *,
            key: builtins.int | None = ...,
            value: global___PyBridgePortMap.PyBridgeSitePos | 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: ...

    PROBEID_FIELD_NUMBER: builtins.int
    HEADSTAGEID_FIELD_NUMBER: builtins.int
    DFDEVICELABEL_FIELD_NUMBER: builtins.int
    PORTIDXTODFSIGMAP_FIELD_NUMBER: builtins.int
    DFCHANIDXTODFSITEPOS_FIELD_NUMBER: builtins.int
    probeID: builtins.str
    """sapiens probe ID"""
    headstageID: builtins.str
    """sapiens headstage ID"""
    DfDeviceLabel: builtins.str
    """datafile device label"""
    @property
    def portIdxToDfSigMap(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.int]:
        """key=port indx"""

    @property
    def dfChanIdxToDfSitePos(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, global___PyBridgePortMap.PyBridgeSitePos]:
        """key=datafile channel idx"""

    def __init__(
        self,
        *,
        probeID: builtins.str | None = ...,
        headstageID: builtins.str | None = ...,
        DfDeviceLabel: builtins.str | None = ...,
        portIdxToDfSigMap: collections.abc.Mapping[builtins.int, builtins.int] | None = ...,
        dfChanIdxToDfSitePos: collections.abc.Mapping[builtins.int, global___PyBridgePortMap.PyBridgeSitePos] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["DfDeviceLabel", b"DfDeviceLabel", "headstageID", b"headstageID", "probeID", b"probeID"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["DfDeviceLabel", b"DfDeviceLabel", "dfChanIdxToDfSitePos", b"dfChanIdxToDfSitePos", "headstageID", b"headstageID", "portIdxToDfSigMap", b"portIdxToDfSigMap", "probeID", b"probeID"]) -> None: ...

global___PyBridgePortMap = PyBridgePortMap

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

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

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

            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: builtins.int
            @property
            def value(self) -> global___PyBridgePortMap: ...
            def __init__(
                self,
                *,
                key: builtins.int | None = ...,
                value: global___PyBridgePortMap | 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: ...

        PORTMAP_FIELD_NUMBER: builtins.int
        @property
        def portMap(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, global___PyBridgePortMap]:
            """key=port enum"""

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

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

        VERSION_FIELD_NUMBER: builtins.int
        NOTES_FIELD_NUMBER: builtins.int
        PORTSIGS_FIELD_NUMBER: builtins.int
        ISFILTERENABLED_FIELD_NUMBER: builtins.int
        CUTOFFFREQ_FIELD_NUMBER: builtins.int
        LOWERBANDWIDTH_FIELD_NUMBER: builtins.int
        UPPERBANDWIDTH_FIELD_NUMBER: builtins.int
        NOTCHFILTERFREQ_FIELD_NUMBER: builtins.int
        version: builtins.str
        notes: builtins.str
        isFilterEnabled: builtins.bool
        cutoffFreq: builtins.float
        lowerBandwidth: builtins.float
        upperBandwidth: builtins.float
        notchFilterFreq: builtins.float
        @property
        def portSigs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
            """len=8 (max # of ports), # number of signals on each ordered port"""

        def __init__(
            self,
            *,
            version: builtins.str | None = ...,
            notes: builtins.str | None = ...,
            portSigs: collections.abc.Iterable[builtins.int] | None = ...,
            isFilterEnabled: builtins.bool | None = ...,
            cutoffFreq: builtins.float | None = ...,
            lowerBandwidth: builtins.float | None = ...,
            upperBandwidth: builtins.float | None = ...,
            notchFilterFreq: builtins.float | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["cutoffFreq", b"cutoffFreq", "isFilterEnabled", b"isFilterEnabled", "lowerBandwidth", b"lowerBandwidth", "notchFilterFreq", b"notchFilterFreq", "notes", b"notes", "upperBandwidth", b"upperBandwidth", "version", b"version"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["cutoffFreq", b"cutoffFreq", "isFilterEnabled", b"isFilterEnabled", "lowerBandwidth", b"lowerBandwidth", "notchFilterFreq", b"notchFilterFreq", "notes", b"notes", "portSigs", b"portSigs", "upperBandwidth", b"upperBandwidth", "version", b"version"]) -> None: ...

    PORTDESC_FIELD_NUMBER: builtins.int
    RHD_FIELD_NUMBER: builtins.int
    ANNOTATE_FIELD_NUMBER: builtins.int
    STARTTIMEUNIX_FIELD_NUMBER: builtins.int
    startTimeUnix: builtins.int
    @property
    def portDesc(self) -> global___PyBridgeFileMetaData.PyBridgePorts:
        """provided via ancillary file"""

    @property
    def rhd(self) -> global___PyBridgeFileMetaData.MetadataRhd:
        """scraped from rhd file header"""

    @property
    def annotate(self) -> common_pb2.AnnotateBundle: ...
    def __init__(
        self,
        *,
        portDesc: global___PyBridgeFileMetaData.PyBridgePorts | None = ...,
        rhd: global___PyBridgeFileMetaData.MetadataRhd | None = ...,
        annotate: common_pb2.AnnotateBundle | None = ...,
        startTimeUnix: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["annotate", b"annotate", "portDesc", b"portDesc", "rhd", b"rhd", "startTimeUnix", b"startTimeUnix"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["annotate", b"annotate", "portDesc", b"portDesc", "rhd", b"rhd", "startTimeUnix", b"startTimeUnix"]) -> None: ...

global___PyBridgeFileMetaData = PyBridgeFileMetaData

@typing.final
class PyBridgeGetStatusReply(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: ...

global___PyBridgeGetStatusReply = PyBridgeGetStatusReply

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

    FILEID_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    fileID: builtins.str
    fileType: common_pb2.RadixFileTypes.ValueType
    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        fileID: builtins.str | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
        fileType: common_pb2.RadixFileTypes.ValueType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fileID", b"fileID", "fileType", b"fileType"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fileID", b"fileID", "fileType", b"fileType", "timestampRange", b"timestampRange"]) -> None: ...

global___PyBridgeGetSignalsRequest = PyBridgeGetSignalsRequest

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

    FILEID_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    SIGDATAPRI_FIELD_NUMBER: builtins.int
    SIGSHAPEPRI_FIELD_NUMBER: builtins.int
    SIGDATAAUX_FIELD_NUMBER: builtins.int
    SIGSHAPEAUX_FIELD_NUMBER: builtins.int
    SIGDATADIN_FIELD_NUMBER: builtins.int
    SIGSHAPEDIN_FIELD_NUMBER: builtins.int
    SIGDATADOUT_FIELD_NUMBER: builtins.int
    SIGSHAPEDOUT_FIELD_NUMBER: builtins.int
    fileID: builtins.str
    sigDataPri: builtins.bytes
    sigDataAux: builtins.bytes
    sigDataDin: builtins.bytes
    sigDataDout: builtins.bytes
    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def sigShapePri(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def sigShapeAux(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def sigShapeDin(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def sigShapeDout(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        fileID: builtins.str | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
        sigDataPri: builtins.bytes | None = ...,
        sigShapePri: collections.abc.Iterable[builtins.int] | None = ...,
        sigDataAux: builtins.bytes | None = ...,
        sigShapeAux: collections.abc.Iterable[builtins.int] | None = ...,
        sigDataDin: builtins.bytes | None = ...,
        sigShapeDin: collections.abc.Iterable[builtins.int] | None = ...,
        sigDataDout: builtins.bytes | None = ...,
        sigShapeDout: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fileID", b"fileID", "sigDataAux", b"sigDataAux", "sigDataDin", b"sigDataDin", "sigDataDout", b"sigDataDout", "sigDataPri", b"sigDataPri"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fileID", b"fileID", "sigDataAux", b"sigDataAux", "sigDataDin", b"sigDataDin", "sigDataDout", b"sigDataDout", "sigDataPri", b"sigDataPri", "sigShapeAux", b"sigShapeAux", "sigShapeDin", b"sigShapeDin", "sigShapeDout", b"sigShapeDout", "sigShapePri", b"sigShapePri", "timestampRange", b"timestampRange"]) -> None: ...

global___PyBridgeGetSignalsReply = PyBridgeGetSignalsReply

@typing.final
class MearecSignalRequest(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: ...

global___MearecSignalRequest = MearecSignalRequest

@typing.final
class MearecSignalReply(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___MearecSignalReply = MearecSignalReply

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

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

global___MearecTemplateRequest = MearecTemplateRequest

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

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

global___MearecWaveformRequest = MearecWaveformRequest

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

    PATHANDFILENAME_FIELD_NUMBER: builtins.int
    FILETYPE_FIELD_NUMBER: builtins.int
    MODE_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    SIGMAP_FIELD_NUMBER: builtins.int
    SPKMTXSET_FIELD_NUMBER: builtins.int
    NEUSPKMTXSET_FIELD_NUMBER: builtins.int
    pathAndFileName: builtins.str
    """output hdf5 file"""
    fileType: common_pb2.RadixFileTypes.ValueType
    """output hdf5 file type"""
    mode: global___SpikesExportFileMode.ValueType
    @property
    def metadata(self) -> global___SpikesExportMetadata: ...
    @property
    def sigMap(self) -> common_pb2.SignalMap: ...
    @property
    def spkMtxSet(self) -> biointerface_pb2.SpikeMatrixSet: ...
    @property
    def neuSpkMtxSet(self) -> biointerface_pb2.NeuronSpikeMatrixSet: ...
    def __init__(
        self,
        *,
        pathAndFileName: builtins.str | None = ...,
        fileType: common_pb2.RadixFileTypes.ValueType | None = ...,
        mode: global___SpikesExportFileMode.ValueType | None = ...,
        metadata: global___SpikesExportMetadata | None = ...,
        sigMap: common_pb2.SignalMap | None = ...,
        spkMtxSet: biointerface_pb2.SpikeMatrixSet | None = ...,
        neuSpkMtxSet: biointerface_pb2.NeuronSpikeMatrixSet | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["fileType", b"fileType", "metadata", b"metadata", "mode", b"mode", "neuSpkMtxSet", b"neuSpkMtxSet", "pathAndFileName", b"pathAndFileName", "sigMap", b"sigMap", "spkMtxSet", b"spkMtxSet"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["fileType", b"fileType", "metadata", b"metadata", "mode", b"mode", "neuSpkMtxSet", b"neuSpkMtxSet", "pathAndFileName", b"pathAndFileName", "sigMap", b"sigMap", "spkMtxSet", b"spkMtxSet"]) -> None: ...

global___SpikesPushToExportReq = SpikesPushToExportReq

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

    NUMSPIKES_FIELD_NUMBER: builtins.int
    NUMSITES_FIELD_NUMBER: builtins.int
    NUMNEURONS_FIELD_NUMBER: builtins.int
    DATASETUID_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    TIMERANGE_FIELD_NUMBER: builtins.int
    TIMESTAMPRANGE_FIELD_NUMBER: builtins.int
    numSpikes: builtins.int
    numSites: builtins.int
    numNeurons: builtins.int
    datasetUID: builtins.str
    sampFreq: builtins.float
    @property
    def timeRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def timestampRange(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        numSpikes: builtins.int | None = ...,
        numSites: builtins.int | None = ...,
        numNeurons: builtins.int | None = ...,
        datasetUID: builtins.str | None = ...,
        sampFreq: builtins.float | None = ...,
        timeRange: collections.abc.Iterable[builtins.float] | None = ...,
        timestampRange: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["datasetUID", b"datasetUID", "numNeurons", b"numNeurons", "numSites", b"numSites", "numSpikes", b"numSpikes", "sampFreq", b"sampFreq"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["datasetUID", b"datasetUID", "numNeurons", b"numNeurons", "numSites", b"numSites", "numSpikes", b"numSpikes", "sampFreq", b"sampFreq", "timeRange", b"timeRange", "timestampRange", b"timestampRange"]) -> None: ...

global___SpikesExportMetadata = SpikesExportMetadata

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

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

global___MearecWaveformStreamRequest = MearecWaveformStreamRequest

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

    PROBEBASENAME_FIELD_NUMBER: builtins.int
    HSTGBASENAME_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    BASENAME_FIELD_NUMBER: builtins.int
    NUMTEMPLATES_FIELD_NUMBER: builtins.int
    WAVEFORMSHAPE_FIELD_NUMBER: builtins.int
    TEMPLATESHAPE_FIELD_NUMBER: builtins.int
    SAMPFREQ_FIELD_NUMBER: builtins.int
    TEMPLATESAMPFREQ_FIELD_NUMBER: builtins.int
    TR_FIELD_NUMBER: builtins.int
    HSTGDIR_FIELD_NUMBER: builtins.int
    PROBEDIR_FIELD_NUMBER: builtins.int
    WALLTIME_FIELD_NUMBER: builtins.int
    probeBaseName: builtins.str
    hstgBaseName: builtins.str
    path: builtins.str
    baseName: builtins.str
    numTemplates: builtins.int
    sampFreq: builtins.float
    templateSampFreq: builtins.float
    hstgDir: builtins.str
    probeDir: builtins.str
    wallTime: builtins.int
    @property
    def waveformShape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def templateShape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def TR(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        probeBaseName: builtins.str | None = ...,
        hstgBaseName: builtins.str | None = ...,
        path: builtins.str | None = ...,
        baseName: builtins.str | None = ...,
        numTemplates: builtins.int | None = ...,
        waveformShape: collections.abc.Iterable[builtins.int] | None = ...,
        templateShape: collections.abc.Iterable[builtins.int] | None = ...,
        sampFreq: builtins.float | None = ...,
        templateSampFreq: builtins.float | None = ...,
        TR: collections.abc.Iterable[builtins.float] | None = ...,
        hstgDir: builtins.str | None = ...,
        probeDir: builtins.str | None = ...,
        wallTime: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["baseName", b"baseName", "hstgBaseName", b"hstgBaseName", "hstgDir", b"hstgDir", "numTemplates", b"numTemplates", "path", b"path", "probeBaseName", b"probeBaseName", "probeDir", b"probeDir", "sampFreq", b"sampFreq", "templateSampFreq", b"templateSampFreq", "wallTime", b"wallTime"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["TR", b"TR", "baseName", b"baseName", "hstgBaseName", b"hstgBaseName", "hstgDir", b"hstgDir", "numTemplates", b"numTemplates", "path", b"path", "probeBaseName", b"probeBaseName", "probeDir", b"probeDir", "sampFreq", b"sampFreq", "templateSampFreq", b"templateSampFreq", "templateShape", b"templateShape", "wallTime", b"wallTime", "waveformShape", b"waveformShape"]) -> None: ...

global___MearecFileMeta = MearecFileMeta

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

    CHUNKIDX_FIELD_NUMBER: builtins.int
    WAVEFORMS_FIELD_NUMBER: builtins.int
    LASTCHUNK_FIELD_NUMBER: builtins.int
    chunkIdx: builtins.int
    lastChunk: builtins.bool
    @property
    def waveforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MearecWaveform]: ...
    def __init__(
        self,
        *,
        chunkIdx: builtins.int | None = ...,
        waveforms: collections.abc.Iterable[global___MearecWaveform] | None = ...,
        lastChunk: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["chunkIdx", b"chunkIdx", "lastChunk", b"lastChunk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["chunkIdx", b"chunkIdx", "lastChunk", b"lastChunk", "waveforms", b"waveforms"]) -> None: ...

global___MearecWaveformChunk = MearecWaveformChunk

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

    DATA_FIELD_NUMBER: builtins.int
    TEMPLATEIDX_FIELD_NUMBER: builtins.int
    PEAKNTVIDX_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    templateIdx: builtins.int
    peakNtvIdx: builtins.int
    def __init__(
        self,
        *,
        data: builtins.bytes | None = ...,
        templateIdx: builtins.int | None = ...,
        peakNtvIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data", b"data", "peakNtvIdx", b"peakNtvIdx", "templateIdx", b"templateIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "peakNtvIdx", b"peakNtvIdx", "templateIdx", b"templateIdx"]) -> None: ...

global___MearecTemplate = MearecTemplate

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

    DATA_FIELD_NUMBER: builtins.int
    SPIKETIME_FIELD_NUMBER: builtins.int
    TEMPLATEIDX_FIELD_NUMBER: builtins.int
    PEAKNTVIDX_FIELD_NUMBER: builtins.int
    data: builtins.bytes
    spikeTime: builtins.float
    templateIdx: builtins.int
    peakNtvIdx: builtins.int
    def __init__(
        self,
        *,
        data: builtins.bytes | None = ...,
        spikeTime: builtins.float | None = ...,
        templateIdx: builtins.int | None = ...,
        peakNtvIdx: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["data", b"data", "peakNtvIdx", b"peakNtvIdx", "spikeTime", b"spikeTime", "templateIdx", b"templateIdx"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["data", b"data", "peakNtvIdx", b"peakNtvIdx", "spikeTime", b"spikeTime", "templateIdx", b"templateIdx"]) -> None: ...

global___MearecWaveform = MearecWaveform
