import type { DateTime } from "luxon"; import { SeismogramDisplayData, Seismogram } from "./seismogram.mjs"; import { SeismographConfig } from "./seismographconfig.mjs"; export declare const SORT_BY = "sort"; export declare class SeisPlotElement extends HTMLElement { _seisDataList: Array; _seismographConfig: SeismographConfig; onRedraw: (el: SeisPlotElement) => void; _throttleRedraw: ReturnType | null; _sorting: Map number | string | DateTime>; constructor(seisData?: SeismogramDisplayData | Array, seisConfig?: SeismographConfig); get seisData(): Array; set seisData(seisData: Array); removeAllSeisData(): void; /** * appends the seismogram(s) or SeismogramDisplayData as separate time series. * * @param seismogram data to append */ appendSeisData(sddList: Array | SeismogramDisplayData | Array | Seismogram): void; get seismographConfig(): SeismographConfig; set seismographConfig(seismographConfig: SeismographConfig); setSeisDataAndConfig(seisData: Array, seismographConfig: SeismographConfig): void; /** * The sorting type to optionally sort the data by. New sort types may be * added by supplying a key and function that takes an SeismogramDisplayData * and returns a number, string or date. Sort of data is done using the * calculated value for each waveform. This is stored as an attribute on * the element, so changing the attribute has the same effect. * Default is SORT_NONE = "none". * @return sorting key */ get sortby(): string; set sortby(val: string); addSortingFunction(key: string, sddFunction: (sdd: SeismogramDisplayData) => number | string | DateTime): void; getSortingFunction(key: string): (sdd: SeismogramDisplayData) => number | string | DateTime; /** * Sorts seisData by the this.sortby sorting type. * @return this.seisData sorted */ sortedSeisData(): SeismogramDisplayData[]; addStyle(css: string, id?: string): HTMLStyleElement; /** * Notification to the element that something about the current seismogram * data has changed. This could be that the actual waveform data has been updated * or that auxillary data like quake or channel has been added or that the * configuration has changed. This should trigger a redraw. */ seisDataUpdated(): void; connectedCallback(): void; /** * Redraw the element. This implements a throttle so that many redraws * are coelsced into a single actual draw if they occur before the * next animation frame. */ redraw(): void; /** * Draw the element, overridden by subclasses. Generally outside callers * should prefer calling redraw() as it handles throttling and calls the * onRedraw callback. */ draw(): void; getShadowRoot(autoAdd?: boolean): ShadowRoot; static get observedAttributes(): string[]; } export declare function addStyleToElement(element: HTMLElement, css: string, id?: string): HTMLStyleElement; //# sourceMappingURL=spelement.d.mts.map