"""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 Ge as ColsGe, HasColumns, NonNegative, Validated

class churn_factor:  # noqa: N801
  class Config(MakeableModel["churn_factor"]):
    epsilon: float
    def __init__(self, *, epsilon: float = 1e-09) -> None: ...
    @override
    def make(self) -> churn_factor: ...

  epsilon: float
  type Type = "churn_factor"
  def __new__(
    cls,
    data: Validated[
      pd.DataFrame,
      HasColumns[Literal["high", "low", "volume"]],
      ColsGe[Literal["high", "low"]],
      NonNegative,
    ],
    *,
    epsilon: float = 1e-09,
    fill_strategy: str = "zero",
    fill_value: float | None = None,
  ) -> pd.DataFrame: ...
  def __call__(
    self,
    data: Validated[
      pd.DataFrame,
      HasColumns[Literal["high", "low", "volume"]],
      ColsGe[Literal["high", "low"]],
      NonNegative,
    ],
    *,
    epsilon: float = 1e-09,
    fill_strategy: str = "zero",
    fill_value: float | None = None,
  ) -> pd.DataFrame: ...
