from _typeshed import Incomplete
from docassemble.base.mako import exceptions as exceptions, util as util
from docassemble.base.mako.template import Template as Template

class TemplateCollection:
    def has_template(self, uri): ...
    def get_template(self, uri, relativeto: Incomplete | None = ...) -> None: ...
    def filename_to_uri(self, uri, filename): ...
    def adjust_uri(self, uri, filename): ...

class TemplateLookup(TemplateCollection):
    directories: Incomplete
    module_directory: Incomplete
    modulename_callable: Incomplete
    filesystem_checks: Incomplete
    collection_size: Incomplete
    template_args: Incomplete
    _collection: Incomplete
    _uri_cache: Incomplete
    _mutex: Incomplete
    def __init__(self, directories: Incomplete | None = ..., module_directory: Incomplete | None = ..., filesystem_checks: bool = ..., collection_size: int = ..., format_exceptions: bool = ..., error_handler: Incomplete | None = ..., output_encoding: Incomplete | None = ..., encoding_errors: str = ..., cache_args: Incomplete | None = ..., cache_impl: str = ..., cache_enabled: bool = ..., cache_type: Incomplete | None = ..., cache_dir: Incomplete | None = ..., cache_url: Incomplete | None = ..., modulename_callable: Incomplete | None = ..., module_writer: Incomplete | None = ..., default_filters: Incomplete | None = ..., buffer_filters=..., strict_undefined: bool = ..., imports: Incomplete | None = ..., future_imports: Incomplete | None = ..., enable_loop: bool = ..., input_encoding: Incomplete | None = ..., preprocessor: Incomplete | None = ..., lexer_cls: Incomplete | None = ..., include_error_handler: Incomplete | None = ...) -> None: ...
    def get_template(self, uri): ...
    def adjust_uri(self, uri, relativeto): ...
    def filename_to_uri(self, filename): ...
    def _relativeize(self, filename): ...
    def _load(self, filename, uri): ...
    def _check(self, uri, template): ...
    def put_string(self, uri, text) -> None: ...
    def put_template(self, uri, template) -> None: ...
