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

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

# Params defines the set of params for the distribution module.
class Params(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    COMMUNITY_TAX_FIELD_NUMBER: builtins.int
    BASE_PROPOSER_REWARD_FIELD_NUMBER: builtins.int
    BONUS_PROPOSER_REWARD_FIELD_NUMBER: builtins.int
    WITHDRAW_ADDR_ENABLED_FIELD_NUMBER: builtins.int
    community_tax: typing.Text = ...
    base_proposer_reward: typing.Text = ...
    bonus_proposer_reward: typing.Text = ...
    withdraw_addr_enabled: builtins.bool = ...
    def __init__(self,
        *,
        community_tax : typing.Text = ...,
        base_proposer_reward : typing.Text = ...,
        bonus_proposer_reward : typing.Text = ...,
        withdraw_addr_enabled : builtins.bool = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"base_proposer_reward",b"base_proposer_reward",u"bonus_proposer_reward",b"bonus_proposer_reward",u"community_tax",b"community_tax",u"withdraw_addr_enabled",b"withdraw_addr_enabled"]) -> None: ...
global___Params = Params

# ValidatorHistoricalRewards represents historical rewards for a validator.
# Height is implicit within the store key.
# Cumulative reward ratio is the sum from the zeroeth period
# until this period of rewards / tokens, per the spec.
# The reference count indicates the number of objects
# which might need to reference this historical entry at any point.
# ReferenceCount =
#    number of outstanding delegations which ended the associated period (and
#    might need to read that record)
#  + number of slashes which ended the associated period (and might need to
#  read that record)
#  + one per validator for the zeroeth period, set on initialization
class ValidatorHistoricalRewards(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    CUMULATIVE_REWARD_RATIO_FIELD_NUMBER: builtins.int
    REFERENCE_COUNT_FIELD_NUMBER: builtins.int
    @property
    def cumulative_reward_ratio(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    reference_count: builtins.int = ...
    def __init__(self,
        *,
        cumulative_reward_ratio : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        reference_count : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"cumulative_reward_ratio",b"cumulative_reward_ratio",u"reference_count",b"reference_count"]) -> None: ...
global___ValidatorHistoricalRewards = ValidatorHistoricalRewards

# ValidatorCurrentRewards represents current rewards and current
# period for a validator kept as a running counter and incremented
# each block as long as the validator's tokens remain constant.
class ValidatorCurrentRewards(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    REWARDS_FIELD_NUMBER: builtins.int
    PERIOD_FIELD_NUMBER: builtins.int
    @property
    def rewards(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    period: builtins.int = ...
    def __init__(self,
        *,
        rewards : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        period : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"period",b"period",u"rewards",b"rewards"]) -> None: ...
global___ValidatorCurrentRewards = ValidatorCurrentRewards

# ValidatorAccumulatedCommission represents accumulated commission
# for a validator kept as a running counter, can be withdrawn at any time.
class ValidatorAccumulatedCommission(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    COMMISSION_FIELD_NUMBER: builtins.int
    @property
    def commission(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    def __init__(self,
        *,
        commission : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"commission",b"commission"]) -> None: ...
global___ValidatorAccumulatedCommission = ValidatorAccumulatedCommission

# ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
# for a validator inexpensive to track, allows simple sanity checks.
class ValidatorOutstandingRewards(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    REWARDS_FIELD_NUMBER: builtins.int
    @property
    def rewards(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    def __init__(self,
        *,
        rewards : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"rewards",b"rewards"]) -> None: ...
global___ValidatorOutstandingRewards = ValidatorOutstandingRewards

# ValidatorSlashEvent represents a validator slash event.
# Height is implicit within the store key.
# This is needed to calculate appropriate amount of staking tokens
# for delegations which are withdrawn after a slash has occurred.
class ValidatorSlashEvent(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALIDATOR_PERIOD_FIELD_NUMBER: builtins.int
    FRACTION_FIELD_NUMBER: builtins.int
    validator_period: builtins.int = ...
    fraction: typing.Text = ...
    def __init__(self,
        *,
        validator_period : builtins.int = ...,
        fraction : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"fraction",b"fraction",u"validator_period",b"validator_period"]) -> None: ...
global___ValidatorSlashEvent = ValidatorSlashEvent

# ValidatorSlashEvents is a collection of ValidatorSlashEvent messages.
class ValidatorSlashEvents(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALIDATOR_SLASH_EVENTS_FIELD_NUMBER: builtins.int
    @property
    def validator_slash_events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValidatorSlashEvent]: ...
    def __init__(self,
        *,
        validator_slash_events : typing.Optional[typing.Iterable[global___ValidatorSlashEvent]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"validator_slash_events",b"validator_slash_events"]) -> None: ...
global___ValidatorSlashEvents = ValidatorSlashEvents

# FeePool is the global fee pool for distribution.
class FeePool(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    COMMUNITY_POOL_FIELD_NUMBER: builtins.int
    @property
    def community_pool(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    def __init__(self,
        *,
        community_pool : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"community_pool",b"community_pool"]) -> None: ...
global___FeePool = FeePool

# CommunityPoolSpendProposal details a proposal for use of community funds,
# together with how many coins are proposed to be spent, and to which
# recipient account.
class CommunityPoolSpendProposal(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TITLE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    RECIPIENT_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    title: typing.Text = ...
    description: typing.Text = ...
    recipient: typing.Text = ...
    @property
    def amount(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(self,
        *,
        title : typing.Text = ...,
        description : typing.Text = ...,
        recipient : 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"description",b"description",u"recipient",b"recipient",u"title",b"title"]) -> None: ...
global___CommunityPoolSpendProposal = CommunityPoolSpendProposal

# DelegatorStartingInfo represents the starting info for a delegator reward
# period. It tracks the previous validator period, the delegation's amount of
# staking token, and the creation height (to check later on if any slashes have
# occurred). NOTE: Even though validators are slashed to whole staking tokens,
# the delegators within the validator may be left with less than a full token,
# thus sdk.Dec is used.
class DelegatorStartingInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    PREVIOUS_PERIOD_FIELD_NUMBER: builtins.int
    STAKE_FIELD_NUMBER: builtins.int
    HEIGHT_FIELD_NUMBER: builtins.int
    previous_period: builtins.int = ...
    stake: typing.Text = ...
    height: builtins.int = ...
    def __init__(self,
        *,
        previous_period : builtins.int = ...,
        stake : typing.Text = ...,
        height : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"height",b"height",u"previous_period",b"previous_period",u"stake",b"stake"]) -> None: ...
global___DelegatorStartingInfo = DelegatorStartingInfo

# DelegationDelegatorReward represents the properties
# of a delegator's delegation reward.
class DelegationDelegatorReward(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    VALIDATOR_ADDRESS_FIELD_NUMBER: builtins.int
    REWARD_FIELD_NUMBER: builtins.int
    validator_address: typing.Text = ...
    @property
    def reward(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.DecCoin]: ...
    def __init__(self,
        *,
        validator_address : typing.Text = ...,
        reward : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.DecCoin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"reward",b"reward",u"validator_address",b"validator_address"]) -> None: ...
global___DelegationDelegatorReward = DelegationDelegatorReward

# CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
# with a deposit
class CommunityPoolSpendProposalWithDeposit(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TITLE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    RECIPIENT_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    DEPOSIT_FIELD_NUMBER: builtins.int
    title: typing.Text = ...
    description: typing.Text = ...
    recipient: typing.Text = ...
    amount: typing.Text = ...
    deposit: typing.Text = ...
    def __init__(self,
        *,
        title : typing.Text = ...,
        description : typing.Text = ...,
        recipient : typing.Text = ...,
        amount : typing.Text = ...,
        deposit : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"amount",b"amount",u"deposit",b"deposit",u"description",b"description",u"recipient",b"recipient",u"title",b"title"]) -> None: ...
global___CommunityPoolSpendProposalWithDeposit = CommunityPoolSpendProposalWithDeposit
