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

This program source code file is part of KiCad, a free EDA CAD application.

Copyright (C) 2024 KiCad Developers, see AUTHORS.txt for contributors.

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program.  If not, see <http://www.gnu.org/licenses/>.
"""
import builtins
import collections.abc
from .. import common
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 _SchematicLayer:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SchematicLayerEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SchematicLayer.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SL_UNKNOWN: _SchematicLayer.ValueType

class SchematicLayer(_SchematicLayer, metaclass=_SchematicLayerEnumTypeWrapper):
    ...
SL_UNKNOWN: SchematicLayer.ValueType
global___SchematicLayer = SchematicLayer

class _BusEntryType:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _BusEntryTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_BusEntryType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    BET_UNKNOWN: _BusEntryType.ValueType
    BET_WIRE_TO_BUS: _BusEntryType.ValueType
    'Connects a wire to a bus'
    BET_BUS_TO_BUS: _BusEntryType.ValueType
    'Connects a bus to another bus'

class BusEntryType(_BusEntryType, metaclass=_BusEntryTypeEnumTypeWrapper):
    """/ Type of bus entry"""
BET_UNKNOWN: BusEntryType.ValueType
BET_WIRE_TO_BUS: BusEntryType.ValueType
'Connects a wire to a bus'
BET_BUS_TO_BUS: BusEntryType.ValueType
'Connects a bus to another bus'
global___BusEntryType = BusEntryType

class _SheetPinSide:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _SheetPinSideEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SheetPinSide.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    SPS_UNKNOWN: _SheetPinSide.ValueType
    SPS_LEFT: _SheetPinSide.ValueType
    SPS_RIGHT: _SheetPinSide.ValueType
    SPS_TOP: _SheetPinSide.ValueType
    SPS_BOTTOM: _SheetPinSide.ValueType

class SheetPinSide(_SheetPinSide, metaclass=_SheetPinSideEnumTypeWrapper):
    """/ Represents which side of a sheet a pin is attached to"""
SPS_UNKNOWN: SheetPinSide.ValueType
SPS_LEFT: SheetPinSide.ValueType
SPS_RIGHT: SheetPinSide.ValueType
SPS_TOP: SheetPinSide.ValueType
SPS_BOTTOM: SheetPinSide.ValueType
global___SheetPinSide = SheetPinSide

class _LabelShape:
    ValueType = typing.NewType('ValueType', builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _LabelShapeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_LabelShape.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    LS_UNKNOWN: _LabelShape.ValueType
    LS_INPUT: _LabelShape.ValueType
    LS_OUTPUT: _LabelShape.ValueType
    LS_BIDI: _LabelShape.ValueType
    LS_TRISTATE: _LabelShape.ValueType
    LS_UNSPECIFIED: _LabelShape.ValueType

class LabelShape(_LabelShape, metaclass=_LabelShapeEnumTypeWrapper):
    """/ Shape of a hierarchical label or sheet pin"""
LS_UNKNOWN: LabelShape.ValueType
LS_INPUT: LabelShape.ValueType
LS_OUTPUT: LabelShape.ValueType
LS_BIDI: LabelShape.ValueType
LS_TRISTATE: LabelShape.ValueType
LS_UNSPECIFIED: LabelShape.ValueType
global___LabelShape = LabelShape

@typing.final
class Line(google.protobuf.message.Message):
    """/ Represents a schematic line segment, which may be a wire, bus, or graphical line"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    START_FIELD_NUMBER: builtins.int
    END_FIELD_NUMBER: builtins.int
    LAYER_FIELD_NUMBER: builtins.int
    layer: global___SchematicLayer.ValueType
    '*\n    One of: LAYER_BUS, LAYER_WIRE, LAYER_NOTES\n    '

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def start(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def end(self) -> common.types.base_types_pb2.Vector2:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., start: common.types.base_types_pb2.Vector2 | None=..., end: common.types.base_types_pb2.Vector2 | None=..., layer: global___SchematicLayer.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['end', b'end', 'id', b'id', 'start', b'start']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['end', b'end', 'id', b'id', 'layer', b'layer', 'start', b'start']) -> None:
        ...
global___Line = Line

@typing.final
class Junction(google.protobuf.message.Message):
    """/ Represents a junction (connection point) in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    DIAMETER_FIELD_NUMBER: builtins.int
    COLOR_FIELD_NUMBER: builtins.int
    diameter: builtins.int
    'In nanometers, 0 for default'
    color: builtins.int
    'RGBA color, 0 for default'

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., diameter: builtins.int=..., color: builtins.int=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['color', b'color', 'diameter', b'diameter', 'id', b'id', 'position', b'position']) -> None:
        ...
global___Junction = Junction

@typing.final
class NoConnect(google.protobuf.message.Message):
    """/ Represents a no-connect marker in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> None:
        ...
global___NoConnect = NoConnect

@typing.final
class Text(google.protobuf.message.Message):
    """/ A schematic-specific text object (SCH_TEXT)"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    LAYER_FIELD_NUMBER: builtins.int
    layer: global___SchematicLayer.ValueType

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def text(self) -> common.types.base_types_pb2.Text:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., text: common.types.base_types_pb2.Text | None=..., layer: global___SchematicLayer.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'text', b'text']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'layer', b'layer', 'text', b'text']) -> None:
        ...
global___Text = Text

@typing.final
class TextBox(google.protobuf.message.Message):
    """/ A schematic-specific textbox object (SCH_TEXTBOX)"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    TEXT_BOX_FIELD_NUMBER: builtins.int
    LAYER_FIELD_NUMBER: builtins.int
    layer: global___SchematicLayer.ValueType

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def text_box(self) -> common.types.base_types_pb2.TextBox:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., text_box: common.types.base_types_pb2.TextBox | None=..., layer: global___SchematicLayer.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'text_box', b'text_box']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'layer', b'layer', 'text_box', b'text_box']) -> None:
        ...
global___TextBox = TextBox

@typing.final
class SchematicGraphicShape(google.protobuf.message.Message):
    """/ A schematic-specific graphic shape (SCH_SHAPE)"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    SHAPE_FIELD_NUMBER: builtins.int
    LAYER_FIELD_NUMBER: builtins.int
    layer: global___SchematicLayer.ValueType

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def shape(self) -> common.types.base_types_pb2.GraphicShape:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., shape: common.types.base_types_pb2.GraphicShape | None=..., layer: global___SchematicLayer.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'shape', b'shape']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'layer', b'layer', 'shape', b'shape']) -> None:
        ...
global___SchematicGraphicShape = SchematicGraphicShape

@typing.final
class LocalLabel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def text(self) -> common.types.base_types_pb2.Text:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., text: common.types.base_types_pb2.Text | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> None:
        ...
global___LocalLabel = LocalLabel

@typing.final
class GlobalLabel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def text(self) -> common.types.base_types_pb2.Text:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., text: common.types.base_types_pb2.Text | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> None:
        ...
global___GlobalLabel = GlobalLabel

@typing.final
class HierarchicalLabel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def text(self) -> common.types.base_types_pb2.Text:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., text: common.types.base_types_pb2.Text | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> None:
        ...
global___HierarchicalLabel = HierarchicalLabel

@typing.final
class DirectiveLabel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def text(self) -> common.types.base_types_pb2.Text:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., text: common.types.base_types_pb2.Text | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'text', b'text']) -> None:
        ...
global___DirectiveLabel = DirectiveLabel

@typing.final
class Bitmap(google.protobuf.message.Message):
    """/ Represents a bitmap/image in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SCALE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    scale: builtins.float
    'Scale factor (1.0 = original size)'
    data: builtins.bytes
    'Image data (PNG format)'

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        """Position of the image center"""

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., scale: builtins.float=..., data: builtins.bytes=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['data', b'data', 'id', b'id', 'position', b'position', 'scale', b'scale']) -> None:
        ...
global___Bitmap = Bitmap

@typing.final
class TableCell(google.protobuf.message.Message):
    """/ Represents a table cell in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    COL_SPAN_FIELD_NUMBER: builtins.int
    ROW_SPAN_FIELD_NUMBER: builtins.int
    text: builtins.str
    col_span: builtins.int
    'Number of columns this cell spans'
    row_span: builtins.int
    'Number of rows this cell spans'

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., text: builtins.str=..., col_span: builtins.int=..., row_span: builtins.int=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['col_span', b'col_span', 'id', b'id', 'row_span', b'row_span', 'text', b'text']) -> None:
        ...
global___TableCell = TableCell

@typing.final
class Table(google.protobuf.message.Message):
    """/ Represents a table in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    ROWS_FIELD_NUMBER: builtins.int
    CELLS_FIELD_NUMBER: builtins.int
    HEADER_ON_FIELD_NUMBER: builtins.int
    COL_WIDTH_FIELD_NUMBER: builtins.int
    ROW_HEIGHT_FIELD_NUMBER: builtins.int
    columns: builtins.int
    'Number of columns'
    rows: builtins.int
    'Number of rows'
    header_on: builtins.bool
    'Whether first row is a header'
    col_width: builtins.int
    'Default column width in nm'
    row_height: builtins.int
    'Default row height in nm'

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def cells(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TableCell]:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., columns: builtins.int=..., rows: builtins.int=..., cells: collections.abc.Iterable[global___TableCell] | None=..., header_on: builtins.bool=..., col_width: builtins.int=..., row_height: builtins.int=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['cells', b'cells', 'col_width', b'col_width', 'columns', b'columns', 'header_on', b'header_on', 'id', b'id', 'position', b'position', 'row_height', b'row_height', 'rows', b'rows']) -> None:
        ...
global___Table = Table

@typing.final
class SchematicGroup(google.protobuf.message.Message):
    """/ Represents a group of schematic items"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    MEMBERS_FIELD_NUMBER: builtins.int
    LOCKED_FIELD_NUMBER: builtins.int
    name: builtins.str
    'Group name'
    locked: builtins.bool
    'Whether the group is locked'

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.types.base_types_pb2.KIID]:
        """IDs of grouped items"""

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., name: builtins.str=..., members: collections.abc.Iterable[common.types.base_types_pb2.KIID] | None=..., locked: builtins.bool=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'locked', b'locked', 'members', b'members', 'name', b'name']) -> None:
        ...
global___SchematicGroup = SchematicGroup

@typing.final
class BusEntry(google.protobuf.message.Message):
    """/ Represents a bus entry (wire-to-bus or bus-to-bus connection point)"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SIZE_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    WIDTH_FIELD_NUMBER: builtins.int
    COLOR_FIELD_NUMBER: builtins.int
    START_DANGLING_FIELD_NUMBER: builtins.int
    END_DANGLING_FIELD_NUMBER: builtins.int
    type: global___BusEntryType.ValueType
    width: builtins.int
    'Stroke properties\n    Line width in nm, 0 for default\n    '
    color: builtins.int
    'RGBA color, 0 for default'
    start_dangling: builtins.bool
    'Dangling state (read-only, set by connectivity analysis)'
    end_dangling: builtins.bool

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        """Start position"""

    @property
    def size(self) -> common.types.base_types_pb2.Vector2:
        """Size/offset to end position"""

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., size: common.types.base_types_pb2.Vector2 | None=..., type: global___BusEntryType.ValueType=..., width: builtins.int=..., color: builtins.int=..., start_dangling: builtins.bool=..., end_dangling: builtins.bool=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position', 'size', b'size']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['color', b'color', 'end_dangling', b'end_dangling', 'id', b'id', 'position', b'position', 'size', b'size', 'start_dangling', b'start_dangling', 'type', b'type', 'width', b'width']) -> None:
        ...
global___BusEntry = BusEntry

@typing.final
class Pin(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    ANGLE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    NUMBER_FIELD_NUMBER: builtins.int
    ELECTRICAL_TYPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    number: builtins.str
    electrical_type: common.types.base_types_pb2.ElectricalPinType.ValueType

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def angle(self) -> common.types.base_types_pb2.Angle:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., angle: common.types.base_types_pb2.Angle | None=..., name: builtins.str=..., number: builtins.str=..., electrical_type: common.types.base_types_pb2.ElectricalPinType.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['angle', b'angle', 'id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['angle', b'angle', 'electrical_type', b'electrical_type', 'id', b'id', 'name', b'name', 'number', b'number', 'position', b'position']) -> None:
        ...
global___Pin = Pin

@typing.final
class Field(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    ATTRIBUTES_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    ID_INT_FIELD_NUMBER: builtins.int
    text: builtins.str
    name: builtins.str
    id_int: builtins.int

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def attributes(self) -> common.types.base_types_pb2.TextAttributes:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., attributes: common.types.base_types_pb2.TextAttributes | None=..., text: builtins.str=..., name: builtins.str=..., id_int: builtins.int=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['attributes', b'attributes', 'id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'id', b'id', 'id_int', b'id_int', 'name', b'name', 'position', b'position', 'text', b'text']) -> None:
        ...
global___Field = Field

@typing.final
class Symbol(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    ANGLE_FIELD_NUMBER: builtins.int
    MIRROR_X_FIELD_NUMBER: builtins.int
    MIRROR_Y_FIELD_NUMBER: builtins.int
    LIB_ID_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    DNP_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_BOM_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_BOARD_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_SIM_FIELD_NUMBER: builtins.int
    FIELDS_FIELD_NUMBER: builtins.int
    PINS_FIELD_NUMBER: builtins.int
    mirror_x: builtins.bool
    mirror_y: builtins.bool
    unit: builtins.int
    dnp: builtins.bool
    exclude_from_bom: builtins.bool
    exclude_from_board: builtins.bool
    exclude_from_sim: builtins.bool

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def angle(self) -> common.types.base_types_pb2.Angle:
        ...

    @property
    def lib_id(self) -> common.types.base_types_pb2.LibraryIdentifier:
        ...

    @property
    def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Field]:
        ...

    @property
    def pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Pin]:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., angle: common.types.base_types_pb2.Angle | None=..., mirror_x: builtins.bool=..., mirror_y: builtins.bool=..., lib_id: common.types.base_types_pb2.LibraryIdentifier | None=..., unit: builtins.int=..., dnp: builtins.bool=..., exclude_from_bom: builtins.bool=..., exclude_from_board: builtins.bool=..., exclude_from_sim: builtins.bool=..., fields: collections.abc.Iterable[global___Field] | None=..., pins: collections.abc.Iterable[global___Pin] | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['angle', b'angle', 'id', b'id', 'lib_id', b'lib_id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['angle', b'angle', 'dnp', b'dnp', 'exclude_from_board', b'exclude_from_board', 'exclude_from_bom', b'exclude_from_bom', 'exclude_from_sim', b'exclude_from_sim', 'fields', b'fields', 'id', b'id', 'lib_id', b'lib_id', 'mirror_x', b'mirror_x', 'mirror_y', b'mirror_y', 'pins', b'pins', 'position', b'position', 'unit', b'unit']) -> None:
        ...
global___Symbol = Symbol

@typing.final
class SheetPin(google.protobuf.message.Message):
    """/ Represents a sheet pin (hierarchical connection point on a sheet)"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SIDE_FIELD_NUMBER: builtins.int
    SHAPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    side: global___SheetPinSide.ValueType
    shape: global___LabelShape.ValueType

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., name: builtins.str=..., position: common.types.base_types_pb2.Vector2 | None=..., side: global___SheetPinSide.ValueType=..., shape: global___LabelShape.ValueType=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['id', b'id', 'position', b'position']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name', 'position', b'position', 'shape', b'shape', 'side', b'side']) -> None:
        ...
global___SheetPin = SheetPin

@typing.final
class Sheet(google.protobuf.message.Message):
    """/ Represents a hierarchical sheet in the schematic"""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    SIZE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    FILENAME_FIELD_NUMBER: builtins.int
    PAGE_NUMBER_FIELD_NUMBER: builtins.int
    DNP_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_BOM_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_BOARD_FIELD_NUMBER: builtins.int
    EXCLUDE_FROM_SIM_FIELD_NUMBER: builtins.int
    BORDER_WIDTH_FIELD_NUMBER: builtins.int
    BORDER_COLOR_FIELD_NUMBER: builtins.int
    BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
    PINS_FIELD_NUMBER: builtins.int
    FIELDS_FIELD_NUMBER: builtins.int
    name: builtins.str
    filename: builtins.str
    page_number: builtins.str
    dnp: builtins.bool
    exclude_from_bom: builtins.bool
    exclude_from_board: builtins.bool
    exclude_from_sim: builtins.bool

    @property
    def id(self) -> common.types.base_types_pb2.KIID:
        ...

    @property
    def position(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def size(self) -> common.types.base_types_pb2.Vector2:
        ...

    @property
    def border_width(self) -> common.types.base_types_pb2.Distance:
        ...

    @property
    def border_color(self) -> common.types.base_types_pb2.Color:
        ...

    @property
    def background_color(self) -> common.types.base_types_pb2.Color:
        ...

    @property
    def pins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SheetPin]:
        ...

    @property
    def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Field]:
        ...

    def __init__(self, *, id: common.types.base_types_pb2.KIID | None=..., position: common.types.base_types_pb2.Vector2 | None=..., size: common.types.base_types_pb2.Vector2 | None=..., name: builtins.str=..., filename: builtins.str=..., page_number: builtins.str=..., dnp: builtins.bool=..., exclude_from_bom: builtins.bool=..., exclude_from_board: builtins.bool=..., exclude_from_sim: builtins.bool=..., border_width: common.types.base_types_pb2.Distance | None=..., border_color: common.types.base_types_pb2.Color | None=..., background_color: common.types.base_types_pb2.Color | None=..., pins: collections.abc.Iterable[global___SheetPin] | None=..., fields: collections.abc.Iterable[global___Field] | None=...) -> None:
        ...

    def HasField(self, field_name: typing.Literal['background_color', b'background_color', 'border_color', b'border_color', 'border_width', b'border_width', 'id', b'id', 'position', b'position', 'size', b'size']) -> builtins.bool:
        ...

    def ClearField(self, field_name: typing.Literal['background_color', b'background_color', 'border_color', b'border_color', 'border_width', b'border_width', 'dnp', b'dnp', 'exclude_from_board', b'exclude_from_board', 'exclude_from_bom', b'exclude_from_bom', 'exclude_from_sim', b'exclude_from_sim', 'fields', b'fields', 'filename', b'filename', 'id', b'id', 'name', b'name', 'page_number', b'page_number', 'pins', b'pins', 'position', b'position', 'size', b'size']) -> None:
        ...
global___Sheet = Sheet