#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
    # [wasm_bindgen (extends = :: js_sys :: Object , js_name = URL , typescript_type = "URL")]
    #[derive(Debug, Clone, PartialEq, Eq)]
    #[doc = "The `Url` class."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub type Url;
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = href)]
    #[doc = "Getter for the `href` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/href)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn href(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = href)]
    #[doc = "Setter for the `href` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/href)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_href(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = origin)]
    #[doc = "Getter for the `origin` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/origin)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn origin(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = protocol)]
    #[doc = "Getter for the `protocol` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn protocol(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = protocol)]
    #[doc = "Setter for the `protocol` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/protocol)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_protocol(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = username)]
    #[doc = "Getter for the `username` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/username)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn username(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = username)]
    #[doc = "Setter for the `username` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/username)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_username(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = password)]
    #[doc = "Getter for the `password` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/password)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn password(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = password)]
    #[doc = "Setter for the `password` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/password)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_password(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = host)]
    #[doc = "Getter for the `host` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/host)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn host(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = host)]
    #[doc = "Setter for the `host` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/host)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_host(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = hostname)]
    #[doc = "Getter for the `hostname` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn hostname(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = hostname)]
    #[doc = "Setter for the `hostname` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/hostname)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_hostname(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = port)]
    #[doc = "Getter for the `port` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/port)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn port(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = port)]
    #[doc = "Setter for the `port` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/port)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_port(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = pathname)]
    #[doc = "Getter for the `pathname` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn pathname(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = pathname)]
    #[doc = "Setter for the `pathname` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/pathname)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_pathname(this: &Url, value: &str);
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = search)]
    #[doc = "Getter for the `search` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/search)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn search(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = search)]
    #[doc = "Setter for the `search` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/search)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_search(this: &Url, value: &str);
    #[cfg(feature = "UrlSearchParams")]
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = searchParams)]
    #[doc = "Getter for the `searchParams` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/searchParams)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`, `UrlSearchParams`*"]
    pub fn search_params(this: &Url) -> UrlSearchParams;
    # [wasm_bindgen (structural , method , getter , js_class = "URL" , js_name = hash)]
    #[doc = "Getter for the `hash` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn hash(this: &Url) -> ::alloc::string::String;
    # [wasm_bindgen (structural , method , setter , js_class = "URL" , js_name = hash)]
    #[doc = "Setter for the `hash` field of this object."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/hash)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn set_hash(this: &Url, value: &str);
    #[wasm_bindgen(catch, constructor, js_class = "URL")]
    #[doc = "The `new Url(..)` constructor, creating a new instance of `Url`."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/URL)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn new(url: &str) -> Result<Url, JsValue>;
    #[wasm_bindgen(catch, constructor, js_class = "URL")]
    #[doc = "The `new Url(..)` constructor, creating a new instance of `Url`."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/URL)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn new_with_base(url: &str, base: &str) -> Result<Url, JsValue>;
    #[cfg(feature = "Blob")]
    # [wasm_bindgen (catch , static_method_of = Url , js_class = "URL" , js_name = createObjectURL)]
    #[doc = "The `createObjectURL()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL_static)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Blob`, `Url`*"]
    pub fn create_object_url_with_blob(blob: &Blob) -> Result<::alloc::string::String, JsValue>;
    #[cfg(feature = "MediaSource")]
    # [wasm_bindgen (catch , static_method_of = Url , js_class = "URL" , js_name = createObjectURL)]
    #[doc = "The `createObjectURL()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL_static)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `MediaSource`, `Url`*"]
    pub fn create_object_url_with_source(
        source: &MediaSource,
    ) -> Result<::alloc::string::String, JsValue>;
    # [wasm_bindgen (catch , static_method_of = Url , js_class = "URL" , js_name = revokeObjectURL)]
    #[doc = "The `revokeObjectURL()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL_static)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn revoke_object_url(url: &str) -> Result<(), JsValue>;
    # [wasm_bindgen (method , structural , js_class = "URL" , js_name = toJSON)]
    #[doc = "The `toJSON()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/URL/toJSON)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `Url`*"]
    pub fn to_json(this: &Url) -> ::alloc::string::String;
}
