"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.auth.v1beta1.auth_pb2
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 = ...

class BaseVestingAccount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BASE_ACCOUNT_FIELD_NUMBER: builtins.int
    ORIGINAL_VESTING_FIELD_NUMBER: builtins.int
    DELEGATED_FREE_FIELD_NUMBER: builtins.int
    DELEGATED_VESTING_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    end_time: builtins.int = ...

    @property
    def base_account(self) -> cosmos.auth.v1beta1.auth_pb2.BaseAccount: ...

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

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

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

    def __init__(self,
        *,
        base_account : typing.Optional[cosmos.auth.v1beta1.auth_pb2.BaseAccount] = ...,
        original_vesting : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        delegated_free : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        delegated_vesting : typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        end_time : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"base_account",b"base_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"base_account",b"base_account",u"delegated_free",b"delegated_free",u"delegated_vesting",b"delegated_vesting",u"end_time",b"end_time",u"original_vesting",b"original_vesting"]) -> None: ...
global___BaseVestingAccount = BaseVestingAccount

class ContinuousVestingAccount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BASE_VESTING_ACCOUNT_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    start_time: builtins.int = ...

    @property
    def base_vesting_account(self) -> global___BaseVestingAccount: ...

    def __init__(self,
        *,
        base_vesting_account : typing.Optional[global___BaseVestingAccount] = ...,
        start_time : builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account",u"start_time",b"start_time"]) -> None: ...
global___ContinuousVestingAccount = ContinuousVestingAccount

class DelayedVestingAccount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BASE_VESTING_ACCOUNT_FIELD_NUMBER: builtins.int

    @property
    def base_vesting_account(self) -> global___BaseVestingAccount: ...

    def __init__(self,
        *,
        base_vesting_account : typing.Optional[global___BaseVestingAccount] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account"]) -> None: ...
global___DelayedVestingAccount = DelayedVestingAccount

class Period(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    LENGTH_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    length: builtins.int = ...

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

    def __init__(self,
        *,
        length : builtins.int = ...,
        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"length",b"length"]) -> None: ...
global___Period = Period

class PeriodicVestingAccount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    BASE_VESTING_ACCOUNT_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    VESTING_PERIODS_FIELD_NUMBER: builtins.int
    start_time: builtins.int = ...

    @property
    def base_vesting_account(self) -> global___BaseVestingAccount: ...

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

    def __init__(self,
        *,
        base_vesting_account : typing.Optional[global___BaseVestingAccount] = ...,
        start_time : builtins.int = ...,
        vesting_periods : typing.Optional[typing.Iterable[global___Period]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"base_vesting_account",b"base_vesting_account",u"start_time",b"start_time",u"vesting_periods",b"vesting_periods"]) -> None: ...
global___PeriodicVestingAccount = PeriodicVestingAccount
