"""
This type stub file was generated by pyright.
"""

from abc import abstractmethod
from typing import TYPE_CHECKING
from graph_sitter.core.external.external_process import ExternalProcess
from graph_sitter.enums import ProgrammingLanguage
from graph_sitter.codebase.codebase_graph import CodebaseGraph
from graph_sitter.core.interfaces.editable import Editable

if TYPE_CHECKING:
    ...
class LanguageEngine(ExternalProcess):
    """Base class for all third part language engine support.

    This class provides the foundation for integrating external language analysis engines.
    It handles initialization, startup, and status tracking of the engine.
    """
    @abstractmethod
    def get_return_type(self, node: Editable) -> str | None:
        ...
    


def get_language_engine(language: ProgrammingLanguage, codebase_graph: CodebaseGraph, use_ts: bool = ..., use_v8: bool = ...) -> LanguageEngine | None:
    ...

