from _typeshed import Incomplete
from typing import Any
from typing_extensions import Self

class Settings:
    def __new__(cls, *args, **kw) -> Self: ...
    def __init__(self, settings: Incomplete | None = None) -> None: ...
    @classmethod
    def get_key(cls, settings: Incomplete | None = None): ...
    def replace(self, mod_settings: Incomplete | None = None, **kwds): ...

settings: Any

def apply_settings(f): ...

class SettingValidationError(ValueError): ...

def check_settings(settings) -> None: ...
