from typing import Any, AnyStr, Callable, Dict, Generic, List, Mapping, NamedTuple, Optional, Sequence, Tuple, Union, overload


    def encode(self, encoding: str = ..., errors: str = ...) -> _ResultMixinBytes: ...


    def decode(self, encoding: str = ..., errors: str = ...) -> _ResultMixinStr: ...


        def __class_getitem__(cls, item: Any) -> GenericAlias: ...


class _NetlocResultMixinStr(_NetlocResultMixinBase[str], _ResultMixinStr): ...


class _NetlocResultMixinBytes(_NetlocResultMixinBase[bytes], _ResultMixinBytes): ...


class DefragResult(_DefragResultBase[str], _ResultMixinStr): ...


class SplitResult(_SplitResultBase, _NetlocResultMixinStr): ...


class ParseResult(_ParseResultBase, _NetlocResultMixinStr): ...


class DefragResultBytes(_DefragResultBase[bytes], _ResultMixinBytes): ...


class SplitResultBytes(_SplitResultBytesBase, _NetlocResultMixinBytes): ...


class ParseResultBytes(_ParseResultBytesBase, _NetlocResultMixinBytes): ...


        qs: Optional[AnyStr], keep_blank_values: bool = ..., strict_parsing: bool = ..., encoding: str = ..., errors: str = ...


def quote(string: str, safe: _Str = ..., encoding: Optional[str] = ..., errors: Optional[str] = ...) -> str: ...


def quote_plus(string: str, safe: _Str = ..., encoding: Optional[str] = ..., errors: Optional[str] = ...) -> str: ...


def unquote(string: str, encoding: str = ..., errors: str = ...) -> str: ...


def unquote_plus(string: str, encoding: str = ..., errors: str = ...) -> str: ...


    query: Union[Mapping[Any, Any], Mapping[Any, Sequence[Any]], Sequence[Tuple[Any, Any]], Sequence[Tuple[Any, Sequence[Any]]]],


def urljoin(base: AnyStr, url: Optional[AnyStr], allow_fragments: bool = ...) -> AnyStr: ...


def urlparse(url: str, scheme: Optional[str] = ..., allow_fragments: bool = ...) -> ParseResult: ...


def urlparse(url: Optional[bytes], scheme: Optional[bytes] = ..., allow_fragments: bool = ...) -> ParseResultBytes: ...


def urlsplit(url: str, scheme: Optional[str] = ..., allow_fragments: bool = ...) -> SplitResult: ...


def urlsplit(url: Optional[bytes], scheme: Optional[bytes] = ..., allow_fragments: bool = ...) -> SplitResultBytes: ...


    components: Tuple[Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr]]


def urlunparse(components: Sequence[Optional[AnyStr]]) -> AnyStr: ...


    components: Tuple[Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr]]


def urlunsplit(components: Sequence[Optional[AnyStr]]) -> AnyStr: ...