```ts
/**
 * An append-only log of timestamped events.
 */
export class EventLog implements EventLogInterface {}
interface EventLogInterface {
  #events: Event[];
  record(event: Event): void;
  since(timestamp: number): Event[];
}

/** Append one event. */
record(event: Event): void {
  this.#events.push(event);
}

/** Every event at or after the given timestamp, in insertion order. */
since(timestamp: number): Event[] {
  return this.#events.filter((event) => event.timestamp >= timestamp);
}
```