from pandas.core.accessor import PandasDelegate as PandasDelegate, delegate_names as delegate_names
from pandas.core.arrays import DatetimeArray as DatetimeArray, PeriodArray as PeriodArray, TimedeltaArray as TimedeltaArray
from pandas.core.base import NoNewAttributesMixin as NoNewAttributesMixin, PandasObject as PandasObject

from pandas.core.dtypes.generic import ABCSeries as ABCSeries
from pandas.core.indexes.datetimes import DatetimeIndex as DatetimeIndex
from pandas.core.indexes.timedeltas import TimedeltaIndex as TimedeltaIndex
from typing import Any

class Properties(PandasDelegate, PandasObject, NoNewAttributesMixin):
    orig: Any = ...
    name: Any = ...
    def __init__(self, data: Any, orig: Any) -> None: ...

class DatetimeProperties(Properties):
    def to_pydatetime(self) -> Any: ...
    @property
    def freq(self) -> Any: ...

class TimedeltaProperties(Properties):
    def to_pytimedelta(self) -> Any: ...
    @property
    def components(self) -> Any: ...
    @property
    def freq(self) -> Any: ...

class PeriodProperties(Properties): ...

class CombinedDatetimelikeProperties(DatetimeProperties, TimedeltaProperties, PeriodProperties):
    def __new__(cls, data: Any) -> Any: ...
