import datetime
from _typeshed import Incomplete
from dateutil.rrule import rrule
from habiticalib import ContentData as ContentData, GroupData as GroupData, QuestBoss as QuestBoss, TaskData as TaskData, UserData as UserData
from typing import Any, Literal

def next_due_date(task: TaskData, today: datetime.datetime) -> datetime.date | None: ...

FREQUENCY_MAP: dict[str, Literal[0, 1, 2, 3]]
WEEKDAY_MAP: Incomplete

def build_rrule(task: TaskData) -> rrule: ...
def get_recurrence_rule(recurrence: rrule) -> str: ...
def get_attribute_points(user: UserData, content: ContentData, attribute: str) -> dict[str, float]: ...
def get_attributes_total(user: UserData, content: ContentData, attribute: str) -> int: ...
def inventory_list(user: UserData, content: ContentData, item_type: str) -> dict[str, int]: ...
def pending_quest_items(user: UserData, content: ContentData) -> int | None: ...
def pending_damage(user: UserData, content: ContentData) -> float | None: ...
def quest_attributes(party: GroupData, content: ContentData) -> dict[str, Any]: ...
def rage_attributes(party: GroupData, content: ContentData) -> dict[str, Any]: ...
def quest_boss(party: GroupData, content: ContentData) -> QuestBoss | None: ...
def collected_quest_items(party: GroupData, content: ContentData) -> dict[str, Any]: ...
