"""
@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.client.v1.client_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)
STATE_CLOSED = State.V(4)

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)
    STATE_CLOSED = State.V(4)

class Order(metaclass=_Order):
    V = typing.NewType('V', builtins.int)

global___Order = Order

ORDER_NONE_UNSPECIFIED = Order.V(0)
ORDER_UNORDERED = Order.V(1)
ORDER_ORDERED = Order.V(2)

class _Order(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Order.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    ORDER_NONE_UNSPECIFIED = Order.V(0)
    ORDER_UNORDERED = Order.V(1)
    ORDER_ORDERED = Order.V(2)

class Channel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STATE_FIELD_NUMBER: builtins.int
    ORDERING_FIELD_NUMBER: builtins.int
    COUNTERPARTY_FIELD_NUMBER: builtins.int
    CONNECTION_HOPS_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    state: global___State.V = ...
    ordering: global___Order.V = ...

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

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

    def __init__(self,
        *,
        state : global___State.V = ...,
        ordering : global___Order.V = ...,
        counterparty : typing.Optional[global___Counterparty] = ...,
        connection_hops : typing.Optional[typing.Iterable[typing.Text]] = ...,
        version : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"counterparty",b"counterparty"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"connection_hops",b"connection_hops",u"counterparty",b"counterparty",u"ordering",b"ordering",u"state",b"state",u"version",b"version"]) -> None: ...
global___Channel = Channel

class IdentifiedChannel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STATE_FIELD_NUMBER: builtins.int
    ORDERING_FIELD_NUMBER: builtins.int
    COUNTERPARTY_FIELD_NUMBER: builtins.int
    CONNECTION_HOPS_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    PORT_ID_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    state: global___State.V = ...
    ordering: global___Order.V = ...

    @property
    def connection_hops(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]: ...
    version: typing.Text = ...
    port_id: typing.Text = ...
    channel_id: typing.Text = ...

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

    def __init__(self,
        *,
        state : global___State.V = ...,
        ordering : global___Order.V = ...,
        counterparty : typing.Optional[global___Counterparty] = ...,
        connection_hops : typing.Optional[typing.Iterable[typing.Text]] = ...,
        version : typing.Text = ...,
        port_id : typing.Text = ...,
        channel_id : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"counterparty",b"counterparty"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"channel_id",b"channel_id",u"connection_hops",b"connection_hops",u"counterparty",b"counterparty",u"ordering",b"ordering",u"port_id",b"port_id",u"state",b"state",u"version",b"version"]) -> None: ...
global___IdentifiedChannel = IdentifiedChannel

class Counterparty(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PORT_ID_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    port_id: typing.Text = ...
    channel_id: typing.Text = ...

    def __init__(self,
        *,
        port_id : typing.Text = ...,
        channel_id : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"channel_id",b"channel_id",u"port_id",b"port_id"]) -> None: ...
global___Counterparty = Counterparty

class Packet(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SEQUENCE_FIELD_NUMBER: builtins.int
    SOURCE_PORT_FIELD_NUMBER: builtins.int
    SOURCE_CHANNEL_FIELD_NUMBER: builtins.int
    DESTINATION_PORT_FIELD_NUMBER: builtins.int
    DESTINATION_CHANNEL_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    TIMEOUT_HEIGHT_FIELD_NUMBER: builtins.int
    TIMEOUT_TIMESTAMP_FIELD_NUMBER: builtins.int
    sequence: builtins.int = ...
    source_port: typing.Text = ...
    source_channel: typing.Text = ...
    destination_port: typing.Text = ...
    destination_channel: typing.Text = ...
    data: builtins.bytes = ...
    timeout_timestamp: builtins.int = ...

    @property
    def timeout_height(self) -> ibc.core.client.v1.client_pb2.Height: ...

    def __init__(self,
        *,
        sequence : builtins.int = ...,
        source_port : typing.Text = ...,
        source_channel : typing.Text = ...,
        destination_port : typing.Text = ...,
        destination_channel : typing.Text = ...,
        data : builtins.bytes = ...,
        timeout_height : typing.Optional[ibc.core.client.v1.client_pb2.Height] = ...,
        timeout_timestamp : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"timeout_height",b"timeout_height"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"destination_channel",b"destination_channel",u"destination_port",b"destination_port",u"sequence",b"sequence",u"source_channel",b"source_channel",u"source_port",b"source_port",u"timeout_height",b"timeout_height",u"timeout_timestamp",b"timeout_timestamp"]) -> None: ...
global___Packet = Packet

class PacketState(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PORT_ID_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    SEQUENCE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    port_id: typing.Text = ...
    channel_id: typing.Text = ...
    sequence: builtins.int = ...
    data: builtins.bytes = ...

    def __init__(self,
        *,
        port_id : typing.Text = ...,
        channel_id : typing.Text = ...,
        sequence : builtins.int = ...,
        data : builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"channel_id",b"channel_id",u"data",b"data",u"port_id",b"port_id",u"sequence",b"sequence"]) -> None: ...
global___PacketState = PacketState

class Acknowledgement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESULT_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    result: builtins.bytes = ...
    error: typing.Text = ...

    def __init__(self,
        *,
        result : builtins.bytes = ...,
        error : typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"error",b"error",u"response",b"response",u"result",b"result"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"error",b"error",u"response",b"response",u"result",b"result"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"response",b"response"]) -> typing.Optional[typing_extensions.Literal["result","error"]]: ...
global___Acknowledgement = Acknowledgement
