import type { ComponentProps } from 'svelte'; import type { AnyStructure } from '../structure/index'; import type Trajectory from './Trajectory.svelte'; export { default as Trajectory } from './Trajectory.svelte'; export { default as TrajectoryError } from './TrajectoryError.svelte'; export { default as TrajectoryExportPane } from './TrajectoryExportPane.svelte'; export { default as TrajectoryInfoPane } from './TrajectoryInfoPane.svelte'; export type TrajectoryFormat = `hdf5` | `json` | `xyz` | `xdatcar` | `traj` | `unknown`; export type { AtomTypeMapping } from './types'; export interface ParseProgress { current: number; total: number; stage: string; } export interface TrajectoryFrame { structure: AnyStructure; step: number; metadata?: Record; } export interface FrameIndex { frame_number: number; byte_offset: number; estimated_size: number; } export interface TrajectoryMetadata { frame_number: number; step: number; properties: Record; } export interface TrajectoryType { frames: TrajectoryFrame[]; metadata?: Record; total_frames?: number; indexed_frames?: FrameIndex[]; plot_metadata?: TrajectoryMetadata[]; is_indexed?: boolean; frame_loader?: FrameLoader; } export interface TrajHandlerData { trajectory?: TrajectoryType; step_idx?: number; frame_count?: number; frame?: TrajectoryFrame; filename?: string; file_size?: number; total_atoms?: number; error_msg?: string; fps?: number; mode?: ComponentProps[`display_mode`]; fullscreen?: boolean; } export type TrajectoryDataExtractor = (frame: TrajectoryFrame, trajectory: TrajectoryType) => Record; export interface FrameLoader { get_total_frames: (data: string | ArrayBuffer) => Promise; build_frame_index: (data: string | ArrayBuffer, sample_rate: number, on_progress?: (progress: ParseProgress) => void) => Promise; load_frame: (data: string | ArrayBuffer, frame_number: number) => Promise; extract_plot_metadata: (data: string | ArrayBuffer, options?: { sample_rate?: number; properties?: string[]; }, on_progress?: (progress: ParseProgress) => void) => Promise; } export declare function validate_trajectory(trajectory: TrajectoryType): string[]; export declare function get_trajectory_stats(trajectory: TrajectoryType): Record;