from typing import Any

from django.db.models.expressions import Combinable, Func

class Aggregate(Func):
    filter_template: str = ...
    filter: Any = ...
    allow_distinct: bool = ...
    def __init__(
        self,
        *expressions: Any,
        distinct: bool = ...,
        filter: Any | None = ...,
        **extra: Any
    ) -> None: ...

class Avg(Aggregate): ...
class Count(Aggregate): ...
class Max(Aggregate): ...
class Min(Aggregate): ...
class StdDev(Aggregate): ...

class StringAgg(Aggregate):
    def __init__(self, expression: Combinable | str, delimiter: Combinable | str, **extra: Any) -> None: ...

class Sum(Aggregate): ...
class Variance(Aggregate): ...
