import aiosqlite
from .models import CrawlResult
from .utils import create_box_message as create_box_message
from _typeshed import Incomplete
from collections.abc import Generator
from contextlib import asynccontextmanager
base_directory: Incomplete
DB_PATH: Incomplete
class AsyncDatabaseManager:
db_path: Incomplete
content_paths: Incomplete
pool_size: Incomplete
max_retries: Incomplete
connection_pool: dict[int, aiosqlite.Connection]
pool_lock: Incomplete
init_lock: Incomplete
connection_semaphore: Incomplete
version_manager: Incomplete
logger: Incomplete
def __init__(self, pool_size: int = 10, max_retries: int = 3) -> None: ...
async def initialize(self) -> None: ...
async def cleanup(self) -> None: ...
@asynccontextmanager
async def get_connection(self) -> Generator[Incomplete]: ...
async def execute_with_retry(self, operation, *args): ...
async def ainit_db(self) -> None: ...
async def update_db_schema(self) -> None: ...
async def aalter_db_add_column(self, new_column: str, db): ...
async def aget_cached_url(self, url: str) -> CrawlResult | None: ...
async def acache_url(self, result: CrawlResult): ...
async def aget_total_count(self) -> int: ...
async def aclear_db(self) -> None: ...
async def aflush_db(self) -> None: ...
async_db_manager: Incomplete