export type FeedStatus = "loading" | "idle" | "error" | "posting" | "refreshing";

export interface Point {
  lat: number;
  lng: number;
}

export interface Signal {
  id: string;
  signalLocation: Point;
  createdAt: string;
  userKey: string;
}

export interface SignalDensityCell {
  lat: number;
  lng: number;
  intensity: number;
}

export interface Snapshot {
  clientKey?: string;
  points: Signal[];
  density: SignalDensityCell[];
  latestByUser: Signal[];
  totals: {
    points: number;
    contributors: number;
  };
  updatedAt: string;
}

export interface SnapshotEventPayload {
  type: "snapshot";
  payload: Snapshot;
}
