import { DateTime, Duration, Interval } from "luxon"; import { DataLinkPacket } from "./datalink.mjs"; import type { SequencedDataRecord } from "./seedlink.mjs"; import { SEPacket } from "./seedlink4.mjs"; import { OrganizedDisplay } from "./organizeddisplay.mjs"; import { AlignmentLinkedTimeScale } from "./scale.mjs"; import { SeismogramDisplayData } from "./seismogram.mjs"; import { SeisPlotElement } from "./spelement.mjs"; import { SeismographConfig } from "./seismographconfig.mjs"; import { Network } from "./stationxml.mjs"; export declare class AnimatedTimeScaler { alignmentTime: DateTime; timeScale: AlignmentLinkedTimeScale; minRedrawMillis?: number; _calcRedrawMillis?: number; goAnimation: boolean; previousStep: DOMHighResTimeStamp; _animationId: number; constructor(timeScale: AlignmentLinkedTimeScale, alignmentTime?: DateTime, minRedrawMillis?: number); animate(): void; animateOnce(): void; pause(): void; stepper(timestamp: DOMHighResTimeStamp): void; step(): void; } export declare class RTDisplayContainer { rawSeisData: Array; organizedDisplay: OrganizedDisplay; animationScaler: AnimatedTimeScaler; packetHandler: (packet: DataLinkPacket | SEPacket | SequencedDataRecord) => void; config: RTConfig; resizeObserver: ResizeObserver; constructor(rawSeisData: Array, organizedDisplay: OrganizedDisplay, animationScaler: AnimatedTimeScaler, packetHandler: (packet: DataLinkPacket | SEPacket | SequencedDataRecord) => void, config: RTConfig); recalculateRedrawTime(): Promise; removeAllSeisData(): void; } export type RTConfig = { duration: Duration; alignmentTime: DateTime; offset: Duration; minRedrawMillis?: number; networkList: Array; removeTrend: boolean; seismographConfig?: SeismographConfig; }; /** * Validates the object for typescript and adds any missing required * fields. Passing in an empty object is allowed. * @param configObj config object * @returns true if object has correct structure, with defaults populated */ export declare function isValidRTConfig(configObj: unknown): configObj is RTConfig; export declare function createRealtimeDisplay(config: unknown): RTDisplayContainer; export declare function internalCreateRealtimeDisplay(config: RTConfig): RTDisplayContainer; /** * Trims all seismograms to the given window in place. This should not * cause a redraw. * * @param orgDisplay OrganizedDisplay to trim * @param timeRange time window to coarse trim the data to */ export declare function trim(orgDisplay: OrganizedDisplay, timeRange: Interval): void; /** * Calculates the duration covered by one pixel on the time axis. This is the optimal * time interval for updating the animation of a real time display as updates more * frequently than this tend to cause more flikering than actual movement of the seismogram. * @param seismograph the seismograph to get pixel size from * @returns the pixel width as a Duration */ export declare function calcOnePixelDuration(seismograph: SeisPlotElement): Duration; //# sourceMappingURL=animatedseismograph.d.mts.map