#![allow(unused_imports)]
use super::*;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
    # [wasm_bindgen (is_type_of = | _ | false , extends = :: js_sys :: Object , js_name = EXT_disjoint_timer_query , typescript_type = "EXT_disjoint_timer_query")]
    #[derive(Debug, Clone, PartialEq, Eq)]
    #[doc = "The `ExtDisjointTimerQuery` class."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub type ExtDisjointTimerQuery;
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = beginQueryEXT)]
    #[doc = "The `beginQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/beginQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn begin_query_ext(this: &ExtDisjointTimerQuery, target: u32, query: &WebGlQuery);
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = createQueryEXT)]
    #[doc = "The `createQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/createQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn create_query_ext(this: &ExtDisjointTimerQuery) -> Option<WebGlQuery>;
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = deleteQueryEXT)]
    #[doc = "The `deleteQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/deleteQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn delete_query_ext(this: &ExtDisjointTimerQuery, query: Option<&WebGlQuery>);
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = endQueryEXT)]
    #[doc = "The `endQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/endQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub fn end_query_ext(this: &ExtDisjointTimerQuery, target: u32);
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = getQueryEXT)]
    #[doc = "The `getQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/getQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub fn get_query_ext(
        this: &ExtDisjointTimerQuery,
        target: u32,
        pname: u32,
    ) -> ::wasm_bindgen::JsValue;
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = getQueryObjectEXT)]
    #[doc = "The `getQueryObjectEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/getQueryObjectEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn get_query_object_ext(
        this: &ExtDisjointTimerQuery,
        query: &WebGlQuery,
        pname: u32,
    ) -> ::wasm_bindgen::JsValue;
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = isQueryEXT)]
    #[doc = "The `isQueryEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/isQueryEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn is_query_ext(this: &ExtDisjointTimerQuery, query: Option<&WebGlQuery>) -> bool;
    #[cfg(feature = "WebGlQuery")]
    # [wasm_bindgen (method , structural , js_class = "EXT_disjoint_timer_query" , js_name = queryCounterEXT)]
    #[doc = "The `queryCounterEXT()` method."]
    #[doc = ""]
    #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/EXT_disjoint_timer_query/queryCounterEXT)"]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`, `WebGlQuery`*"]
    pub fn query_counter_ext(this: &ExtDisjointTimerQuery, query: &WebGlQuery, target: u32);
}
impl ExtDisjointTimerQuery {
    #[doc = "The `EXT_disjoint_timer_query.QUERY_COUNTER_BITS_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const QUERY_COUNTER_BITS_EXT: u32 = 34916u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.CURRENT_QUERY_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const CURRENT_QUERY_EXT: u32 = 34917u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.QUERY_RESULT_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const QUERY_RESULT_EXT: u32 = 34918u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.QUERY_RESULT_AVAILABLE_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const QUERY_RESULT_AVAILABLE_EXT: u32 = 34919u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.TIME_ELAPSED_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const TIME_ELAPSED_EXT: u32 = 35007u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.TIMESTAMP_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const TIMESTAMP_EXT: u32 = 36392u64 as u32;
    #[doc = "The `EXT_disjoint_timer_query.GPU_DISJOINT_EXT` const."]
    #[doc = ""]
    #[doc = "*This API requires the following crate features to be activated: `ExtDisjointTimerQuery`*"]
    pub const GPU_DISJOINT_EXT: u32 = 36795u64 as u32;
}
