from typing import Any

from ..util import memoized_property

class URL:
    def __new__(cls, *arg, **kw): ...
    @classmethod
    def create(
        cls,
        drivername,
        username: Any | None = ...,
        password: Any | None = ...,
        host: Any | None = ...,
        port: Any | None = ...,
        database: Any | None = ...,
        query=...,
    ): ...
    def set(
        self,
        drivername: Any | None = ...,
        username: Any | None = ...,
        password: Any | None = ...,
        host: Any | None = ...,
        port: Any | None = ...,
        database: Any | None = ...,
        query: Any | None = ...,
    ): ...
    def update_query_string(self, query_string, append: bool = ...): ...
    def update_query_pairs(self, key_value_pairs, append: bool = ...): ...
    def update_query_dict(self, query_parameters, append: bool = ...): ...
    def difference_update_query(self, names): ...
    @memoized_property
    def normalized_query(self): ...
    def __to_string__(self, hide_password: bool = ...): ...
    def render_as_string(self, hide_password: bool = ...): ...
    def __copy__(self): ...
    def __deepcopy__(self, memo): ...
    def __hash__(self): ...
    def __eq__(self, other): ...
    def __ne__(self, other): ...
    def get_backend_name(self): ...
    def get_driver_name(self): ...
    def get_dialect(self): ...
    def translate_connect_args(self, names: Any | None = ..., **kw): ...

def make_url(name_or_url): ...
