import { FFTResult } from "./fft.mjs"; import { SeismographConfig } from "./seismographconfig.mjs"; import { SeismogramDisplayData } from "./seismogram.mjs"; import { Complex } from "./oregondsputil.mjs"; export declare const SPECTRA_ELEMENT = "sp-spectra"; /** * Similar to FFTResult, but used for plotting non-fft generated data. * This allows the frequencies to be, for example, evenly distrubuted * in log instead of linearly for plotting PolesZeros stages. */ export declare class FreqAmp { freq: Float32Array; values: Array>; /** optional units of the original data for display purposes. */ inputUnits: string; seismogramDisplayData: null | SeismogramDisplayData; constructor(freq: Float32Array, values: Array>); frequencies(): Float32Array; amplitudes(): Float32Array; phases(): Float32Array; get numFrequencies(): number; get minFrequency(): number; get maxFrequency(): number; get fundamentalFrequency(): number; } /** * Defualt CSS for styling fft plots. */ export declare const spectra_plot_css = "\n:host {\n display: block\n}\n\ndiv.wrapper {\n height: 100%;\n min-height: 100px;\n}\npath.fftpath {\n stroke: skyblue;\n fill: none;\n stroke-width: 1px;\n}\n\nsvg.spectra_plot {\n height: 100%;\n width: 100%;\n min-height: 100px;\n display: block;\n}\nsvg.spectra_plot text.title {\n font-size: larger;\n font-weight: bold;\n fill: black;\n color: black;\n}\n\nsvg.spectra_plot text.sublabel {\n font-size: smaller;\n}\n\n/* links in svg */\nsvg.spectra_plot text a {\n fill: #0000EE;\n text-decoration: underline;\n}\n\n"; export declare const AMPLITUDE = "amplitude"; export declare const PHASE = "phase"; export declare const LOGFREQ = "logfreq"; export declare const KIND = "kind"; /** * A amplitude or phase plot of fft data. The 'kind' attribute controls whether * 'amplitude' or 'phase' is plotted and the 'logfreq' attribute controls * whether frequency, x axis, is linear or log. * Setting the seismogramConfig changes * the plot configuration, althought not all values are used. * The data as an array of FFTResult or FreqAmp * sets the data to be plotted. * Amplitude is plotted with y axis log, phase is y axis linear. * */ export declare class SpectraPlot extends HTMLElement { _seismographConfig: SeismographConfig; _fftResults: Array; constructor(fftResults?: Array, seismographConfig?: SeismographConfig); get fftResults(): Array; set fftResults(fftResults: Array); get seismographConfig(): SeismographConfig; set seismographConfig(seismographConfig: SeismographConfig); get kind(): string; set kind(val: string); get logfreq(): boolean; set logfreq(val: boolean); connectedCallback(): void; static get observedAttributes(): string[]; attributeChangedCallback(_name: string, _oldValue: string, _newValue: string): void; draw(): void; } //# sourceMappingURL=spectraplot.d.mts.map