use js_sys::{Array, Error, JsString, Number, Promise};
use wasm_bindgen::prelude::*;
#[wasm_bindgen(module = "@actions/tool-cache")]
extern {
#[wasm_bindgen(extends = Error)]
pub type HTTPError;
#[wasm_bindgen(method, getter, js_name = "httpStatusCode")]
pub fn http_status_code(this: &HTTPError) -> Option<Number>;
#[wasm_bindgen(constructor)]
pub fn new(http_status_code: Option<&Number>) -> HTTPError;
}
#[wasm_bindgen(module = "@actions/tool-cache")]
extern {
#[wasm_bindgen(js_name = "downloadTool")]
#[must_use] pub fn download_tool(url: &JsString) -> Promise;
#[wasm_bindgen(js_name = "extract7z")]
#[must_use] pub fn extract_7z(file: &JsString, dest: Option<&JsString>, _7z_path: Option<&JsString>) -> Promise;
#[wasm_bindgen(js_name = "extractTar")]
#[must_use] pub fn extract_tar(file: &JsString, dest: Option<&JsString>, flags: Option<&JsString>) -> Promise;
#[wasm_bindgen(js_name = "extractZip")]
#[must_use] pub fn extract_zip(file: &JsString, dest: Option<&JsString>) -> Promise;
#[wasm_bindgen(js_name = "cacheDir")]
#[must_use] pub fn cache_dir(source: &JsString, tool: &JsString, version: &JsString, arch: Option<&JsString>) -> Promise;
#[wasm_bindgen(js_name = "cacheFile")]
#[must_use] pub fn cache_file(
source: &JsString,
target: &JsString,
tool: &JsString,
version: &JsString,
arch: Option<&JsString>,
) -> Promise;
#[wasm_bindgen]
pub fn find(tool: &JsString, version: &JsString, arch: Option<&JsString>) -> String;
#[wasm_bindgen(js_name = "findAllVersions")]
pub fn find_all_versions(tool: &JsString, arch: Option<&JsString>) -> Array;
}