import datetime
from typing import ClassVar

from ..core import WesternCalendar

class Germany(WesternCalendar):
    all_time_include_reformation_day: ClassVar[bool]
    include_reformation_day_2018: ClassVar[bool]
    def include_reformation_day(self, year: int) -> bool: ...
    def get_reformation_day(self, year: int) -> tuple[datetime.date, str]: ...

class BadenWurttemberg(Germany): ...
class Bavaria(Germany): ...

class Berlin(Germany):
    def get_international_womens_day(self, year: int) -> tuple[datetime.date, str]: ...
    def get_liberation_day(self, year: int) -> tuple[datetime.date, str]: ...

class Brandenburg(Germany): ...
class Bremen(Germany): ...
class Hamburg(Germany): ...
class Hesse(Germany): ...
class MecklenburgVorpommern(Germany): ...
class LowerSaxony(Germany): ...
class NorthRhineWestphalia(Germany): ...
class RhinelandPalatinate(Germany): ...
class Saarland(Germany): ...

class Saxony(Germany):
    def get_repentance_day(self, year: int) -> tuple[datetime.date, str]: ...

class SaxonyAnhalt(Germany): ...
class SchleswigHolstein(Germany): ...
class Thuringia(Germany): ...
