#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(
extends = "AudioNode",
extends = "EventTarget",
extends = "::js_sys::Object",
js_name = "PannerNode",
typescript_type = "PannerNode"
)]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `PannerNode` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub type PannerNode;
#[cfg(feature = "PanningModelType")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "panningModel")]
#[doc = "Getter for the `panningModel` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/panningModel)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`, `PanningModelType`*"]
pub fn panning_model(this: &PannerNode) -> PanningModelType;
#[cfg(feature = "PanningModelType")]
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "panningModel")]
#[doc = "Setter for the `panningModel` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/panningModel)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`, `PanningModelType`*"]
pub fn set_panning_model(this: &PannerNode, value: PanningModelType);
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "positionX")]
#[doc = "Getter for the `positionX` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/positionX)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn position_x(this: &PannerNode) -> AudioParam;
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "positionY")]
#[doc = "Getter for the `positionY` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/positionY)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn position_y(this: &PannerNode) -> AudioParam;
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "positionZ")]
#[doc = "Getter for the `positionZ` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/positionZ)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn position_z(this: &PannerNode) -> AudioParam;
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "orientationX")]
#[doc = "Getter for the `orientationX` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/orientationX)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn orientation_x(this: &PannerNode) -> AudioParam;
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "orientationY")]
#[doc = "Getter for the `orientationY` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/orientationY)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn orientation_y(this: &PannerNode) -> AudioParam;
#[cfg(feature = "AudioParam")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "orientationZ")]
#[doc = "Getter for the `orientationZ` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/orientationZ)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `AudioParam`, `PannerNode`*"]
pub fn orientation_z(this: &PannerNode) -> AudioParam;
#[cfg(feature = "DistanceModelType")]
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "distanceModel")]
#[doc = "Getter for the `distanceModel` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DistanceModelType`, `PannerNode`*"]
pub fn distance_model(this: &PannerNode) -> DistanceModelType;
#[cfg(feature = "DistanceModelType")]
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "distanceModel")]
#[doc = "Setter for the `distanceModel` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DistanceModelType`, `PannerNode`*"]
pub fn set_distance_model(this: &PannerNode, value: DistanceModelType);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "refDistance")]
#[doc = "Getter for the `refDistance` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn ref_distance(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "refDistance")]
#[doc = "Setter for the `refDistance` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_ref_distance(this: &PannerNode, value: f64);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "maxDistance")]
#[doc = "Getter for the `maxDistance` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn max_distance(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "maxDistance")]
#[doc = "Setter for the `maxDistance` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_max_distance(this: &PannerNode, value: f64);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "rolloffFactor")]
#[doc = "Getter for the `rolloffFactor` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn rolloff_factor(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "rolloffFactor")]
#[doc = "Setter for the `rolloffFactor` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_rolloff_factor(this: &PannerNode, value: f64);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "coneInnerAngle")]
#[doc = "Getter for the `coneInnerAngle` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneInnerAngle)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn cone_inner_angle(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "coneInnerAngle")]
#[doc = "Setter for the `coneInnerAngle` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneInnerAngle)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_cone_inner_angle(this: &PannerNode, value: f64);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "coneOuterAngle")]
#[doc = "Getter for the `coneOuterAngle` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneOuterAngle)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn cone_outer_angle(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "coneOuterAngle")]
#[doc = "Setter for the `coneOuterAngle` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneOuterAngle)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_cone_outer_angle(this: &PannerNode, value: f64);
#[wasm_bindgen(method, getter, js_class = "PannerNode", js_name = "coneOuterGain")]
#[doc = "Getter for the `coneOuterGain` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneOuterGain)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn cone_outer_gain(this: &PannerNode) -> f64;
#[wasm_bindgen(method, setter, js_class = "PannerNode", js_name = "coneOuterGain")]
#[doc = "Setter for the `coneOuterGain` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/coneOuterGain)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_cone_outer_gain(this: &PannerNode, value: f64);
#[cfg(feature = "BaseAudioContext")]
#[wasm_bindgen(catch, constructor, js_class = "PannerNode")]
#[doc = "The `new PannerNode(..)` constructor, creating a new instance of `PannerNode`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/PannerNode)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `BaseAudioContext`, `PannerNode`*"]
pub fn new(context: &BaseAudioContext) -> Result<PannerNode, JsValue>;
#[cfg(all(feature = "BaseAudioContext", feature = "PannerOptions",))]
#[wasm_bindgen(catch, constructor, js_class = "PannerNode")]
#[doc = "The `new PannerNode(..)` constructor, creating a new instance of `PannerNode`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/PannerNode)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `BaseAudioContext`, `PannerNode`, `PannerOptions`*"]
pub fn new_with_options(
context: &BaseAudioContext,
options: &PannerOptions,
) -> Result<PannerNode, JsValue>;
#[wasm_bindgen(method, js_class = "PannerNode", js_name = "setOrientation")]
#[doc = "The `setOrientation()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/setOrientation)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_orientation(this: &PannerNode, x: f64, y: f64, z: f64);
#[wasm_bindgen(method, js_class = "PannerNode", js_name = "setPosition")]
#[doc = "The `setPosition()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/setPosition)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_position(this: &PannerNode, x: f64, y: f64, z: f64);
#[wasm_bindgen(method, js_class = "PannerNode", js_name = "setVelocity")]
#[doc = "The `setVelocity()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/setVelocity)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `PannerNode`*"]
pub fn set_velocity(this: &PannerNode, x: f64, y: f64, z: f64);
}