[eslint] Prefer TypeScript `interface` over type aliases.

We have a mix of `type` and `interface` usage throughout our codebase,
that is sometimes difficult to follow and reason about. We should follow
the suggestion from the TypeScript PM and use `interface` consistently
where possible. This leads to better type display in errors and makes
our codebase easier to read (b/c consistency).

This CL adds the `@typescript-eslint/consistent-type-definitions`
ESLint rule to accomplish this.

Fixed: 387237537
Change-Id: Idb9e8275ddd8f633021d6cf1c933e2e55f980e45
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6152576
Auto-Submit: Nikolay Vitkov <[email protected]>
Commit-Queue: Benedikt Meurer <[email protected]>
Reviewed-by: Benedikt Meurer <[email protected]>
diff --git a/front_end/ui/components/data_grid/DataGridUtils.ts b/front_end/ui/components/data_grid/DataGridUtils.ts
index 827f9b1..47c9ec3 100644
--- a/front_end/ui/components/data_grid/DataGridUtils.ts
+++ b/front_end/ui/components/data_grid/DataGridUtils.ts
@@ -61,11 +61,11 @@
       .toLowerCase();
 }
 
-export type Row = {
-  cells: Cell[],
-  hidden?: boolean,
-  styles?: CSSStylesObject,
-};
+export interface Row {
+  cells: Cell[];
+  hidden?: boolean;
+  styles?: CSSStylesObject;
+}
 
 export const enum SortDirection {
   ASC = 'ASC',
diff --git a/front_end/ui/components/dialogs/Dialog.ts b/front_end/ui/components/dialogs/Dialog.ts
index e3728a0..1ac6310 100644
--- a/front_end/ui/components/dialogs/Dialog.ts
+++ b/front_end/ui/components/dialogs/Dialog.ts
@@ -719,9 +719,9 @@
   AUTO = 'auto',
 }
 
-type AnchorBounds = {
-  top: number,
-  bottom: number,
-  left: number,
-  right: number,
-};
+interface AnchorBounds {
+  top: number;
+  bottom: number;
+  left: number;
+  right: number;
+}
diff --git a/front_end/ui/components/diff_view/DiffView.ts b/front_end/ui/components/diff_view/DiffView.ts
index 5a1774a..46428e5 100644
--- a/front_end/ui/components/diff_view/DiffView.ts
+++ b/front_end/ui/components/diff_view/DiffView.ts
@@ -261,10 +261,10 @@
   }
 }
 
-export type DiffViewData = {
-  diff: Diff.Diff.DiffArray,
-  mimeType: string,
-};
+export interface DiffViewData {
+  diff: Diff.Diff.DiffArray;
+  mimeType: string;
+}
 
 export class DiffView extends HTMLElement {
 
diff --git a/front_end/ui/components/docs/performance_panel/track_example.ts b/front_end/ui/components/docs/performance_panel/track_example.ts
index 1f224d0..6a84279 100644
--- a/front_end/ui/components/docs/performance_panel/track_example.ts
+++ b/front_end/ui/components/docs/performance_panel/track_example.ts
@@ -41,11 +41,11 @@
 // Expand the track by default for test.
 await renderContent(expanded === 'false' ? false : true);
 
-type FlameChartData = {
-  flameChart: PerfUI.FlameChart.FlameChart,
+interface FlameChartData {
+  flameChart: PerfUI.FlameChart.FlameChart;
   dataProvider: Timeline.TimelineFlameChartDataProvider.TimelineFlameChartDataProvider|
-              Timeline.TimelineFlameChartNetworkDataProvider.TimelineFlameChartNetworkDataProvider,
-};
+      Timeline.TimelineFlameChartNetworkDataProvider.TimelineFlameChartNetworkDataProvider;
+}
 
 async function renderContent(expanded: boolean) {
   if (darkMode) {
diff --git a/front_end/ui/components/markdown_view/MarkdownView.test.ts b/front_end/ui/components/markdown_view/MarkdownView.test.ts
index e886564..80e9a58 100644
--- a/front_end/ui/components/markdown_view/MarkdownView.test.ts
+++ b/front_end/ui/components/markdown_view/MarkdownView.test.ts
@@ -11,14 +11,14 @@
 
 const {html} = LitHtml;
 
-type TestToken = {
-  type: string,
-  tokens?: Marked.Marked.Token[],
-  text?: string,
-  href?: string,
-  items?: Object[],
-  depth?: number,
-};
+interface TestToken {
+  type: string;
+  tokens?: Marked.Marked.Token[];
+  text?: string;
+  href?: string;
+  items?: Object[];
+  depth?: number;
+}
 
 function getFakeToken(token: TestToken): Marked.Marked.Token {
   return token as unknown as Marked.Marked.Token;
diff --git a/front_end/ui/components/srgb_overlay/SrgbOverlay.ts b/front_end/ui/components/srgb_overlay/SrgbOverlay.ts
index d38d402..e51526c 100644
--- a/front_end/ui/components/srgb_overlay/SrgbOverlay.ts
+++ b/front_end/ui/components/srgb_overlay/SrgbOverlay.ts
@@ -10,12 +10,12 @@
 
 const {html} = LitHtml;
 
-type SrgbOverlayProps = {
+interface SrgbOverlayProps {
   // [0 - 1] corresponding to HSV hue
-  hue: number,
-  width: number,
-  height: number,
-};
+  hue: number;
+  width: number;
+  height: number;
+}
 
 const SRGB_LABEL_HEIGHT = 10;
 const SRGB_LABEL_BOTTOM = 3;
diff --git a/front_end/ui/legacy/ARIAUtils.ts b/front_end/ui/legacy/ARIAUtils.ts
index f2a7bc4..1bcd313 100644
--- a/front_end/ui/legacy/ARIAUtils.ts
+++ b/front_end/ui/legacy/ARIAUtils.ts
@@ -376,11 +376,11 @@
   element.style.overflow = 'hidden';
 }
 
-type AlertState = {
-  one: HTMLDivElement,
-  two: HTMLDivElement,
-  alertToggle: boolean,
-};
+interface AlertState {
+  one: HTMLDivElement;
+  two: HTMLDivElement;
+  alertToggle: boolean;
+}
 const alertElements = new WeakMap<HTMLElement, AlertState>();
 
 function createAlertElement(container: HTMLElement): HTMLDivElement {
diff --git a/front_end/ui/legacy/ActionRegistration.ts b/front_end/ui/legacy/ActionRegistration.ts
index 2fd9779..9e15a72 100644
--- a/front_end/ui/legacy/ActionRegistration.ts
+++ b/front_end/ui/legacy/ActionRegistration.ts
@@ -295,10 +295,10 @@
   TOGGLED = 'Toggled',
 }
 
-export type EventTypes = {
-  [Events.ENABLED]: boolean,
-  [Events.TOGGLED]: boolean,
-};
+export interface EventTypes {
+  [Events.ENABLED]: boolean;
+  [Events.TOGGLED]: boolean;
+}
 
 export const enum ActionCategory {
   NONE = '',  // `NONE` must be a falsy value. Legacy code uses if-checks for the category.
diff --git a/front_end/ui/legacy/Context.ts b/front_end/ui/legacy/Context.ts
index c66a441..b138b21 100644
--- a/front_end/ui/legacy/Context.ts
+++ b/front_end/ui/legacy/Context.ts
@@ -101,10 +101,10 @@
   FLAVOR_CHANGED = 'FlavorChanged',
 }
 
-export type EventTypes = {
+export interface EventTypes {
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  [Events.FLAVOR_CHANGED]: any,
-};
+  [Events.FLAVOR_CHANGED]: any;
+}
 
 const registeredListeners: ContextFlavorListenerRegistration[] = [];
 
diff --git a/front_end/ui/legacy/Dialog.ts b/front_end/ui/legacy/Dialog.ts
index 358790f..a443e02 100644
--- a/front_end/ui/legacy/Dialog.ts
+++ b/front_end/ui/legacy/Dialog.ts
@@ -216,9 +216,9 @@
   HIDDEN = 'hidden',
 }
 
-export type EventTypes = {
-  [Events.HIDDEN]: void,
-};
+export interface EventTypes {
+  [Events.HIDDEN]: void;
+}
 
 export const enum OutsideTabIndexBehavior {
   DISABLE_ALL_OUTSIDE_TAB_INDEX = 'DisableAllTabIndex',
diff --git a/front_end/ui/legacy/DockController.ts b/front_end/ui/legacy/DockController.ts
index e56e250..f3a6936 100644
--- a/front_end/ui/legacy/DockController.ts
+++ b/front_end/ui/legacy/DockController.ts
@@ -236,11 +236,11 @@
   to: DockState;
 }
 
-export type EventTypes = {
-  [Events.BEFORE_DOCK_SIDE_CHANGED]: ChangeEvent,
-  [Events.DOCK_SIDE_CHANGED]: ChangeEvent,
-  [Events.AFTER_DOCK_SIDE_CHANGED]: ChangeEvent,
-};
+export interface EventTypes {
+  [Events.BEFORE_DOCK_SIDE_CHANGED]: ChangeEvent;
+  [Events.DOCK_SIDE_CHANGED]: ChangeEvent;
+  [Events.AFTER_DOCK_SIDE_CHANGED]: ChangeEvent;
+}
 
 export class ToggleDockActionDelegate implements ActionDelegate {
   handleAction(_context: Context, _actionId: string): boolean {
diff --git a/front_end/ui/legacy/FilterBar.ts b/front_end/ui/legacy/FilterBar.ts
index 4750e72..ba06dad 100644
--- a/front_end/ui/legacy/FilterBar.ts
+++ b/front_end/ui/legacy/FilterBar.ts
@@ -192,9 +192,9 @@
   CHANGED = 'Changed',
 }
 
-export type FilterBarEventTypes = {
-  [FilterBarEvents.CHANGED]: void,
-};
+export interface FilterBarEventTypes {
+  [FilterBarEvents.CHANGED]: void;
+}
 
 export interface FilterUI extends Common.EventTarget.EventTarget<FilterUIEventTypes> {
   isActive(): boolean;
@@ -205,9 +205,9 @@
   FILTER_CHANGED = 'FilterChanged',
 }
 
-export type FilterUIEventTypes = {
-  [FilterUIEvents.FILTER_CHANGED]: void,
-};
+export interface FilterUIEventTypes {
+  [FilterUIEvents.FILTER_CHANGED]: void;
+}
 
 export class TextFilterUI extends Common.ObjectWrapper.ObjectWrapper<FilterUIEventTypes> implements FilterUI {
   private readonly filterElement: HTMLDivElement;
diff --git a/front_end/ui/legacy/ListModel.ts b/front_end/ui/legacy/ListModel.ts
index adda907..b01aad9 100644
--- a/front_end/ui/legacy/ListModel.ts
+++ b/front_end/ui/legacy/ListModel.ts
@@ -117,6 +117,6 @@
   keepSelectedIndex?: boolean;
 }
 
-export type EventTypes<T> = {
-  [Events.ITEMS_REPLACED]: ItemsReplacedEvent<T>,
-};
+export interface EventTypes<T> {
+  [Events.ITEMS_REPLACED]: ItemsReplacedEvent<T>;
+}
diff --git a/front_end/ui/legacy/ResizerWidget.ts b/front_end/ui/legacy/ResizerWidget.ts
index 5cbd1ce..84654c1 100644
--- a/front_end/ui/legacy/ResizerWidget.ts
+++ b/front_end/ui/legacy/ResizerWidget.ts
@@ -155,12 +155,12 @@
   shiftKey: boolean;
 }
 
-export type EventTypes = {
-  [Events.RESIZE_START]: ResizeStartXYEvent|ResizeStartPositionEvent,
-  [Events.RESIZE_UPDATE_XY]: ResizeUpdateXYEvent,
-  [Events.RESIZE_UPDATE_POSITION]: ResizeUpdatePositionEvent,
-  [Events.RESIZE_END]: void,
-};
+export interface EventTypes {
+  [Events.RESIZE_START]: ResizeStartXYEvent|ResizeStartPositionEvent;
+  [Events.RESIZE_UPDATE_XY]: ResizeUpdateXYEvent;
+  [Events.RESIZE_UPDATE_POSITION]: ResizeUpdatePositionEvent;
+  [Events.RESIZE_END]: void;
+}
 
 export class SimpleResizerWidget extends ResizerWidget {
   private isVerticalInternal: boolean;
diff --git a/front_end/ui/legacy/SplitWidget.ts b/front_end/ui/legacy/SplitWidget.ts
index 5473273..9c59513 100644
--- a/front_end/ui/legacy/SplitWidget.ts
+++ b/front_end/ui/legacy/SplitWidget.ts
@@ -957,10 +957,10 @@
   SHOW_MODE_CHANGED = 'ShowModeChanged',
 }
 
-export type EventTypes = {
-  [Events.SIDEBAR_SIZE_CHANGED]: number,
-  [Events.SHOW_MODE_CHANGED]: string,
-};
+export interface EventTypes {
+  [Events.SIDEBAR_SIZE_CHANGED]: number;
+  [Events.SHOW_MODE_CHANGED]: string;
+}
 
 const MinPadding = 20;
 export interface SettingForOrientation {
diff --git a/front_end/ui/legacy/TabbedPane.ts b/front_end/ui/legacy/TabbedPane.ts
index 94c6224..b22ab7a 100644
--- a/front_end/ui/legacy/TabbedPane.ts
+++ b/front_end/ui/legacy/TabbedPane.ts
@@ -1022,12 +1022,12 @@
   /* eslint-enable @typescript-eslint/naming-convention */
 }
 
-export type EventTypes = {
-  [Events.TabInvoked]: EventData,
-  [Events.TabSelected]: EventData,
-  [Events.TabClosed]: EventData,
-  [Events.TabOrderChanged]: EventData,
-};
+export interface EventTypes {
+  [Events.TabInvoked]: EventData;
+  [Events.TabSelected]: EventData;
+  [Events.TabClosed]: EventData;
+  [Events.TabOrderChanged]: EventData;
+}
 
 export class TabbedPaneTab {
   closeable: boolean;
diff --git a/front_end/ui/legacy/TextPrompt.ts b/front_end/ui/legacy/TextPrompt.ts
index 73e03f3..8d381b4 100644
--- a/front_end/ui/legacy/TextPrompt.ts
+++ b/front_end/ui/legacy/TextPrompt.ts
@@ -808,6 +808,6 @@
   TEXT_CHANGED = 'TextChanged',
 }
 
-export type EventTypes = {
-  [Events.TEXT_CHANGED]: void,
-};
+export interface EventTypes {
+  [Events.TEXT_CHANGED]: void;
+}
diff --git a/front_end/ui/legacy/Toolbar.ts b/front_end/ui/legacy/Toolbar.ts
index 1168ce2..d52f245 100644
--- a/front_end/ui/legacy/Toolbar.ts
+++ b/front_end/ui/legacy/Toolbar.ts
@@ -525,9 +525,9 @@
   COMPACT_LAYOUT_UPDATED = 'CompactLayoutUpdated',
 }
 
-type ToolbarItemWithCompactLayoutEventTypes = {
-  [ToolbarItemWithCompactLayoutEvents.COMPACT_LAYOUT_UPDATED]: boolean,
-};
+interface ToolbarItemWithCompactLayoutEventTypes {
+  [ToolbarItemWithCompactLayoutEvents.COMPACT_LAYOUT_UPDATED]: boolean;
+}
 
 export class ToolbarItemWithCompactLayout extends ToolbarItem<ToolbarItemWithCompactLayoutEventTypes> {
   constructor(element: Element) {
@@ -783,10 +783,10 @@
     MOUSE_DOWN = 'MouseDown',
   }
 
-  export type EventTypes = {
-    [Events.CLICK]: Event,
-    [Events.MOUSE_DOWN]: MouseEvent,
-  };
+  export interface EventTypes {
+    [Events.CLICK]: Event;
+    [Events.MOUSE_DOWN]: MouseEvent;
+  }
 }
 
 export class ToolbarInput extends ToolbarItem<ToolbarInput.EventTypes> {
diff --git a/front_end/ui/legacy/Treeoutline.ts b/front_end/ui/legacy/Treeoutline.ts
index 18b7c6b..c6a6b47 100644
--- a/front_end/ui/legacy/Treeoutline.ts
+++ b/front_end/ui/legacy/Treeoutline.ts
@@ -64,13 +64,13 @@
   /* eslint-enable @typescript-eslint/naming-convention */
 }
 
-export type EventTypes = {
-  [Events.ElementAttached]: TreeElement,
-  [Events.ElementsDetached]: void,
-  [Events.ElementExpanded]: TreeElement,
-  [Events.ElementCollapsed]: TreeElement,
-  [Events.ElementSelected]: TreeElement,
-};
+export interface EventTypes {
+  [Events.ElementAttached]: TreeElement;
+  [Events.ElementsDetached]: void;
+  [Events.ElementExpanded]: TreeElement;
+  [Events.ElementCollapsed]: TreeElement;
+  [Events.ElementSelected]: TreeElement;
+}
 
 export class TreeOutline extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
   readonly rootElementInternal: TreeElement;
diff --git a/front_end/ui/legacy/Widget.ts b/front_end/ui/legacy/Widget.ts
index b6237c4..625c587 100644
--- a/front_end/ui/legacy/Widget.ts
+++ b/front_end/ui/legacy/Widget.ts
@@ -71,9 +71,9 @@
 
 customElements.define('devtools-widget', WidgetElement);
 
-type Constructor<T, Args extends unknown[]> = {
-  new (...args: Args): T,
-};
+interface Constructor<T, Args extends unknown[]> {
+  new(...args: Args): T;
+}
 
 export function widgetRef<T extends Widget, Args extends unknown[]>(
     type: Constructor<T, Args>, callback: (_: T) => void): ReturnType<typeof LitHtml.Directives.ref> {
diff --git a/front_end/ui/legacy/ZoomManager.ts b/front_end/ui/legacy/ZoomManager.ts
index b6e2cf3..7dd12e8 100644
--- a/front_end/ui/legacy/ZoomManager.ts
+++ b/front_end/ui/legacy/ZoomManager.ts
@@ -70,6 +70,6 @@
   to: number;
 }
 
-export type EventTypes = {
-  [Events.ZOOM_CHANGED]: ZoomChangedEvent,
-};
+export interface EventTypes {
+  [Events.ZOOM_CHANGED]: ZoomChangedEvent;
+}
diff --git a/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts b/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts
index 8bffabd..5b459fc 100644
--- a/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts
+++ b/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts
@@ -21,14 +21,14 @@
 // represents one of the inputs.
 type Label = 'RGBA'|'HSLA'|'HWBA'|'lchA'|'labA'|'xyzA';
 
-type ColorFormatSpec = {
+interface ColorFormatSpec {
   // Label to be shown under the inputs
-  label: Label,
+  label: Label;
   // Values of the inputs
-  toValues(color: Common.Color.Color): [string, string, string, string],
+  toValues(color: Common.Color.Color): [string, string, string, string];
   // How to generate the number from the input values
-  fromValues(values: [string, string, string, string]): Common.Color.Color|null,
-};
+  fromValues(values: [string, string, string, string]): Common.Color.Color|null;
+}
 
 // p0, p1, p2, alpha
 // r, g, b, alpha
diff --git a/front_end/ui/legacy/components/color_picker/ContrastDetails.ts b/front_end/ui/legacy/components/color_picker/ContrastDetails.ts
index 836842d..c78e79f 100644
--- a/front_end/ui/legacy/components/color_picker/ContrastDetails.ts
+++ b/front_end/ui/legacy/components/color_picker/ContrastDetails.ts
@@ -472,9 +472,9 @@
   BACKGROUND_COLOR_PICKER_WILL_BE_TOGGLED = 'BackgroundColorPickerWillBeToggled',
 }
 
-export type EventTypes = {
-  [Events.BACKGROUND_COLOR_PICKER_WILL_BE_TOGGLED]: boolean,
-};
+export interface EventTypes {
+  [Events.BACKGROUND_COLOR_PICKER_WILL_BE_TOGGLED]: boolean;
+}
 
 export class Swatch {
   private readonly parentElement: Element;
diff --git a/front_end/ui/legacy/components/color_picker/ContrastInfo.ts b/front_end/ui/legacy/components/color_picker/ContrastInfo.ts
index 665b2b3..56ebb2c 100644
--- a/front_end/ui/legacy/components/color_picker/ContrastInfo.ts
+++ b/front_end/ui/legacy/components/color_picker/ContrastInfo.ts
@@ -129,9 +129,9 @@
   CONTRAST_INFO_UPDATED = 'ContrastInfoUpdated',
 }
 
-export type EventTypes = {
-  [Events.CONTRAST_INFO_UPDATED]: void,
-};
+export interface EventTypes {
+  [Events.CONTRAST_INFO_UPDATED]: void;
+}
 
 export interface ContrastInfoType {
   backgroundColors: string[]|null;
diff --git a/front_end/ui/legacy/components/color_picker/Spectrum.ts b/front_end/ui/legacy/components/color_picker/Spectrum.ts
index fb9e286..70e5810 100644
--- a/front_end/ui/legacy/components/color_picker/Spectrum.ts
+++ b/front_end/ui/legacy/components/color_picker/Spectrum.ts
@@ -1435,10 +1435,10 @@
   SIZE_CHANGED = 'SizeChanged',
 }
 
-export type EventTypes = {
-  [Events.COLOR_CHANGED]: string,
-  [Events.SIZE_CHANGED]: void,
-};
+export interface EventTypes {
+  [Events.COLOR_CHANGED]: string;
+  [Events.SIZE_CHANGED]: void;
+}
 
 const COLOR_CHIP_SIZE = 24;
 const ITEMS_PER_PALETTE_ROW = 8;
diff --git a/front_end/ui/legacy/components/data_grid/DataGrid.ts b/front_end/ui/legacy/components/data_grid/DataGrid.ts
index 24f6b09..ecf1a00 100644
--- a/front_end/ui/legacy/components/data_grid/DataGrid.ts
+++ b/front_end/ui/legacy/components/data_grid/DataGrid.ts
@@ -1602,13 +1602,13 @@
   PADDING_CHANGED = 'PaddingChanged',
 }
 
-export type EventTypes<T> = {
-  [Events.SELECTED_NODE]: DataGridNode<T>,
-  [Events.DESELECTED_NODE]: void,
-  [Events.OPENED_NODE]: DataGridNode<T>,
-  [Events.SORTING_CHANGED]: void,
-  [Events.PADDING_CHANGED]: void,
-};
+export interface EventTypes<T> {
+  [Events.SELECTED_NODE]: DataGridNode<T>;
+  [Events.DESELECTED_NODE]: void;
+  [Events.OPENED_NODE]: DataGridNode<T>;
+  [Events.SORTING_CHANGED]: void;
+  [Events.PADDING_CHANGED]: void;
+}
 
 export enum Order {
   /* eslint-disable @typescript-eslint/naming-convention -- Used by web_tests. */
@@ -1636,9 +1636,9 @@
   LAST = 'last',
 }
 
-export type DataGridData = {
-  [key: string]: any,
-};
+export interface DataGridData {
+  [key: string]: any;
+}
 
 export class DataGridNode<T> {
   elementInternal: HTMLElement|null;
diff --git a/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts b/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts
index 5e6bac5..463fbf4 100644
--- a/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts
+++ b/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts
@@ -252,9 +252,9 @@
   VIEWPORT_CALCULATED = 'ViewportCalculated',
 }
 
-export type EventTypes = {
-  [Events.VIEWPORT_CALCULATED]: void,
-};
+export interface EventTypes {
+  [Events.VIEWPORT_CALCULATED]: void;
+}
 
 export class ViewportDataGridNode<T> extends DataGridNode<ViewportDataGridNode<T>> {
   private stale: boolean;
diff --git a/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts b/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts
index 1eb6c50..3fd794f 100644
--- a/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts
+++ b/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts
@@ -12,11 +12,11 @@
 
 const DOUBLE_CLICK_DELAY = 500;
 
-type Params = {
-  container: Element,
-  bezier: UI.Geometry.CubicBezier,
-  onBezierChange: (bezier: UI.Geometry.CubicBezier) => void,
-};
+interface Params {
+  container: Element;
+  bezier: UI.Geometry.CubicBezier;
+  onBezierChange: (bezier: UI.Geometry.CubicBezier) => void;
+}
 
 class BezierCurveUI {
   #curveUI: BezierUI;
@@ -94,16 +94,16 @@
   }
 }
 
-type LinearEasingPresentationParams = {
-  width: number,
-  height: number,
-  marginTop: number,
-  pointRadius: number,
-};
-type Position = {
-  x: number,
-  y: number,
-};
+interface LinearEasingPresentationParams {
+  width: number;
+  height: number;
+  marginTop: number;
+  pointRadius: number;
+}
+interface Position {
+  x: number;
+  y: number;
+}
 class LinearEasingPresentation {
   params: LinearEasingPresentationParams;
   renderedPositions?: Position[];
diff --git a/front_end/ui/legacy/components/inline_editor/BezierEditor.ts b/front_end/ui/legacy/components/inline_editor/BezierEditor.ts
index 249bf72..28ccc88 100644
--- a/front_end/ui/legacy/components/inline_editor/BezierEditor.ts
+++ b/front_end/ui/legacy/components/inline_editor/BezierEditor.ts
@@ -231,9 +231,9 @@
   BEZIER_CHANGED = 'BezierChanged',
 }
 
-export type EventTypes = {
-  [Events.BEZIER_CHANGED]: string,
-};
+export interface EventTypes {
+  [Events.BEZIER_CHANGED]: string;
+}
 
 export const Presets = [
   [
diff --git a/front_end/ui/legacy/components/inline_editor/CSSLength.ts b/front_end/ui/legacy/components/inline_editor/CSSLength.ts
index 25f5782..62afef3 100644
--- a/front_end/ui/legacy/components/inline_editor/CSSLength.ts
+++ b/front_end/ui/legacy/components/inline_editor/CSSLength.ts
@@ -52,9 +52,9 @@
 export const CSS_LENGTH_REGEX =
     new RegExp(`(?<value>[+-]?\\d*\\.?\\d+([Ee][+-]?\\d+)?)(?<unit>${Object.values(CSSLengthUnit).join('|')})`);
 
-type CSSLengthData = {
-  lengthText: string,
-};
+interface CSSLengthData {
+  lengthText: string;
+}
 
 export class CSSLength extends HTMLElement {
 
diff --git a/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts b/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts
index 732c495..9a9f492 100644
--- a/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts
+++ b/front_end/ui/legacy/components/inline_editor/CSSLinearEasingModel.ts
@@ -6,16 +6,16 @@
 
 const cssParser = CodeMirror.css.cssLanguage.parser;
 
-export type Point = {
-  input: number,
-  output: number,
-};
+export interface Point {
+  input: number;
+  output: number;
+}
 
-type LinearStop = {
-  number: number,
-  lengthA?: number,
-  lengthB?: number,
-};
+interface LinearStop {
+  number: number;
+  lengthA?: number;
+  lengthB?: number;
+}
 
 const numberFormatter = new Intl.NumberFormat('en', {
   maximumFractionDigits: 2,
diff --git a/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts b/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts
index 5781ef6..488299d 100644
--- a/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts
+++ b/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts
@@ -491,6 +491,6 @@
   SHADOW_CHANGED = 'ShadowChanged',
 }
 
-export type EventTypes = {
-  [Events.SHADOW_CHANGED]: CSSShadowModel,
-};
+export interface EventTypes {
+  [Events.SHADOW_CHANGED]: CSSShadowModel;
+}
diff --git a/front_end/ui/legacy/components/inline_editor/FontEditor.ts b/front_end/ui/legacy/components/inline_editor/FontEditor.ts
index 86cd769..a43abaf 100644
--- a/front_end/ui/legacy/components/inline_editor/FontEditor.ts
+++ b/front_end/ui/legacy/components/inline_editor/FontEditor.ts
@@ -443,10 +443,10 @@
   value: string;
 }
 
-export type EventTypes = {
-  [Events.FONT_CHANGED]: FontChangedEvent,
-  [Events.FONT_EDITOR_RESIZED]: void,
-};
+export interface EventTypes {
+  [Events.FONT_CHANGED]: FontChangedEvent;
+  [Events.FONT_EDITOR_RESIZED]: void;
+}
 
 class FontPropertyInputs {
   private showSliderMode: boolean;
diff --git a/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts b/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts
index e30f8a0..0783d80 100644
--- a/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts
+++ b/front_end/ui/legacy/components/inline_editor/SwatchPopoverHelper.ts
@@ -153,6 +153,6 @@
   WILL_SHOW_POPOVER = 'WillShowPopover',
 }
 
-export type EventTypes = {
-  [Events.WILL_SHOW_POPOVER]: void,
-};
+export interface EventTypes {
+  [Events.WILL_SHOW_POPOVER]: void;
+}
diff --git a/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts b/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts
index 02eb58f..165ee07 100644
--- a/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts
+++ b/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts
@@ -22,11 +22,11 @@
 const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/perf_ui/BrickBreaker.ts', UIStrings);
 const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
 
-type Brick = {
-  x: number,
-  y: number,
-  width: number,
-};
+interface Brick {
+  x: number;
+  y: number;
+  width: number;
+}
 
 const MAX_DELTA = 16;
 const MIN_DELTA = 10;
diff --git a/front_end/ui/legacy/components/perf_ui/FilmStripView.ts b/front_end/ui/legacy/components/perf_ui/FilmStripView.ts
index 7be3ad5..73959eb 100644
--- a/front_end/ui/legacy/components/perf_ui/FilmStripView.ts
+++ b/front_end/ui/legacy/components/perf_ui/FilmStripView.ts
@@ -133,11 +133,11 @@
   FRAME_EXIT = 'FrameExit',
 }
 
-export type EventTypes = {
-  [Events.FRAME_SELECTED]: number,
-  [Events.FRAME_ENTER]: number,
-  [Events.FRAME_EXIT]: number,
-};
+export interface EventTypes {
+  [Events.FRAME_SELECTED]: number;
+  [Events.FRAME_ENTER]: number;
+  [Events.FRAME_EXIT]: number;
+}
 
 interface DialogParsedTrace {
   source: 'Trace';
diff --git a/front_end/ui/legacy/components/perf_ui/FlameChart.ts b/front_end/ui/legacy/components/perf_ui/FlameChart.ts
index 35a53e3..4e91d71 100644
--- a/front_end/ui/legacy/components/perf_ui/FlameChart.ts
+++ b/front_end/ui/legacy/components/perf_ui/FlameChart.ts
@@ -4269,20 +4269,20 @@
   MOUSE_MOVE = 'MouseMove',
 }
 
-export type EventTypes = {
+export interface EventTypes {
   [Events.ENTRY_LABEL_ANNOTATION_ADDED]: {
     entryIndex: number,
     withLinkCreationButton: boolean,
-  },
+  };
   [Events.ENTRIES_LINK_ANNOTATION_CREATED]: {
     entryFromIndex: number,
-  },
-  [Events.TRACKS_REORDER_STATE_CHANGED]: boolean,
-  [Events.CANVAS_FOCUSED]: number|void,
-  [Events.ENTRY_INVOKED]: number,
-  [Events.ENTRY_SELECTED]: number,
-  [Events.ENTRY_HOVERED]: number,
-  [Events.CHART_PLAYABLE_STATE_CHANGED]: boolean,
+  };
+  [Events.TRACKS_REORDER_STATE_CHANGED]: boolean;
+  [Events.CANVAS_FOCUSED]: number|void;
+  [Events.ENTRY_INVOKED]: number;
+  [Events.ENTRY_SELECTED]: number;
+  [Events.ENTRY_HOVERED]: number;
+  [Events.CHART_PLAYABLE_STATE_CHANGED]: boolean;
   [Events.LATEST_DRAW_DIMENSIONS]: {
     chart: {
       widthPixels: number,
@@ -4291,12 +4291,12 @@
       allGroupsCollapsed: boolean,
     },
     traceWindow: Trace.Types.Timing.TraceWindowMicroSeconds,
-  },
+  };
   [Events.MOUSE_MOVE]: {
     mouseEvent: MouseEvent,
     timeInMicroSeconds: Trace.Types.Timing.MicroSeconds,
-  },
-};
+  };
+}
 
 export interface Group {
   name: Common.UIString.LocalizedString;
diff --git a/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts b/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts
index feef296..3683232 100644
--- a/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts
+++ b/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts
@@ -708,11 +708,11 @@
   rawEndValue: number;
 }
 
-export type EventTypes = {
-  [Events.WINDOW_CHANGED]: void,
-  [Events.BREADCRUMB_ADDED]: WindowChangedWithPositionEvent,
-  [Events.WINDOW_CHANGED_WITH_POSITION]: WindowChangedWithPositionEvent,
-};
+export interface EventTypes {
+  [Events.WINDOW_CHANGED]: void;
+  [Events.BREADCRUMB_ADDED]: WindowChangedWithPositionEvent;
+  [Events.WINDOW_CHANGED_WITH_POSITION]: WindowChangedWithPositionEvent;
+}
 
 export class WindowSelector {
   private startPosition: number;
diff --git a/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts b/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts
index c5f0ee9..fc3be56 100644
--- a/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts
+++ b/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts
@@ -444,12 +444,12 @@
   timeInMicroSeconds: Trace.Types.Timing.MicroSeconds;
 }
 
-export type EventTypes = {
-  [Events.OVERVIEW_PANE_WINDOW_CHANGED]: OverviewPaneWindowChangedEvent,
-  [Events.OVERVIEW_PANE_BREADCRUMB_ADDED]: OverviewPaneBreadcrumbAddedEvent,
-  [Events.OVERVIEW_PANE_MOUSE_MOVE]: OverviewPaneMouseMoveEvent,
-  [Events.OVERVIEW_PANE_MOUSE_LEAVE]: void,
-};
+export interface EventTypes {
+  [Events.OVERVIEW_PANE_WINDOW_CHANGED]: OverviewPaneWindowChangedEvent;
+  [Events.OVERVIEW_PANE_BREADCRUMB_ADDED]: OverviewPaneBreadcrumbAddedEvent;
+  [Events.OVERVIEW_PANE_MOUSE_MOVE]: OverviewPaneMouseMoveEvent;
+  [Events.OVERVIEW_PANE_MOUSE_LEAVE]: void;
+}
 
 export interface TimelineOverview {
   show(parentElement: Element, insertBefore?: Element|null): void;
diff --git a/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts b/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts
index 5217374..6b2b517 100644
--- a/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts
+++ b/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts
@@ -590,9 +590,9 @@
   HIDDEN = 'hidden',
 }
 
-export type EventTypes = {
-  [Events.HIDDEN]: void,
-};
+export interface EventTypes {
+  [Events.HIDDEN]: void;
+}
 
 export class Provider {
   private refreshCallback!: () => void;
diff --git a/front_end/ui/legacy/components/source_frame/SourceFrame.ts b/front_end/ui/legacy/components/source_frame/SourceFrame.ts
index ed27ea6..74ac315 100644
--- a/front_end/ui/legacy/components/source_frame/SourceFrame.ts
+++ b/front_end/ui/legacy/components/source_frame/SourceFrame.ts
@@ -136,10 +136,10 @@
   EDITOR_SCROLL = 'EditorScroll',
 }
 
-export type EventTypes = {
-  [Events.EDITOR_UPDATE]: CodeMirror.ViewUpdate,
-  [Events.EDITOR_SCROLL]: void,
-};
+export interface EventTypes {
+  [Events.EDITOR_UPDATE]: CodeMirror.ViewUpdate;
+  [Events.EDITOR_SCROLL]: void;
+}
 
 type FormatFn = (lineNo: number, state: CodeMirror.EditorState) => string;
 export const LINE_NUMBER_FORMATTER = CodeMirror.Facet.define<FormatFn, FormatFn>({
diff --git a/front_end/ui/legacy/components/utils/Linkifier.ts b/front_end/ui/legacy/components/utils/Linkifier.ts
index 5c417d6..4988ac9 100644
--- a/front_end/ui/legacy/components/utils/Linkifier.ts
+++ b/front_end/ui/legacy/components/utils/Linkifier.ts
@@ -843,9 +843,9 @@
     LINK_ICON_CHANGED = 'LinkIconChanged',
   }
 
-  export type EventTypes = {
-    [Events.LINK_ICON_CHANGED]: Workspace.UISourceCode.UISourceCode,
-  };
+  export interface EventTypes {
+    [Events.LINK_ICON_CHANGED]: Workspace.UISourceCode.UISourceCode;
+  }
 }
 
 export class LinkContextMenuProvider implements UI.ContextMenu.Provider<Node> {
@@ -1064,6 +1064,6 @@
   LIVE_LOCATION_UPDATED = 'liveLocationUpdated',
 }
 
-export type EventTypes = {
-  [Events.LIVE_LOCATION_UPDATED]: Bindings.LiveLocation.LiveLocation,
-};
+export interface EventTypes {
+  [Events.LIVE_LOCATION_UPDATED]: Bindings.LiveLocation.LiveLocation;
+}
diff --git a/front_end/ui/visual_logging/Debugging.ts b/front_end/ui/visual_logging/Debugging.ts
index bd0beb9..104cf78 100644
--- a/front_end/ui/visual_logging/Debugging.ts
+++ b/front_end/ui/visual_logging/Debugging.ts
@@ -167,21 +167,21 @@
   }
 }
 
-export type EventAttributes = {
-  context?: string,
-  width?: number,
-  height?: number,
-  mouseButton?: number,
-  doubleClick?: boolean,
-};
+export interface EventAttributes {
+  context?: string;
+  width?: number;
+  height?: number;
+  mouseButton?: number;
+  doubleClick?: boolean;
+}
 
-type VisualElementAttributes = {
-  ve: string,
-  veid: number,
-  context?: string,
-  width?: number,
-  height?: number,
-};
+interface VisualElementAttributes {
+  ve: string;
+  veid: number;
+  context?: string;
+  width?: number;
+  height?: number;
+}
 
 type IntuitiveLogEntry = {
   event?: EventType|'Impression'|'SessionStart',