"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import ibc.core.commitment.v1.commitment_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class State(metaclass=_State):
    V = typing.NewType('V', builtins.int)

global___State = State

STATE_UNINITIALIZED_UNSPECIFIED = State.V(0)
STATE_INIT = State.V(1)
STATE_TRYOPEN = State.V(2)
STATE_OPEN = State.V(3)

class _State(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[State.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    STATE_UNINITIALIZED_UNSPECIFIED = State.V(0)
    STATE_INIT = State.V(1)
    STATE_TRYOPEN = State.V(2)
    STATE_OPEN = State.V(3)

class ConnectionEnd(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CLIENT_ID_FIELD_NUMBER: builtins.int
    VERSIONS_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    COUNTERPARTY_FIELD_NUMBER: builtins.int
    DELAY_PERIOD_FIELD_NUMBER: builtins.int
    client_id: typing.Text = ...
    state: global___State.V = ...
    delay_period: builtins.int = ...

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

    @property
    def counterparty(self) -> global___Counterparty: ...

    def __init__(self,
        *,
        client_id : typing.Text = ...,
        versions : typing.Optional[typing.Iterable[global___Version]] = ...,
        state : global___State.V = ...,
        counterparty : typing.Optional[global___Counterparty] = ...,
        delay_period : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"counterparty",b"counterparty"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"client_id",b"client_id",u"counterparty",b"counterparty",u"delay_period",b"delay_period",u"state",b"state",u"versions",b"versions"]) -> None: ...
global___ConnectionEnd = ConnectionEnd

class IdentifiedConnection(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    CLIENT_ID_FIELD_NUMBER: builtins.int
    VERSIONS_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    COUNTERPARTY_FIELD_NUMBER: builtins.int
    DELAY_PERIOD_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    client_id: typing.Text = ...
    state: global___State.V = ...
    delay_period: builtins.int = ...

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

    @property
    def counterparty(self) -> global___Counterparty: ...

    def __init__(self,
        *,
        id : typing.Text = ...,
        client_id : typing.Text = ...,
        versions : typing.Optional[typing.Iterable[global___Version]] = ...,
        state : global___State.V = ...,
        counterparty : typing.Optional[global___Counterparty] = ...,
        delay_period : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"counterparty",b"counterparty"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"client_id",b"client_id",u"counterparty",b"counterparty",u"delay_period",b"delay_period",u"id",b"id",u"state",b"state",u"versions",b"versions"]) -> None: ...
global___IdentifiedConnection = IdentifiedConnection

class Counterparty(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CLIENT_ID_FIELD_NUMBER: builtins.int
    CONNECTION_ID_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    client_id: typing.Text = ...
    connection_id: typing.Text = ...

    @property
    def prefix(self) -> ibc.core.commitment.v1.commitment_pb2.MerklePrefix: ...

    def __init__(self,
        *,
        client_id : typing.Text = ...,
        connection_id : typing.Text = ...,
        prefix : typing.Optional[ibc.core.commitment.v1.commitment_pb2.MerklePrefix] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"prefix",b"prefix"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"client_id",b"client_id",u"connection_id",b"connection_id",u"prefix",b"prefix"]) -> None: ...
global___Counterparty = Counterparty

class ClientPaths(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PATHS_FIELD_NUMBER: builtins.int

    @property
    def paths(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...

    def __init__(self,
        *,
        paths : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"paths",b"paths"]) -> None: ...
global___ClientPaths = ClientPaths

class ConnectionPaths(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CLIENT_ID_FIELD_NUMBER: builtins.int
    PATHS_FIELD_NUMBER: builtins.int
    client_id: typing.Text = ...

    @property
    def paths(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...

    def __init__(self,
        *,
        client_id : typing.Text = ...,
        paths : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"client_id",b"client_id",u"paths",b"paths"]) -> None: ...
global___ConnectionPaths = ConnectionPaths

class Version(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    IDENTIFIER_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    identifier: typing.Text = ...

    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...

    def __init__(self,
        *,
        identifier : typing.Text = ...,
        features : typing.Optional[typing.Iterable[typing.Text]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"features",b"features",u"identifier",b"identifier"]) -> None: ...
global___Version = Version
