"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Since: cosmos-sdk 0.46"""
import builtins
import collections.abc
import cosmos.base.v1beta1.coin_pb2
import cosmos.gov.v1.gov_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class MsgSubmitProposal(google.protobuf.message.Message):
    """MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
    proposal Content.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGES_FIELD_NUMBER: builtins.int
    INITIAL_DEPOSIT_FIELD_NUMBER: builtins.int
    PROPOSER_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    SUMMARY_FIELD_NUMBER: builtins.int
    @property
    def messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]:
        """messages are the arbitrary messages to be executed if proposal passes."""
    @property
    def initial_deposit(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """initial_deposit is the deposit value that must be paid at proposal submission."""
    proposer: builtins.str
    """proposer is the account address of the proposer."""
    metadata: builtins.str
    """metadata is any arbitrary metadata attached to the proposal."""
    title: builtins.str
    """title is the title of the proposal.

    Since: cosmos-sdk 0.47
    """
    summary: builtins.str
    """summary is the summary of the proposal

    Since: cosmos-sdk 0.47
    """
    def __init__(
        self,
        *,
        messages: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ...,
        initial_deposit: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        proposer: builtins.str = ...,
        metadata: builtins.str = ...,
        title: builtins.str = ...,
        summary: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["initial_deposit", b"initial_deposit", "messages", b"messages", "metadata", b"metadata", "proposer", b"proposer", "summary", b"summary", "title", b"title"]) -> None: ...

global___MsgSubmitProposal = MsgSubmitProposal

@typing_extensions.final
class MsgSubmitProposalResponse(google.protobuf.message.Message):
    """MsgSubmitProposalResponse defines the Msg/SubmitProposal response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int
    """proposal_id defines the unique id of the proposal."""
    def __init__(
        self,
        *,
        proposal_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["proposal_id", b"proposal_id"]) -> None: ...

global___MsgSubmitProposalResponse = MsgSubmitProposalResponse

@typing_extensions.final
class MsgExecLegacyContent(google.protobuf.message.Message):
    """MsgExecLegacyContent is used to wrap the legacy content field into a message.
    This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTENT_FIELD_NUMBER: builtins.int
    AUTHORITY_FIELD_NUMBER: builtins.int
    @property
    def content(self) -> google.protobuf.any_pb2.Any:
        """content is the proposal's content."""
    authority: builtins.str
    """authority must be the gov module address."""
    def __init__(
        self,
        *,
        content: google.protobuf.any_pb2.Any | None = ...,
        authority: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["content", b"content"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["authority", b"authority", "content", b"content"]) -> None: ...

global___MsgExecLegacyContent = MsgExecLegacyContent

@typing_extensions.final
class MsgExecLegacyContentResponse(google.protobuf.message.Message):
    """MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___MsgExecLegacyContentResponse = MsgExecLegacyContentResponse

@typing_extensions.final
class MsgVote(google.protobuf.message.Message):
    """MsgVote defines a message to cast a vote."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    VOTER_FIELD_NUMBER: builtins.int
    OPTION_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int
    """proposal_id defines the unique id of the proposal."""
    voter: builtins.str
    """voter is the voter address for the proposal."""
    option: cosmos.gov.v1.gov_pb2.VoteOption.ValueType
    """option defines the vote option."""
    metadata: builtins.str
    """metadata is any arbitrary metadata attached to the Vote."""
    def __init__(
        self,
        *,
        proposal_id: builtins.int = ...,
        voter: builtins.str = ...,
        option: cosmos.gov.v1.gov_pb2.VoteOption.ValueType = ...,
        metadata: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "option", b"option", "proposal_id", b"proposal_id", "voter", b"voter"]) -> None: ...

global___MsgVote = MsgVote

@typing_extensions.final
class MsgVoteResponse(google.protobuf.message.Message):
    """MsgVoteResponse defines the Msg/Vote response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___MsgVoteResponse = MsgVoteResponse

@typing_extensions.final
class MsgVoteWeighted(google.protobuf.message.Message):
    """MsgVoteWeighted defines a message to cast a vote."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    VOTER_FIELD_NUMBER: builtins.int
    OPTIONS_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int
    """proposal_id defines the unique id of the proposal."""
    voter: builtins.str
    """voter is the voter address for the proposal."""
    @property
    def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.gov.v1.gov_pb2.WeightedVoteOption]:
        """options defines the weighted vote options."""
    metadata: builtins.str
    """metadata is any arbitrary metadata attached to the VoteWeighted."""
    def __init__(
        self,
        *,
        proposal_id: builtins.int = ...,
        voter: builtins.str = ...,
        options: collections.abc.Iterable[cosmos.gov.v1.gov_pb2.WeightedVoteOption] | None = ...,
        metadata: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "options", b"options", "proposal_id", b"proposal_id", "voter", b"voter"]) -> None: ...

global___MsgVoteWeighted = MsgVoteWeighted

@typing_extensions.final
class MsgVoteWeightedResponse(google.protobuf.message.Message):
    """MsgVoteWeightedResponse defines the Msg/VoteWeighted response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___MsgVoteWeightedResponse = MsgVoteWeightedResponse

@typing_extensions.final
class MsgDeposit(google.protobuf.message.Message):
    """MsgDeposit defines a message to submit a deposit to an existing proposal."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    DEPOSITOR_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int
    """proposal_id defines the unique id of the proposal."""
    depositor: builtins.str
    """depositor defines the deposit addresses from the proposals."""
    @property
    def amount(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """amount to be deposited by depositor."""
    def __init__(
        self,
        *,
        proposal_id: builtins.int = ...,
        depositor: builtins.str = ...,
        amount: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "depositor", b"depositor", "proposal_id", b"proposal_id"]) -> None: ...

global___MsgDeposit = MsgDeposit

@typing_extensions.final
class MsgDepositResponse(google.protobuf.message.Message):
    """MsgDepositResponse defines the Msg/Deposit response type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___MsgDepositResponse = MsgDepositResponse

@typing_extensions.final
class MsgUpdateParams(google.protobuf.message.Message):
    """MsgUpdateParams is the Msg/UpdateParams request type.

    Since: cosmos-sdk 0.47
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AUTHORITY_FIELD_NUMBER: builtins.int
    PARAMS_FIELD_NUMBER: builtins.int
    authority: builtins.str
    """authority is the address that controls the module (defaults to x/gov unless overwritten)."""
    @property
    def params(self) -> cosmos.gov.v1.gov_pb2.Params:
        """params defines the x/gov parameters to update.

        NOTE: All parameters must be supplied.
        """
    def __init__(
        self,
        *,
        authority: builtins.str = ...,
        params: cosmos.gov.v1.gov_pb2.Params | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["params", b"params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["authority", b"authority", "params", b"params"]) -> None: ...

global___MsgUpdateParams = MsgUpdateParams

@typing_extensions.final
class MsgUpdateParamsResponse(google.protobuf.message.Message):
    """MsgUpdateParamsResponse defines the response structure for executing a
    MsgUpdateParams message.

    Since: cosmos-sdk 0.47
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___MsgUpdateParamsResponse = MsgUpdateParamsResponse
