from typing import Any

def save_obj(base_mapper, states, uowtransaction, single: bool = ...): ...
def post_update(base_mapper, states, uowtransaction, post_update_cols): ...
def delete_obj(base_mapper, states, uowtransaction): ...

class BulkUD(object):
    query: Any = ...
    mapper: Any = ...
    def __init__(self, query) -> None: ...
    @property
    def session(self): ...
    def exec_(self): ...

class BulkEvaluate(BulkUD): ...
class BulkFetch(BulkUD): ...

class BulkUpdate(BulkUD):
    values: Any = ...
    update_kwargs: Any = ...
    def __init__(self, query, values, update_kwargs) -> None: ...
    @classmethod
    def factory(cls, query, synchronize_session, values, update_kwargs): ...

class BulkDelete(BulkUD):
    def __init__(self, query) -> None: ...
    @classmethod
    def factory(cls, query, synchronize_session): ...

class BulkUpdateEvaluate(BulkEvaluate, BulkUpdate): ...
class BulkDeleteEvaluate(BulkEvaluate, BulkDelete): ...
class BulkUpdateFetch(BulkFetch, BulkUpdate): ...
class BulkDeleteFetch(BulkFetch, BulkDelete): ...
