# @generated by generate_proto_mypy_stubs.py.  Do not edit!
from google.protobuf.message import (  # type: ignore
    Message,
)

from onnx.onnx_ml_pb2 import (
    FunctionProto,
    OperatorStatus,
)

from typing import (
    Iterable,
    Optional as OptionalType,
)

from google.protobuf.internal.containers import (  # type: ignore
    RepeatedCompositeFieldContainer,
)

class OperatorProto(Message):
    op_type = ... # type: str
    since_version = ... # type: int
    status = ... # type: OperatorStatus
    doc_string = ... # type: str
    
    def __init__(self,
        op_type : OptionalType[str] = None,
        since_version : OptionalType[int] = None,
        status : OptionalType[OperatorStatus] = None,
        doc_string : OptionalType[str] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> OperatorProto: ...
    def MergeFrom(self, other_msg: Message) -> None: ...
    def CopyFrom(self, other_msg: Message) -> None: ...

class OperatorSetProto(Message):
    magic = ... # type: str
    ir_version = ... # type: int
    ir_version_prerelease = ... # type: str
    ir_build_metadata = ... # type: str
    domain = ... # type: str
    opset_version = ... # type: int
    doc_string = ... # type: str
    
    @property
    def operator(self) -> RepeatedCompositeFieldContainer[OperatorProto]: ...
    
    @property
    def functions(self) -> RepeatedCompositeFieldContainer[FunctionProto]: ...
    
    def __init__(self,
        magic : OptionalType[str] = None,
        ir_version : OptionalType[int] = None,
        ir_version_prerelease : OptionalType[str] = None,
        ir_build_metadata : OptionalType[str] = None,
        domain : OptionalType[str] = None,
        opset_version : OptionalType[int] = None,
        doc_string : OptionalType[str] = None,
        operator : OptionalType[Iterable[OperatorProto]] = None,
        functions : OptionalType[Iterable[FunctionProto]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> OperatorSetProto: ...
    def MergeFrom(self, other_msg: Message) -> None: ...
    def CopyFrom(self, other_msg: Message) -> None: ...
