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

import streamlit.watcher
from typing import Callable, Union
from streamlit.watcher.polling_path_watcher import PollingPathWatcher

class NoOpPathWatcher:
    def __init__(self, _path_str: str, _on_changed: Callable[[str], None], *, glob_pattern: str | None = ..., allow_nonexistent: bool = ...) -> None:
        ...
    


PathWatcherType = Union[type["streamlit.watcher.event_based_path_watcher.EventBasedPathWatcher"], type[PollingPathWatcher], type[NoOpPathWatcher],]
def report_watchdog_availability(): # -> None:
    ...

def watch_file(path: str, on_file_changed: Callable[[str], None], watcher_type: str | None = ...) -> bool:
    ...

def watch_dir(path: str, on_dir_changed: Callable[[str], None], watcher_type: str | None = ..., *, glob_pattern: str | None = ..., allow_nonexistent: bool = ...) -> bool:
    ...

def get_default_path_watcher_class() -> PathWatcherType:
    """Return the class to use for path changes notifications, based on the
    server.fileWatcherType config option.
    """
    ...

def get_path_watcher_class(watcher_type: str) -> PathWatcherType:
    """Return the PathWatcher class that corresponds to the given watcher_type
    string. Acceptable values are 'auto', 'watchdog', 'poll' and 'none'.
    """
    ...

