```ts
/**
 * An append-only log of timestamped events.
 */
export interface Event {
  name: string;
  timestamp: number;
}

/** An append-only log of timestamped events. */
export class EventLog {
  private #events = [];

  /** 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[] {
    throw new Error('useEventLogSinceWithArray', `since should be called with an array type`);
  }
}
```