import type { Matrix3x3 } from '../../math'; import type { PositionStreamOptions, TrajectoryFrame, TrajectoryMetadata, TrajectoryPositionStream, TrajectoryRunSignal, TrajectorySignal } from '../index'; export type WarnFn = (message: string, error?: unknown) => void; export interface WarningCollector { warn: WarnFn; warn_once: (key: string, message: string) => void; readonly warnings: string[]; } export declare const create_warning_collector: () => WarningCollector; interface ParsedRunFacts { format: string; metadata: Record; time_step?: { value: number; unit: string; }; atom_masses?: number[]; } export interface ParsedTrajectory extends ParsedRunFacts { frames: TrajectoryFrame[]; signals?: Record; properties?: TrajectoryMetadata[]; } export interface LazyTrajectorySource extends ParsedRunFacts { frame_count: number; read_frame: (frame_idx: number) => TrajectoryFrame; properties: TrajectoryMetadata[]; collect_positions: (options: PositionStreamOptions) => TrajectoryPositionStream; signals?: Record; dispose?: () => void; } export declare const vasp_stress_metadata: (stress_kbar: Matrix3x3) => { stress: Matrix3x3; pressure: number; }; type VaspRunTags = { ibrion: number | null; potim: number | null; version?: string; }; export declare const vasp_run: (format: string, frames: TrajectoryFrame[], atom_masses: number[] | undefined, { ibrion, potim, version }: VaspRunTags) => ParsedTrajectory; export {};