import type { TrajectoryFrame } from './index'; import type { TrajectoryRun } from './run'; export type TrajectoryFrameResolver = (frame_idx: number) => TrajectoryFrame | null | Promise; export declare function trajectory_export_basename(filename: string): string; export declare function poscar_frame_filename(filename: string, frame_idx: number, total_frames: number): string; export declare function trajectory_frame_to_extxyz_str(frame: TrajectoryFrame): string; export declare function serialize_extxyz_frame_range(start_frame: number, end_frame: number, resolve_frame: TrajectoryFrameResolver, on_progress?: (completed: number, total: number) => void): Promise; export declare function create_poscar_frame_range_zip(start_frame: number, end_frame: number, resolve_frame: TrajectoryFrameResolver, filename: string, total_frames: number, on_progress?: (completed: number, total: number) => void): Promise; export interface TrajectoryPropertyRow { frame: number; step: number; properties: Record; } export interface TrajectoryPropertyTable { start_frame: number; end_frame: number; source: `frames` | `properties`; rows: TrajectoryPropertyRow[]; } export declare function collect_frame_property_rows(start_frame: number, end_frame: number, resolve_frame: TrajectoryFrameResolver, run: TrajectoryRun, on_progress?: (completed: number, total: number) => void): Promise; export declare function frame_rows_to_csv({ rows }: TrajectoryPropertyTable): string; export declare function frame_rows_to_json(table: TrajectoryPropertyTable): string;