import type { WindowType } from '../fft'; import type { TrajectoryPositionStream } from '../trajectory'; import type { VACF_FREQUENCY_UNITS } from './calc-vacf'; export { compute_vacf_async } from './async-compute.svelte'; export * from './calc-vacf'; export * from './collect'; export { default as TrajectoryVacfPane } from './TrajectoryVacfPane.svelte'; export { default as VacfPlot } from './VacfPlot.svelte'; export type VacfInput = TrajectoryPositionStream & { velocities?: Float64Array | null; velocity_unit?: string | null; }; export type VelocitySource = `stored` | `central_difference`; export type VacfFrequencyUnit = (typeof VACF_FREQUENCY_UNITS)[number]; export interface VacfOptions { dt?: number; time_unit?: string; max_lag_fraction?: number; max_lags?: number; velocity_source?: VelocitySource | `auto`; vdos?: { window?: WindowType; frequency_unit?: VacfFrequencyUnit; }; } export interface VacfCurve { label: string; n_atoms: number; vacf: number[]; vacf_normalized: number[]; n_origins: number[]; vdos: number[]; peak_frequency: number; } export interface VacfResult { lags: number[]; times: number[]; curves: VacfCurve[]; dt: number; time_unit: string; x_label: string; frequencies: number[]; frequency_unit: VacfFrequencyUnit; frequency_label: string; window: WindowType; n_fft: number; velocity_source: VelocitySource; velocity_unit: string; n_frames: number; n_atoms: number; unwrapped: boolean; frame_stride: number; }