import {Response} from '../../nshmp-ws-utils'; import { EnumParameter, EnumParameterValues, } from '../../nshmp-ws-utils/metadata'; /** * Marker interface for gmm usage from nshmp-ws. */ export type GmmSpectraUsage = Response<string, GmmSpectraUsageResponse>; /** * Marker interface for gmm/distance and gmm/hw-fw usage. */ export type GmmDistanceUsage = Response<string, GmmDistanceUsageResponse>; /** * Marker interface for gmm/distance and gmm/hw-fw usage. */ export type GmmMagnitudeUsage = Response<string, GmmMagnitudeUsageResponse>; export enum GmmType { ACTIVE_CRUST = 'ACTIVE_CRUST', STABLE_CRUST = 'STABLE_CRUST', SUBDUCTION_INTERFACE = 'SUBDUCTION_INTERFACE', SUBDUCTION_SLAB = 'SUBDUCTION_SLAB', } export enum GmmGroupType { ALL = 'ALL', ACTIVE_CRUST = 'ACTIVE_CRUST', STABLE_CRUST = 'STABLE_CRUST', SUBDUCTION_INTERFACE = 'SUBDUCTION_INTERFACE', SUBDUCTION_SLAB = 'SUBDUCTION_SLAB', VOLCANIC = 'VOLCANIC', PUERTO_RICO = 'PUERTO_RICO', } /** * Gmm usage response in Response object. */ export interface GmmUsageResponse { description: string; syntax: string; parameters: GmmUsageParameters; } /** * Gmm vs distance usage response in Response object. */ export interface GmmSpectraUsageResponse extends GmmUsageResponse { parameters: GmmSpectraUsageParameters; } /** * Gmm vs distance usage response in Response object. */ export interface GmmDistanceUsageResponse extends GmmUsageResponse { parameters: GmmDistanceUsageParameters; } /** * Gmm vs magnitude usage response in Response object. */ export interface GmmMagnitudeUsageResponse extends GmmUsageResponse { parameters: GmmMagnitudeUsageParameters; } /** * gmm parameter. */ export interface GmmParameter { label: string; info: string; values: GmmValue[]; } /** * gmm value. */ export interface GmmValue { id: string; label: string; supportedImts: string[]; type: GmmType; } /** * gmm group parameters. */ export interface GmmGroupParameter { label: string; info: string; values: GmmGroupValue[]; } /** * gmm group values. */ export interface GmmGroupValue { id: string; label: string; data: string[]; type: GmmGroupType; } /** * gmm usage parameter. */ export interface GmmUsageParameter { label: string; info: string; units?: string; min?: number; max?: number; value: number | boolean; } /** * gmm usage parameters. */ export interface GmmUsageParameters { Mw: GmmUsageParameter; dip: GmmUsageParameter; width: GmmUsageParameter; zTor: GmmUsageParameter; zHyp: GmmUsageParameter; rake: GmmUsageParameter; vs30: GmmUsageParameter; z1p0: GmmUsageParameter; z2p5: GmmUsageParameter; zSed: GmmUsageParameter; gmm: GmmParameter; group: GmmGroupParameter; } /** * gmm/spectra usage parameters. */ export interface GmmSpectraUsageParameters extends GmmUsageParameters { rJB: GmmUsageParameter; rRup: GmmUsageParameter; rX: GmmUsageParameter; } /** * gmm/distance usage parameters. */ export interface GmmDistanceUsageParameters extends GmmUsageParameters { imt: EnumParameter<EnumParameterValues>; rMin: GmmUsageParameter; rMax: GmmUsageParameter; } /** * gmm/magnitude usage parameters. */ export interface GmmMagnitudeUsageParameters extends GmmUsageParameters { imt: EnumParameter<EnumParameterValues>; mMin: GmmUsageParameter; mMax: GmmUsageParameter; distance: GmmUsageParameter; step: GmmUsageParameter; }