"""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, override

from hipr import MakeableModel
import pandas as pd
from pdval import Datetime, HasColumns, Index, Validated

# Module constants
_DEFAULT_MIN_SAMPLES = 3

class atr:  # noqa: N801
  class Config(MakeableModel["atr"]):
    window: int
    def __init__(self, *, window: int = 14) -> None: ...
    @override
    def make(self) -> atr: ...

  window: int
  type Type = "atr"
  def __new__(
    cls,
    data: Validated[pd.DataFrame, HasColumns[Literal["high", "low", "close"]]],
    *,
    window: int = 14,
  ) -> pd.DataFrame: ...
  def __call__(
    self,
    data: Validated[pd.DataFrame, HasColumns[Literal["high", "low", "close"]]],
    *,
    window: int = 14,
  ) -> pd.DataFrame: ...

class atr_intraday:  # noqa: N801
  class Config(MakeableModel["atr_intraday"]):
    min_samples: int
    def __init__(self, *, min_samples: int = _DEFAULT_MIN_SAMPLES) -> None: ...
    @override
    def make(self) -> atr_intraday: ...

  min_samples: int
  type Type = "atr_intraday"
  def __new__(
    cls,
    data: Validated[
      pd.DataFrame, HasColumns[Literal["high", "low", "close"]], Index[Datetime]
    ],
    *,
    lookback_days: int | None = None,
    min_samples: int = _DEFAULT_MIN_SAMPLES,
  ) -> pd.DataFrame: ...
  def __call__(
    self,
    data: Validated[
      pd.DataFrame, HasColumns[Literal["high", "low", "close"]], Index[Datetime]
    ],
    *,
    lookback_days: int | None = None,
    min_samples: int = _DEFAULT_MIN_SAMPLES,
  ) -> pd.DataFrame: ...
