import { FDSNCommon } from "./fdsncommon.mjs"; import { Station, Channel } from "./stationxml.mjs"; import { Quake } from "./quakeml.mjs"; export declare const TEXT_FORMAT = "text"; export declare const JSON_FORMAT = "json"; export declare const SVG_FORMAT = "svg"; /** const for service name */ export declare const TRAVELTIME_SERVICE = "traveltime"; /** * Type for json returned by iris traveltime web service * */ export type TraveltimeJsonType = { model: string; sourcedepth: number; receiverdepth: number; phases: Array; arrivals: Array; }; export type TraveltimeArrivalType = { distdeg: number; phase: string; time: number; rayparam: number; takeoff: number; incident: number; puristdist: number; puristname: string; }; /** * Verifies that JSON matches the types we expect, for typescript. * * @param v JSON object, usually from the traveltime web service * @returns true if matches expected structure */ export declare function isValidTraveltimeJsonType(v: unknown): v is TraveltimeJsonType; export declare function isValidTraveltimeArrivalType(v: unknown): v is TraveltimeArrivalType; /** * converts a text line from the text format into an * TraveltimeArrivalType object like what is returned by the json format. * * @param ttimeline travel time output line for an arrival * @returns parsed travel time arrival */ export declare function convertTravelTimeLineToObject(ttimeline: string): TraveltimeArrivalType; /** * Creates a fake arrival for the origin time, useful to display a flag * at origin time similar to the P and S arrival. * @param distdeg earthquake to station distance, in degrees * @returns an arrival for the origin */ export declare function createOriginArrival(distdeg: number): TraveltimeArrivalType; /** * Query to the IRIS traveltime webservice, based on the TauP Toolkit. See * https://service.iris.edu/irisws/traveltime/1/ and * https://www.seis.sc.edu/TauP/ * * @param host optional host to connect to, defaults to IRIS */ export declare class TraveltimeQuery extends FDSNCommon { /** @private */ _evdepth: number; /** @private */ _distdeg: Array | undefined; /** @private */ _model: string | undefined; /** @private */ _phases: string | undefined; /** @private */ _stalat: number | undefined; /** @private */ _stalon: number | undefined; /** @private */ _receiverdepth: number | undefined; /** @private */ _evlat: number | undefined; /** @private */ _evlon: number | undefined; /** @private */ _format: string; /** @private */ _noheader: boolean; constructor(host?: string | null); protocol(value?: string): TraveltimeQuery; getProtocol(): string | undefined; host(value?: string): TraveltimeQuery; getHost(): string; /** * Gets/Sets the remote port to connect to. * * @param value optional new value if setting * @returns new value if getting, this if setting */ port(value?: number): TraveltimeQuery; getPort(): number | undefined; pathBase(value?: string): TraveltimeQuery; getPathBase(): string; /** * Gets/Sets the nodata parameter, usually 404 or 204 (default), controlling * the status code when no matching data is found by the service. * * @param value optional new value if setting * @returns new value if getting, this if setting */ nodata(value?: number): TraveltimeQuery; getNodata(): number | undefined; specVersion(value?: string): TraveltimeQuery; getSpecVersion(): string | undefined; evdepth(value?: number): TraveltimeQuery; evdepthInMeter(value?: number): TraveltimeQuery; getEvdepth(): number | undefined; distdeg(value?: number | Array): TraveltimeQuery; getDistdeg(): Array | undefined; model(value?: string): TraveltimeQuery; getModel(): string | undefined; phases(value?: string): TraveltimeQuery; getPhases(): string | undefined; stalat(value?: number): TraveltimeQuery; getStalat(): number | undefined; stalon(value?: number): TraveltimeQuery; getStalon(): number | undefined; latLonFromStation(station: Station): TraveltimeQuery; receiverdepth(value?: number): TraveltimeQuery; receiverdepthInMeter(value?: number): TraveltimeQuery; receiverdepthFromChannel(channel: Channel): TraveltimeQuery; getReceiverdepth(): number | undefined; evlat(value?: number): TraveltimeQuery; getEvlat(): number | undefined; evlon(value?: number): TraveltimeQuery; getEvlon(): number | undefined; latLonFromQuake(quake: Quake): TraveltimeQuery; format(value?: string): TraveltimeQuery; getFormat(): string | undefined; noheader(value?: boolean): TraveltimeQuery; getNoheader(): boolean | undefined; /** * Get/Set the timeout in seconds for the request. Default is 30. * * @param value optional new value if setting * @returns new value if getting, this if setting */ timeout(value?: number): TraveltimeQuery; getTimeout(): number | undefined; queryVersion(): Promise; formVersionURL(): string; queryText(): Promise; queryJson(): Promise; querySvg(): Promise; queryWadl(): Promise; query(): Promise; /** * Forms the basic URL to contact the web service, without any query paramters * * @returns the url */ formBaseURL(): string; formURL(): string; queryTauPVersion(): Promise; formTauPVersionURL(): string; formWadlURL(): string; } export declare const FAKE_EMPTY_TEXT_MODEL = "Model: "; export declare const FAKE_EMPTY_TEXT_HEADERS = "\nDistance Depth Phase Travel Ray Param Takeoff Incident Purist Purist\n (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name\n-----------------------------------------------------------------------------------\n"; export declare function createEmptyTraveltimeJson(ttquery: TraveltimeQuery): TraveltimeJsonType; export declare const FAKE_EMPTY_SVG = "\n\n\n\n \n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"; //# sourceMappingURL=traveltime.d.mts.map