"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.base.v1beta1.coin_pb2
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing
import typing_extensions

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

class VoteOption(metaclass=_VoteOption):
    V = typing.NewType('V', builtins.int)

global___VoteOption = VoteOption

VOTE_OPTION_UNSPECIFIED = VoteOption.V(0)
VOTE_OPTION_YES = VoteOption.V(1)
VOTE_OPTION_ABSTAIN = VoteOption.V(2)
VOTE_OPTION_NO = VoteOption.V(3)
VOTE_OPTION_NO_WITH_VETO = VoteOption.V(4)

class _VoteOption(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[VoteOption.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    VOTE_OPTION_UNSPECIFIED = VoteOption.V(0)
    VOTE_OPTION_YES = VoteOption.V(1)
    VOTE_OPTION_ABSTAIN = VoteOption.V(2)
    VOTE_OPTION_NO = VoteOption.V(3)
    VOTE_OPTION_NO_WITH_VETO = VoteOption.V(4)

class ProposalStatus(metaclass=_ProposalStatus):
    V = typing.NewType('V', builtins.int)

global___ProposalStatus = ProposalStatus

PROPOSAL_STATUS_UNSPECIFIED = ProposalStatus.V(0)
PROPOSAL_STATUS_DEPOSIT_PERIOD = ProposalStatus.V(1)
PROPOSAL_STATUS_VOTING_PERIOD = ProposalStatus.V(2)
PROPOSAL_STATUS_PASSED = ProposalStatus.V(3)
PROPOSAL_STATUS_REJECTED = ProposalStatus.V(4)
PROPOSAL_STATUS_FAILED = ProposalStatus.V(5)

class _ProposalStatus(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ProposalStatus.V], builtins.type):  # type: ignore
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    PROPOSAL_STATUS_UNSPECIFIED = ProposalStatus.V(0)
    PROPOSAL_STATUS_DEPOSIT_PERIOD = ProposalStatus.V(1)
    PROPOSAL_STATUS_VOTING_PERIOD = ProposalStatus.V(2)
    PROPOSAL_STATUS_PASSED = ProposalStatus.V(3)
    PROPOSAL_STATUS_REJECTED = ProposalStatus.V(4)
    PROPOSAL_STATUS_FAILED = ProposalStatus.V(5)

class TextProposal(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TITLE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    title: typing.Text = ...
    description: typing.Text = ...

    def __init__(self,
        *,
        title : typing.Text = ...,
        description : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"description",b"description",u"title",b"title"]) -> None: ...
global___TextProposal = TextProposal

class Deposit(google.protobuf.message.Message):
    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 = ...
    depositor: typing.Text = ...

    @property
    def amount(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...

    def __init__(self,
        *,
        proposal_id : builtins.int = ...,
        depositor : typing.Text = ...,
        amount : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"amount",b"amount",u"depositor",b"depositor",u"proposal_id",b"proposal_id"]) -> None: ...
global___Deposit = Deposit

class Proposal(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    FINAL_TALLY_RESULT_FIELD_NUMBER: builtins.int
    SUBMIT_TIME_FIELD_NUMBER: builtins.int
    DEPOSIT_END_TIME_FIELD_NUMBER: builtins.int
    TOTAL_DEPOSIT_FIELD_NUMBER: builtins.int
    VOTING_START_TIME_FIELD_NUMBER: builtins.int
    VOTING_END_TIME_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int = ...
    status: global___ProposalStatus.V = ...

    @property
    def content(self) -> google.protobuf.any_pb2.Any: ...

    @property
    def final_tally_result(self) -> global___TallyResult: ...

    @property
    def submit_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def deposit_end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def total_deposit(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...

    @property
    def voting_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    @property
    def voting_end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...

    def __init__(self,
        *,
        proposal_id : builtins.int = ...,
        content : typing.Optional[google.protobuf.any_pb2.Any] = ...,
        status : global___ProposalStatus.V = ...,
        final_tally_result : typing.Optional[global___TallyResult] = ...,
        submit_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        deposit_end_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        total_deposit : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        voting_start_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        voting_end_time : typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"content",b"content",u"deposit_end_time",b"deposit_end_time",u"final_tally_result",b"final_tally_result",u"submit_time",b"submit_time",u"voting_end_time",b"voting_end_time",u"voting_start_time",b"voting_start_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"content",b"content",u"deposit_end_time",b"deposit_end_time",u"final_tally_result",b"final_tally_result",u"proposal_id",b"proposal_id",u"status",b"status",u"submit_time",b"submit_time",u"total_deposit",b"total_deposit",u"voting_end_time",b"voting_end_time",u"voting_start_time",b"voting_start_time"]) -> None: ...
global___Proposal = Proposal

class TallyResult(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    YES_FIELD_NUMBER: builtins.int
    ABSTAIN_FIELD_NUMBER: builtins.int
    NO_FIELD_NUMBER: builtins.int
    NO_WITH_VETO_FIELD_NUMBER: builtins.int
    yes: typing.Text = ...
    abstain: typing.Text = ...
    no: typing.Text = ...
    no_with_veto: typing.Text = ...

    def __init__(self,
        *,
        yes : typing.Text = ...,
        abstain : typing.Text = ...,
        no : typing.Text = ...,
        no_with_veto : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"abstain",b"abstain",u"no",b"no",u"no_with_veto",b"no_with_veto",u"yes",b"yes"]) -> None: ...
global___TallyResult = TallyResult

class Vote(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    VOTER_FIELD_NUMBER: builtins.int
    OPTION_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int = ...
    voter: typing.Text = ...
    option: global___VoteOption.V = ...

    def __init__(self,
        *,
        proposal_id : builtins.int = ...,
        voter : typing.Text = ...,
        option : global___VoteOption.V = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"option",b"option",u"proposal_id",b"proposal_id",u"voter",b"voter"]) -> None: ...
global___Vote = Vote

class DepositParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MIN_DEPOSIT_FIELD_NUMBER: builtins.int
    MAX_DEPOSIT_PERIOD_FIELD_NUMBER: builtins.int

    @property
    def min_deposit(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...

    @property
    def max_deposit_period(self) -> google.protobuf.duration_pb2.Duration: ...

    def __init__(self,
        *,
        min_deposit : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        max_deposit_period : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"max_deposit_period",b"max_deposit_period"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"max_deposit_period",b"max_deposit_period",u"min_deposit",b"min_deposit"]) -> None: ...
global___DepositParams = DepositParams

class VotingParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VOTING_PERIOD_FIELD_NUMBER: builtins.int

    @property
    def voting_period(self) -> google.protobuf.duration_pb2.Duration: ...

    def __init__(self,
        *,
        voting_period : typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"voting_period",b"voting_period"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"voting_period",b"voting_period"]) -> None: ...
global___VotingParams = VotingParams

class TallyParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    QUORUM_FIELD_NUMBER: builtins.int
    THRESHOLD_FIELD_NUMBER: builtins.int
    VETO_THRESHOLD_FIELD_NUMBER: builtins.int
    quorum: builtins.bytes = ...
    threshold: builtins.bytes = ...
    veto_threshold: builtins.bytes = ...

    def __init__(self,
        *,
        quorum : builtins.bytes = ...,
        threshold : builtins.bytes = ...,
        veto_threshold : builtins.bytes = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"quorum",b"quorum",u"threshold",b"threshold",u"veto_threshold",b"veto_threshold"]) -> None: ...
global___TallyParams = TallyParams
