from typing import Any, Mapping, Optional, Set

from dev.coatl.helper.types import AnyStr
from java.lang import Object

class NamedQueryManager:
    def beginTransaction(
        self, project: AnyStr, datasource: AnyStr, isolationLevel: int, timeout: long
    ) -> AnyStr: ...
    def clearAllCaches(self, project: AnyStr) -> None: ...
    def clearCache(self, project: AnyStr, queryPaths: Set[AnyStr]) -> None: ...
    def execute(self, *args: Any) -> Object: ...
    def executeSFquery(
        self, project: AnyStr, path: AnyStr, parameters: Mapping[AnyStr, Object]
    ) -> Object: ...
    def getQueryFromPath(self, project: AnyStr, queryPath: AnyStr) -> NamedQuery: ...

class NamedQuery(Object):
    def __init__(self, nq: Optional[NamedQuery] = ...) -> None: ...
