"""Auto-generated type stubs for @configurable decorators.

This file is automatically generated by scripts/generate_stubs.py.
Do not edit manually - changes will be overwritten.
"""

from typing import Literal

from hipr.config import MakeableModel
import pandas as pd
from pdval import (
    Datetime,
    Ge as GeValidator,
    HasColumns,
    Index,
    NonEmpty,
    NonNaN,
    Validated,
)

class VwapConfig(MakeableModel[pd.DataFrame]):
    pass

class VwapAnchoredConfig(MakeableModel[pd.DataFrame]):
    pass

class _VwapConfigurable:
    Config: type[VwapConfig]
    def __call__(
        self,
        data: Validated[
            pd.DataFrame,
            HasColumns[Literal["high", "low", "close", "volume"]],
            Index[Datetime],
            NonNaN,
            NonEmpty,
            GeValidator[Literal["high", "low"]],
        ],
        session_freq: Literal["D", "W", "ME"] = "D",
    ) -> pd.DataFrame: ...

type vwap = _VwapConfigurable

class _VwapAnchoredConfigurable:
    Config: type[VwapAnchoredConfig]
    def __call__(
        self,
        data: Validated[
            pd.DataFrame,
            HasColumns[Literal["high", "low", "close", "volume"]],
            NonNaN,
            NonEmpty,
        ],
        anchor_index: int | None = None,
        anchor_datetime: pd.Timestamp | str | None = None,
    ) -> pd.DataFrame: ...

type vwap_anchored = _VwapAnchoredConfigurable
