import contextlib from typing import Any, Protocol from ows_text_campaigns.adapters.db import Model, PgModel class BuildModel(Protocol): def __call__[T](self, model: type[T], **kwargs: Any) -> T: ... class CreateModel(Protocol): def __call__[T: Model](self, model: type[T], **kwargs: Any) -> T: ... class CreatePgModel(Protocol): def __call__[T: PgModel](self, model: type[T], **kwargs: Any) -> T: ... class OverrideSettings(Protocol): def __call__(self, **kwargs: Any) -> contextlib.AbstractContextManager[None]: ...