export interface Meta {
  num_particles: number;
  num_steps: number;
  num_blocks: number;
  block_size: number;
  seed_names: string[];
  origins: number[];
  release_steps?: number[];
  /** ISO datetime of first step (from NetCDF time axis). */
  time_start?: string;
  /** ISO datetime of last step (from NetCDF time axis). */
  time_end?: string;
  /** Hours per step (e.g. 1 = one sample per hour). */
  dt_hours?: number;
}

export type Frame = number[][];
export type Accum = number[][];

export interface Block {
  block: number;
  step_start: number;
  step_end: number;
  frames: Frame[];
  accumulation: Accum[];
}

export interface PointDatum {
  position: [number, number];
  beached: boolean;
  speed: number;
  id: number;
}

export interface TrailDatum {
  path: [number, number][];
  beached: boolean;
  id: number;
}

/** For TripsLayer: path [lon, lat, timeSec], timestamps strictly increasing. */
export interface TripDatum {
  path: [number, number, number][];
  beached: boolean;
  id: number;
}
