"""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 hipr.config import MakeableModel
import pandas as pd
from pdval import Datetime, Finite, Index, NonEmpty, NonNaN, Validated

from indikator.rvol import MIN_SAMPLES_PER_SLOT

class ZscoreConfig(MakeableModel[pd.Series]):
    window: int
    epsilon: float
    def __init__(self, *, window: int = 20, epsilon: float = 1e-09) -> None: ...

class ZscoreIntradayConfig(MakeableModel[pd.Series]):
    min_samples: int
    epsilon: float
    def __init__(
        self, *, min_samples: int = MIN_SAMPLES_PER_SLOT, epsilon: float = 1e-09
    ) -> None: ...

class _ZscoreConfigurable:
    Config: type[ZscoreConfig]
    def __call__(
        self,
        data: Validated[pd.Series, Finite, NonNaN, NonEmpty],
        *,
        window: int = 20,
        epsilon: float = 1e-09,
    ) -> pd.Series: ...

type zscore = _ZscoreConfigurable

class _ZscoreIntradayConfigurable:
    Config: type[ZscoreIntradayConfig]
    def __call__(
        self,
        data: Validated[pd.Series, Index[Datetime], NonEmpty],
        *,
        lookback_days: int | None = None,
        min_samples: int = MIN_SAMPLES_PER_SLOT,
        epsilon: float = 1e-09,
    ) -> pd.Series: ...

type zscore_intraday = _ZscoreIntradayConfigurable
