import type { FileLoadMeta } from '../io'; import { type ParseProgress, type TrajectorySource } from '../trajectory'; import type { ParseResult, TrajectoryLoadOptions } from './parse'; export interface MaterialPayload extends Partial { data: TrajectorySource; filename: string; is_base64?: boolean; } export type MaterialSource = string | URL | File | MaterialPayload; export interface MaterialProvenance extends FileLoadMeta { filename: string; file_size: number; } export type OpenedMaterial = ParseResult & { provenance: Readonly; dispose: () => void; }; export interface OpenMaterialOptions extends TrajectoryLoadOptions { signal?: AbortSignal; on_progress?: (progress: ParseProgress) => void; on_acquired?: (payload: MaterialPayload) => void; } export declare class MaterialOpenError extends Error { readonly stage: `acquire` | `parse`; readonly provenance: Partial; constructor(message: string, stage: `acquire` | `parse`, provenance: Partial, options?: ErrorOptions); } export declare const source_provenance: (source: MaterialSource) => Partial; export declare const acquire_material: (source: MaterialSource, signal?: AbortSignal) => Promise; export declare function open_material(source: MaterialSource, options?: OpenMaterialOptions): Promise;