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

from pathlib import Path
from typing import Any, TYPE_CHECKING
from streamlit.runtime.scriptrunner.script_cache import ScriptCache
from streamlit.source_util import PageHash, PageInfo, PageName, ScriptPath

if TYPE_CHECKING:
    ...
class PagesManager:
    """
    PagesManager is responsible for managing the set of pages that make up
    the entire application. At the start we assume the main script is the
    only page. As the script runs, the main script can call `st.navigation`
    to set the set of pages that make up the app.
    """
    uses_pages_directory: bool | None = ...
    def __init__(self, main_script_path: ScriptPath, script_cache: ScriptCache | None = ..., **kwargs) -> None:
        ...
    
    @property
    def main_script_path(self) -> ScriptPath:
        ...
    
    @property
    def main_script_parent(self) -> Path:
        ...
    
    @property
    def main_script_hash(self) -> PageHash:
        ...
    
    @property
    def current_page_script_hash(self) -> PageHash:
        ...
    
    @property
    def intended_page_name(self) -> PageName | None:
        ...
    
    @property
    def intended_page_script_hash(self) -> PageHash | None:
        ...
    
    def set_current_page_script_hash(self, page_script_hash: PageHash) -> None:
        ...
    
    def get_main_page(self) -> PageInfo:
        ...
    
    def set_script_intent(self, page_script_hash: PageHash, page_name: PageName) -> None:
        ...
    
    def get_initial_active_script(self, page_script_hash: PageHash, page_name: PageName) -> PageInfo | None:
        ...
    
    def get_pages(self) -> dict[PageHash, PageInfo]:
        ...
    
    def set_pages(self, pages: dict[PageHash, PageInfo]) -> None:
        ...
    
    def get_page_script(self, fallback_page_hash: PageHash = ...) -> PageInfo | None:
        ...
    
    def get_page_script_byte_code(self, script_path: str) -> Any:
        ...
    


