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

from typing import TYPE_CHECKING
from streamlit.runtime.stats import CacheStat
from streamlit.runtime.uploaded_file_manager import UploadFileUrlInfo, UploadedFileManager, UploadedFileRec
from collections.abc import Sequence

if TYPE_CHECKING:
    ...
class MemoryUploadedFileManager(UploadedFileManager):
    """Holds files uploaded by users of the running Streamlit app.
    This class can be used safely from multiple threads simultaneously.
    """
    def __init__(self, upload_endpoint: str) -> None:
        ...
    
    def get_files(self, session_id: str, file_ids: Sequence[str]) -> list[UploadedFileRec]:
        """Return a  list of UploadedFileRec for a given sequence of file_ids.

        Parameters
        ----------
        session_id
            The ID of the session that owns the files.
        file_ids
            The sequence of ids associated with files to retrieve.

        Returns
        -------
        List[UploadedFileRec]
            A list of URL UploadedFileRec instances, each instance contains information
            about uploaded file.
        """
        ...
    
    def remove_session_files(self, session_id: str) -> None:
        """Remove all files associated with a given session."""
        ...
    
    def __repr__(self) -> str:
        ...
    
    def add_file(self, session_id: str, file: UploadedFileRec) -> None:
        """
        Safe to call from any thread.

        Parameters
        ----------
        session_id
            The ID of the session that owns the file.
        file
            The file to add.
        """
        ...
    
    def remove_file(self, session_id, file_id): # -> None:
        """Remove file with given file_id associated with a given session."""
        ...
    
    def get_upload_urls(self, session_id: str, file_names: Sequence[str]) -> list[UploadFileUrlInfo]:
        """Return a list of UploadFileUrlInfo for a given sequence of file_names."""
        ...
    
    def get_stats(self) -> list[CacheStat]:
        """Return the manager's CacheStats.

        Safe to call from any thread.
        """
        ...
    


