from _typeshed import Incomplete

LOGGER: Incomplete

def name_or_value(value): ...
def sanitize_prefix(function): ...
def check_for_prefix_and_key(function): ...

class CallbackManager:
    CALLS: str
    ARGUMENTS: str
    DUPLICATE_WARNING: str
    CALLBACK: str
    ONE_SHOT: str
    ONLY_CALLER: str
    def __init__(self) -> None: ...
    def add(
        self,
        prefix,
        key,
        callback,
        one_shot: bool = True,
        only_caller: Incomplete | None = None,
        arguments: Incomplete | None = None,
    ): ...
    def clear(self) -> None: ...
    def cleanup(self, prefix): ...
    def pending(self, prefix, key): ...
    def process(self, prefix, key, caller, *args, **keywords): ...
    def remove(self, prefix, key, callback_value: Incomplete | None = None, arguments: Incomplete | None = None): ...
    def remove_all(self, prefix, key) -> None: ...
