"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _TimeGrouping:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _TimeGroupingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TimeGrouping.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    TIME_GROUPING_UNSPECIFIED: _TimeGrouping.ValueType  # 0
    """Default unspecified value. Typically treated as DAY."""
    DAY: _TimeGrouping.ValueType  # 1
    """Group reports by day."""
    WEEK: _TimeGrouping.ValueType  # 2
    """Group reports by week."""
    MONTH: _TimeGrouping.ValueType  # 3
    """Group reports by month."""
    QUARTER: _TimeGrouping.ValueType  # 4
    """Group reports by quarter (3-month periods)."""
    YEAR: _TimeGrouping.ValueType  # 5
    """Group reports by year."""

class TimeGrouping(_TimeGrouping, metaclass=_TimeGroupingEnumTypeWrapper):
    """Enum for time period grouping options used to control the granularity of time-based data aggregation.
    This determines how the time series data is grouped in responses (e.g., daily, monthly reports).
    """

TIME_GROUPING_UNSPECIFIED: TimeGrouping.ValueType  # 0
"""Default unspecified value. Typically treated as DAY."""
DAY: TimeGrouping.ValueType  # 1
"""Group reports by day."""
WEEK: TimeGrouping.ValueType  # 2
"""Group reports by week."""
MONTH: TimeGrouping.ValueType  # 3
"""Group reports by month."""
QUARTER: TimeGrouping.ValueType  # 4
"""Group reports by quarter (3-month periods)."""
YEAR: TimeGrouping.ValueType  # 5
"""Group reports by year."""
global___TimeGrouping = TimeGrouping

class _Currency:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CurrencyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Currency.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    CURRENCY_UNSPECIFIED: _Currency.ValueType  # 0
    """Unspecified or unknown currency."""
    RUB: _Currency.ValueType  # 1
    """Russian Ruble"""
    USD: _Currency.ValueType  # 2
    """US Dollar"""
    KZT: _Currency.ValueType  # 3
    """Kazakhstani Tenge"""
    EUR: _Currency.ValueType  # 4
    """Euro"""

class Currency(_Currency, metaclass=_CurrencyEnumTypeWrapper):
    """Enum for supported currency codes used in billing and financial reports."""

CURRENCY_UNSPECIFIED: Currency.ValueType  # 0
"""Unspecified or unknown currency."""
RUB: Currency.ValueType  # 1
"""Russian Ruble"""
USD: Currency.ValueType  # 2
"""US Dollar"""
KZT: Currency.ValueType  # 3
"""Kazakhstani Tenge"""
EUR: Currency.ValueType  # 4
"""Euro"""
global___Currency = Currency

@typing.final
class StringDecimal(google.protobuf.message.Message):
    """StringDecimal representation for financial values
    Used to ensure precise handling of monetary values
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VALUE_FIELD_NUMBER: builtins.int
    value: builtins.str
    """String representation of the decimal value to avoid floating-point precision issues"""
    def __init__(
        self,
        *,
        value: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ...

global___StringDecimal = StringDecimal
