geonet
Version:
A Node.js API wrapper for GeoNet — Aotearoa's geological hazard monitoring system.
91 lines (90 loc) • 4.91 kB
TypeScript
import { IntensityService } from "./services/IntensityService";
import { IntensityRequestUnion, IntensityResponse } from "../@types/intensity";
import { StrongService } from "./services/StrongService";
import { StrongResponse } from "../@types/strong";
import { NewsService } from "./services/NewsService";
import { NewsFeedResponse } from "../@types/news";
import { QuakeService } from "./services/QuakeService";
import { QuakeHistoryResponse, QuakeResponse, QuakesResponse, QuakeStatsResponse } from "../@types/quake";
import { VolcanoService } from "./services/VolcanoService";
import { VolcanoAlertLevelResponse, VolcanoID, VolcanoQuakeResponse } from "../@types/volcano";
import { NetworkService } from "./services/NetworkService";
import { NetworkFDSNStationRequest, NetworkFDSNStationResponse, NetworkGNSStationResponse, NetworkSensorRequest, NetworkSensorResponse } from "../@types/network";
import { Geometry, MMI } from "../@types/common";
import { QuakeMapUtil } from "./utils/QuakeMapUtil";
/**
* Main class for interacting with the GeoNet API and related utilities.
* Provides access to all GeoNet services through a unified interface.
*
* @remarks
* This class acts as a central interface for all GeoNet API services and related utilities, thus providing a simplified
* way for accessing earthquake, volcano, network data, among others, from GeoNet.
*
* @example
* ```typescript
* import { GeoNet } from "geonet";
* const geonet = new GeoNet();
*
* // Get recent earthquakes
* const quakes = await geonet.getQuakes(...);
* ```
*
* @see {@link https://api.geonet.org.nz} GeoNet API Documentation.
* @see {@link IntensityService} For intensity-related methods.
* @see {@link StrongService} For strong motion-related methods.
* @see {@link NewsService} For news-related methods.
* @see {@link QuakeService} For quake-related methods.
* @see {@link VolcanoService} For volcano-related methods.
* @see {@link NetworkService} For network-related methods.
* @see {@link QuakeMapUtil} For generating GeoNet quake map URLs.
*
* @since 1.0.0
*/
export declare class GeoNet {
private readonly intensityService;
private readonly strongService;
private readonly newsService;
private readonly quakeService;
private readonly volcanoService;
private readonly networkService;
private readonly quakeMapUtil;
/**
* Creates a new instance of the GeoNet client.
*
* @param {IntensityService} intensityService - Service for intensity data.
* @param {StrongService} strongService - Service for strong motion data.
* @param {NewsService} newsService - Service for news feed data.
* @param {QuakeService} quakeService - Service for earthquake data.
* @param {VolcanoService} volcanoService - Service for volcanic activity data.
* @param {NetworkService} networkService - Service for network sensor data.
*/
constructor(intensityService?: IntensityService, strongService?: StrongService, newsService?: NewsService, quakeService?: QuakeService, volcanoService?: VolcanoService, networkService?: NetworkService, quakeMapUtil?: QuakeMapUtil);
/** @inheritdoc {@link IntensityService.getIntensity} */
getIntensity(req: IntensityRequestUnion): Promise<IntensityResponse>;
/** @inheritdoc {@link StrongService.getStrong} */
getStrong(publicID: string): Promise<StrongResponse>;
/** @inheritdoc {@link NewsService.getNews} */
getNews(page?: number): Promise<NewsFeedResponse>;
/** @inheritdoc {@link QuakeService.getQuake} */
getQuake(publicID: string): Promise<QuakeResponse>;
/** @inheritdoc {@link QuakeService.getQuakeHistory} */
getQuakeHistory(publicID: string): Promise<QuakeHistoryResponse>;
/** @inheritdoc {@link QuakeService.getQuakeStats} */
getQuakeStats(): Promise<QuakeStatsResponse>;
/** @inheritdoc {@link QuakeService.getQuakes} */
getQuakes(mmi: MMI): Promise<QuakesResponse>;
/** @inheritdoc {@link VolcanoService.getVolcanoAlertLevel} */
getVolcanoAlertLevel(): Promise<VolcanoAlertLevelResponse>;
/** @inheritdoc {@link VolcanoService.getVolcanoQuakes} */
getVolcanoQuakes(volcanoID: VolcanoID): Promise<VolcanoQuakeResponse>;
/** @inheritdoc {@link NetworkService.getNetworkSensor} */
getNetworkSensor(req: NetworkSensorRequest): Promise<NetworkSensorResponse>;
/** @inheritdoc {@link NetworkService.getNetworkGNSSDetails} */
getNetworkGNSSDetails(code: string): Promise<NetworkGNSStationResponse>;
/** @inheritdoc {@link NetworkService.getNetworkFDSNDetails} */
getNetworkFDSNDetails(req: NetworkFDSNStationRequest): Promise<NetworkFDSNStationResponse>;
/** @inheritdoc {@link QuakeMapUtil.generateMapURL} */
generateMapURL(coordinates: Geometry["coordinates"], mmi: MMI): string;
/** @inheritdoc {@link QuakeMapUtil.generateColourCode} */
generateColourCode(mmi: MMI): string;
}