from .async_logger import AsyncLogger as AsyncLogger
from _typeshed import Incomplete
from pathlib import Path
from typing import Any
class AsyncLLMTextManager:
docs_dir: Incomplete
logger: Incomplete
max_concurrent_calls: Incomplete
batch_size: Incomplete
bm25_index: Incomplete
document_map: dict[str, Any]
tokenized_facts: list[str]
bm25_index_file: Incomplete
def __init__(self, docs_dir: Path, logger: AsyncLogger | None = None, max_concurrent_calls: int = 5, batch_size: int = 3) -> None: ...
def preprocess_text(self, text: str) -> list[str]: ...
def maybe_load_bm25_index(self, clear_cache: bool = False) -> bool: ...
def build_search_index(self, clear_cache: bool = False) -> None: ...
async def generate_index_files(self, force_generate_facts: bool = False, clear_bm25_cache: bool = False) -> None: ...
def generate(self, sections: list[str], mode: str = 'extended') -> str: ...
def search(self, query: str, top_k: int = 5) -> str: ...
def refresh_index(self) -> None: ...