from os import PathLike

from solrstice.hosts import SolrServerContext
from typing import List, Union

async def upload_config(context: SolrServerContext, config_name: str, config_path: Union[PathLike[str], str]) -> None:
    """Uploads a Solr config to a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
        :param config_path: Path to the config
    """
    pass

def upload_config_blocking(context: SolrServerContext, config_name: str, config_path: Union[PathLike[str], str]) -> None:
    """Uploads a Solr config to a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
        :param config_path: Path to the config
    """
    pass

async def delete_config(context: SolrServerContext, config_name: str) -> None:
    """Deletes a Solr config from a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
    """
    pass

def delete_config_blocking(context: SolrServerContext, config_name: str) -> None:
    """Deletes a Solr config from a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
    """
    pass

async def config_exists(context: SolrServerContext, config_name: str) -> bool:
    """Checks if a Solr config exists on a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
    """
    pass

def config_exists_blocking(context: SolrServerContext, config_name: str) -> bool:
    """Checks if a Solr config exists on a Solr instance

        :param context: SolrServerRequest context
        :param config_name: Name of the config
    """
    pass

async def get_configs(context: SolrServerContext) -> List[str]:
    """Gets a list of Solr configs on a Solr instance

        :param context: SolrServerRequest context
    """
    pass

def get_configs_blocking(context: SolrServerContext) -> List[str]:
    """Gets a list of Solr configs on a Solr instance

        :param context: SolrServerRequest builder
    """
    pass