/**
 * Flowtype definitions for visual-parts
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.21.0
 * @flow
 */

declare type ValueOf<T> = $Values<T>;
export type TypedEventConfig = {|
  onListenerUpdate?: () => void,
|};
declare export class TypedEvent<T> {
  constructor(config?: {|
    onListenerUpdate?: () => void,
  |}): this;
  +dispose: () => void;
  +on: (listener: (event: T) => void) => {|
    dispose: () => void,
  |};
  +once: (listener: (event: T) => void) => void;
  +off: (listener: (event: T) => void) => void;
  +emit: (event: T) => void;
  +hasOneOrMoreListener: () => boolean;
}
/**
 * Data Visualizer で扱う時刻（UNIXタイム）です。
 * 単位は秒で、小数秒部を含みます。
 *
 * e.g. `1604027947.123456`
 * -> `2020/10/30 12:19:07.123456 (JST)`
 */
export type Time = number;
/**
 * Data Visualizer で使用するフォント一覧です。
 */
export type FontFamilies = {|
  /**
   * アプトポッド製フォント Yotsuya Sans JP Light の FontFamily です。
   * <br/>
   * <br/>
   * @since Data Visualizer v3.7.0
   */
  yotsuyaSansJPLight: string,

  /**
   * アプトポッド製フォント Yotsuya Sans JP Regular の FontFamily です。
   * Data Visualizer の標準フォントです。
   * <br/>
   * <br/>
   * @since Data Visualizer v3.7.0
   */
  yotsuyaSansJPRegular: string,

  /**
   * アプトポッド製フォント Yotsuya Sans JP Medium の FontFamily です。
   * <br/>
   * <br/>
   * @since Data Visualizer v3.7.0
   */
  yotsuyaSansJPMedium: string,

  /**
   * AXIS ProN Light の FontFamily です。
   * <br/>
   * <br/>
   * @deprecated Data Visualizer v3.7.0 で非推奨になりました。代わりに `yotsuyaSansJPLight` を使用してください。当プロパティの値は `yotsuyaSansJPLight` と同じ値を参照します。
   */
  axisProNLight: string,

  /**
   * AXIS ProN Regular の FontFamily です。
   * <br/>
   * <br/>
   * @deprecated Data Visualizer v3.7.0 で非推奨になりました。代わりに `yotsuyaSansJPRegular` を使用してください。当プロパティの値は `yotsuyaSansJPRegular` と同じ値を参照します。
   */
  axisProNRegular: string,

  /**
   * AXIS ProN Medium の FontFamily です。
   * <br/>
   * <br/>
   * @deprecated Data Visualizer v3.7.0 で非推奨になりました。代わりに `yotsuyaSansJPMedium` を使用してください。当プロパティの値は `yotsuyaSansJPMedium` と同じ値を参照します。
   */
  axisProNMedium: string,

  /**
   * [Quantico](https://fonts.google.com/specimen/Quantico?preview.text_type=custom) Regular の FontFamily です。
   * エッジ名、計測値の単位、メモリの数値ラベルの表示に使用します。
   */
  quanticoRegular: string,

  /**
   * [Quantico](https://fonts.google.com/specimen/Quantico?preview.text_type=custom) Bold の FontFamily です。
   * エッジ名、計測値の単位、メモリの数値ラベルの表示に使用します。
   */
  quanticoBold: string,

  /**
   * [Oxygen Mono](https://fonts.google.com/specimen/Oxygen+Mono?preview.text_type=custom) Regular の FontFamily です。
   * 英数字の等幅フォント表示で使用します。
   */
  oxygenMonoRegular: string,

  /**
   * アプトポッド製フォント 7seg の FontFamily です。
   * 計測の数値表示で使用します。
   */
  apt7seg: string,

  /**
   * hoog0553 の FontFamily です。
   * 当フォントは非推奨で、今後は、 qutnticoRegular に置き換わる予定です。
   */
  hoog0553: string,

  /**
   * アプトポッド製フォント aptQ の FontFamily です。
   * 英数字のみサポートしています。
   */
  aptQRegular: string,
|};
/**
 * Data Visualizer の再生モードを表します。
 * [PLAYBACK_MODE](#playback-mode)のいずれかの値です。
 */
export type PlaybackMode = ValueOf<typeof PLAYBACK_MODE>;
/**
 * Data Visualizer の再生モードの値です。
 */
declare export var PLAYBACK_MODE: {|
  /**
   * Data Visualizer が LIVE 再生中です。
   */
  LIVE: "live",

  /**
   * Data Visualizer が Stored Data を再生中です。
   */
  STORED_DATA: "stored_data",
|};
/**
 * Data Visualizer の再生状態を表します。
 * [PLAYBACK_STATUS](#playback-status)のいずれかの値です。
 */
export type PlaybackStatus = ValueOf<typeof PLAYBACK_STATUS>;
/**
 * Data Visualizer の再生状態を表す値です。
 */
declare export var PLAYBACK_STATUS: {|
  /**
   * 再生中です。
   */
  PLAY: "play",

  /**
   * 一時停止中です。
   */
  PAUSE: "pause",

  /**
   * 停止しています。
   */
  STOP: "stop",
|};
/**
 * Data Visualizer が再生している時間範囲です。
 */
export type PlaybackTimeRange = {|
  /**
   * 時間範囲の始点
   */
  start: Time,

  /**
   * 時間範囲の終点
   */
  end: Time,
|};
/**
 * Data Visualizer のタイムラインで上で部分範囲選択されている時間範囲です。
 * 範囲選択がない場合は、[PlaybackTimeRange](#playback-time-range) と同じ時間範囲になります。
 */
export type PlaybackTimeSelectedRange = {|
  /**
   * 選択範囲の始点
   */
  start: Time,

  /**
   * 選択範囲の終点
   */
  end: Time,
|};
/**
 * ビジュアルパーツを表示するパネルの縦・横のピクセル数です。
 */
export type ViewBox = {|
  /**
   * 横方向のピクセル数です。
   */
  width: number,

  /**
   * 縦方向のピクセル数です。
   */
  height: number,
|};
/**
 * ビジュアルパーツを表示するパネルのマス数です。
 */
export type ViewGrid = {|
  /**
   * 横方向のマス数です。
   */
  colSpan: number,

  /**
   * 縦方向のマス数です。
   */
  rowSpan: number,
|};
/**
 * パネル枠内にビジュアルパーツを隙間なしで表示することを表します。
 */
export type ViewContentFit = {|
  /**
   * `true`の場合は、パネル枠内にビジュアルパーツを隙間なしで表示します。
   */
  selected: boolean,
|};
/**
 * Data VisualizerのZoomのScale情報です。
 */
export type ViewZoom = {|
  /**
   * Zoom のScaleです。
   * e.g. `0.5`: 50%、`1`: 100%、`2`: 200%
   */
  scale: number,
|};
/**
 * ビジュアルパーツがタイムラインとして表示されているかを表します。
 */
export type ViewTimeline = {|
  /**
   * `true` のときはビジュアルパーツがタイムラインとして表示されています。
   */
  selected: boolean,
|};
/**
 * ビジュアルパーツが Data Visualizer の背景として表示されているかを表します。
 */
export type BackgroundDisplay = {|
  /**
   * `true` のときはビジュアルパーツが Data Visualizer の背景全面に表示されています。
   */
  selected: boolean,
|};
/**
 * 各ビジュアルパーツ固有の設定情報（拡張設定）です。
 * Data Visualizerとビジュアルパーツの間での設定情報の受け渡しに使用します。
 * 任意のObject形式を使用できます。
 * 更新されたExtensionをData Visualizerから受け取ったら、ビジュアルパーツ側でバリデーションを実施してください。
 */
export type Extension = {
  [x: string]: any,
};
/**
 * Google Maps APIを使用するための情報です。
 * ビジュアルパーツ内でGoogleMapsを表示する場合に使用します。
 * apiKeyとclientIDのうち、空文字列ではない項目を使用してください。
 * 両方が設定されている場合は、clientIDを使用してください。
 */
export type GoogleMapsOptions = {|
  /**
   * Google Maps ClientID です。
   * Google Maps Platform サービス開始以前に使用されていた API Keyです。
   */
  clientID: string,

  /**
   * Google Maps Platform サービスから提供される API Keyです。
   */
  apiKey: string,
|};
/**
 * バインドされているデータの表示種別です。
 * [DISPLAY_TYPE](#display-type)のいずれかの値です。
 */
export type DisplayType = ValueOf<typeof DISPLAY_TYPE>;
/**
 * バインドされているデータの表示種別を表す識別子です。
 */
declare export var DISPLAY_TYPE: {|
  /**
   * バインドされている計測データを文字列として表示する指定です。
   */
  STRING: "string",

  /**
   * バインドされている計測データを数値として表示する指定です。
   */
  NUMBER: "number",

  /**
   * バインドされている計測データを動画として表示する指定です。
   */
  VIDEO: "video",

  /**
   * バインドされている計測データを音声として再生する指定です。
   */
  AUDIO: "audio",
|};
/**
 * バインドされているデータの表示種別を表す識別子です。
 * @since Data Visualizer v3.9.0
 */
declare export var DATA_BINDING_ITEM_DISPLAY_TYPE: {|
  /**
   * データを文字列として表示する指定です。
   */
  STRING: "string",

  /**
   * データを数値として表示する指定です。
   */
  NUMBER: "number",
|};
/**
 * [object Object],[object Object],[object Object]
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemDisplayType = ValueOf<
  typeof DATA_BINDING_ITEM_DISPLAY_TYPE
>;
/**
 * バインドされているデータの表示色です。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemColor = {|
  /**
   * 表示色のカラーコード（文字列)です。
   */
  code: string,

  /**
   * 塗りつぶして表示するかを示します。
   */
  fill: boolean,

  /**
   * カラー透過率です。(0〜1)
   */
  opacity: number,

  /**
   * 文字表示のカラーコード（文字列）です。 `code` の色で塗りつぶされた上に文字を表示する際に当プロパティが使用されます。
   */
  fontCode: string,
|};
/**
 * バインドされているエッジです。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemEdge = {|
  /**
   * エッジのUUIDです。
   */
  uuid: string,

  /**
   * エッジの名前です。
   */
  name: string,
|};
/**
 * データ設定の DAT Format Version の定義です。
 * @since Data Visualizer v3.9.0
 */
declare export var DATA_BINDING_ITEM_TARGET_DATA_VERSION: {|
  /**
   * DAT Format Ver.1 であることを表します。
   */
  V1: 1,

  /**
   * DAT Format Ver.2 であることを表します。
   */
  V2: 2,
|};
/**
 * [object Object],[object Object],[object Object]
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemTargetDataVersion = ValueOf<
  typeof DATA_BINDING_ITEM_TARGET_DATA_VERSION
>;
/**
 * DAT Format Ver.1 で使用される Data Type の定義です。
 * @since Data Visualizer v3.9.0
 */
declare export var DATA_BINDING_ITEM_TARGET_DATA_VERSION_1_DATA_TYPE: {|
  /**
   * CAN のデータです。
   */
  CAN: 1,

  /**
   * CANopen のデータ型です。
   */
  CANopen: 65532,

  /**
   * NMEA のデータ型ですです。
   */
  NMEA: 2,

  /**
   * General Sensor のデータ型です。
   */
  GENERAL_SENSOR: 3,

  /**
   * Control Pad のデータ型です。
   */
  CONTROL_PAD: 4,

  /**
   * MAVLink1 Packet のデータ型です。
   */
  MAVLINK1_PACKET: 5,

  /**
   * String のデータ型です。
   */
  STRING: 10,

  /**
   * Float のデータ型です。
   */
  FLOAT: 11,

  /**
   * Int のデータ型です。
   */
  INT: 12,

  /**
   * Bytes のデータ型です。
   */
  BYTES: 14,

  /**
   * Generic のデータ型です。
   */
  GENERIC: 127,

  /**
   * Video のデータ型です。
   */
  VIDEO: 65534,

  /**
   * Audio のデータ型です。
   */
  AUDIO: 65535,

  /**
   * ROS Topic のデータ型です。
   */
  MSGPACK_ROS_TOPIC: "msgpack/ros_topic",
|};
/**
 * DAT Format Ver.2 で使用される Data Type の定義です。
 * @since Data Visualizer v3.9.0
 */
declare export var DATA_BINDING_ITEM_TARGET_DATA_VERSION_2_DATA_TYPE: {|
  /**
   * CAN Frame のデータ型です。
   */
  CAN_FRAME: "can_frame",

  /**
   * NMEA のデータ型です。
   */
  NMEA: "string/nmea",

  /**
   * MAVLink1 Packet のデータ型です。
   */
  MAVLINK1_PACKET: "mavlink1_packet",

  /**
   * String のデータ型です。
   */
  STRING: "string",

  /**
   * Float64 のデータ型です。
   */
  FLOAT64: "float64",

  /**
   * Int64 のデータ型です。
   */
  INT64: "int64",

  /**
   * Bytes のデータ型です。
   */
  BYTES: "bytes",

  /**
   * JPEG のデータ型です。
   */
  JPEG: "jpeg",

  /**
   * H.264 Frame のデータ型です。
   */
  H264_FRAME: "h264_frame",

  /**
   * H.264 NAL Unit のデータ型です。
   */
  H264_NAL_UNIT: "h264_nal_unit",

  /**
   * PCM のデータ型です。
   */
  PCM: "pcm",

  /**
   * AAC のデータ型です。
   */
  AAC: "aac",

  /**
   * ROS Topic のデータ型です。
   */
  MSGPACK_ROS_TOPIC: "msgpack/ros_topic",

  /**
   * 2D Vector のデータ型です。
   */
  VECTOR_2D: "vector_2d",

  /**
   * 3D Vector のデータ型です。
   */
  VECTOR_3D: "vector_3d",
|};
/**
 * DAT Format Ver.1 による Target Data 指定です。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemTargetDataVersion1 = {|
  /**
   * [object Object],[object Object],[object Object]
   */
  version: typeof DATA_BINDING_ITEM_TARGET_DATA_VERSION.V1,

  /**
   * [object Object],[object Object],[object Object]
   */
  dataType: number | string,

  /**
   * データIDです。
   */
  dataID: string,

  /**
   * チャンネルです。 未設定時は `null` になります。
   */
  channel: number | null,
|};
/**
 * DAT Format Ver.2 による Target Data 指定です。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemTargetDataVersion2 = {|
  /**
   * [object Object],[object Object],[object Object]
   */
  version: typeof DATA_BINDING_ITEM_TARGET_DATA_VERSION.V2,

  /**
   * [object Object],[object Object],[object Object]
   */
  dataType: string,

  /**
   * データ名称です。
   */
  dataName: string,
|};
/**
 * バインドされているデータを文字列で表示するための設定(Display Settings)です。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemDisplaySettingsString = {|
  /**
   * [object Object],[object Object],[object Object]
   */
  type: typeof DATA_BINDING_ITEM_DISPLAY_TYPE.STRING,

  /**
   * 単位の文字列です。e.g. `Km/h`, `deg`, ...
   */
  unit: string,
|};
/**
 * バインドされているデータを数値で表示する設定(Display Settings)です。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemDisplaySettingsNumber = {|
  /**
   * [object Object],[object Object],[object Object]
   */
  type: typeof DATA_BINDING_ITEM_DISPLAY_TYPE.NUMBER,

  /**
   * 単位の文字列です。e.g. `Km/h`, `deg`, ...
   */
  unit: string,

  /**
   * 数値の最小値です。
   */
  rangeMin: number,

  /**
   * 数値の最大値です。
   */
  rangeMax: number,

  /**
   * 数値の最小値が Panel Option の Range設定で上書きされた状態を示します。
   */
  rangeMinOverwrite: boolean,

  /**
   * 数値の最大値が Panel Option の Range設定で上書きされた状態を示します。
   */
  rangeMaxOverwrite: boolean,

  /**
   * 小数点以下の桁数です。
   */
  numberOfDigitsAfterDecimalPoint: number,

  /**
   * 下限の閾値です。 `null` は未設定であることを表します。
   */
  thresholdLower: number | null,

  /**
   * 上限の閾値です。 `null` は未設定であることを表します。
   */
  thresholdUpper: number | null,
|};
/**
 * Data Visualizer の Data Binding においてバインドされているデータです。Data Settings (DAT)で定義されている情報の一部に相当します。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItemData = {|
  /**
   * データ設定の ID です。
   */
  id: string,

  /**
   * データの表示名(Display Name)です。
   */
  displayName: string,

  /**
   * データの説明(Description)です。
   */
  description: string,

  /**
   * 表示対象のデータ(Target Data)です。
   */
  targetData:
    | DataBindingItemTargetDataVersion1
    | DataBindingItemTargetDataVersion2,

  /**
   * データの表示設定(Display Settings)です。設定がない場合は `null` になります。
   */
  displaySettings:
    | null
    | DataBindingItemDisplaySettingsString
    | DataBindingItemDisplaySettingsNumber,
|};
/**
 * バインドされているデータです。
 * @since Data Visualizer v3.9.0
 */
export type DataBindingItem = {|
  /**
   * DataBindingItemを区別するための固有識別子です。
   */
  id: string,

  /**
   * データがバインドされている順番を表します。先頭にバインドされているデータでは 0 になります。
   */
  index: number,

  /**
   * バインドされているデータの表示色です。
   */
  color: DataBindingItemColor,

  /**
   * バインドされているエッジです。エッジがバインドされていない場合は `null` になります。
   */
  edge: DataBindingItemEdge | null,

  /**
   * バインドされているデータ設定です。バインドされていない場合は `null` になります。
   */
  data: DataBindingItemData | null,
|};
/**
 * [object Object],[object Object],[object Object]
 */
export type DataSpecification = {|
  /**
   * バインドされているデータ定義の固有識別子です。
   */
  id: string,

  /**
   * 単位の文字列です。e.g. `Km/h`, `deg`, ...
   */
  unit: string,

  /**
   * 数値の最小値です。
   */
  rangeMin: number,

  /**
   * 数値の最小値が Panel Option の Range設定で上書きされた状態を示します。
   */
  rangeMinOverwrite: boolean,

  /**
   * 数値の最大値です。
   */
  rangeMax: number,

  /**
   * 数値の最大値が Panel Option の Range設定で上書きされた状態を示します。
   */
  rangeMaxOverwrite: boolean,

  /**
   * [object Object],[object Object],[object Object],[object Object],[object Object]
   */
  displayType: DisplayType,

  /**
   * 表示する数値の有効小数点桁数です。
   */
  decimalDigits: number,

  /**
   * バインドされているエッジのUUIDです。
   */
  edgeUUID: string,

  /**
   * バインドされているエッジ名です。
   */
  edgeName: string,

  /**
   * バインドされているデータ名です。
   *
   * Data Visualizer v3.9.0 以降では、データ設定の ID の値です。
   */
  dataName: string,

  /**
   * バインドされているデータIDです。
   *
   * Data Visualizer v3.9.0 以降、かつ DAT Format Ver.2 によるデータ設定を使用している場合は、Target Data の Data Name の値です。
   */
  dataID: string,

  /**
   * 数値の閾値リストです。`min` または `max` の範囲外となった場合に閾値の範囲外になったとみなします。`null` は未設定であることを表します。
   */
  thresholds: {|
    min: number | null,
    max: number | null,
  |}[],

  /**
   * バインドされているチャンネルです。 未設定時は `-1` になります。
   *
   * Data Visualizer v3.9.0 以降、かつ DAT Format Ver.2 によるデータ設定を使用している場合も、`-1` になります。
   */
  channel: number,

  /**
   * バインドされているデータが動画として再生されることを示します。当プロパティは`非推奨`です。 displayType を使用してください。
   *
   * Data Visualizer v3.9.0 以降、かつ DAT Format Ver.2 によるデータ設定を使用している場合は、常に `false` になります。
   * @deprecated
   */
  video: boolean,

  /**
   * バインドされているデータが音声として再生されることを示します。当プロパティは`非推奨`です。 displayType を使用してください。
   *
   * Data Visualizer v3.9.0 以降、かつ DAT Format Ver.2 によるデータ設定を使用している場合は、常に `false` になります。
   * @deprecated
   */
  audio: boolean,

  /**
   * バインドされているデータのカラーコード（文字列)です。
   */
  colorCode: string,

  /**
   * バインドされているデータを塗りつぶして表示するかを示します。
   */
  colorFill: boolean,

  /**
   * バインドされているデータのカラー透過率です。(0〜1)
   */
  colorOpacity: number,

  /**
   * バインドされているデータの文字表示のカラーコード（文字列）です。 `colorCode` の色で塗りつぶされた上に文字を表示する際に当プロパティが使用されます。
   */
  colorFontCode: string,
|};
/**
 * DepData は`非推奨`のデータ定義です。
 * Data Visualizer `v3.1.0` 以降ので削除予定です。
 * [DataSpecification](#data-specification) を使用してください。
 * @deprecated
 */
export type DepData = {|
  id: string,
  groupID: string,
  edgeID: string,
  dataID: string,
  name: string,
  dataName: string,
  rangeMin: number,
  rangeMax: number,
  unit: string,
  format: string,
  thresholds: {|
    min: number | null,
    max: number | null,
  |}[],
  dataGroupID: string,
  group: string,
  convert: {|
    fieldID: string,
    separator: string,
    convertType: string,
    offset: number,
    scale: number,
    intelOrderFlag: boolean,
    startBit: number,
    bitSize: number,
    signed: boolean,
  |} | null,
  replay: boolean,
  linkedEdge: any[],
  colorCode: any,
  colorFill: boolean,
  colorOpacity: number,
|};
/**
 * 時系列データの1つのデータポイントです。
 */
export type ValueData = {|
  /**
   * データポイントのタイムスタンプです。
   */
  t: Time,

  /**
   * このデータポイントが持つ値です。この値をビジュアルパーツで表現します。
   */
  v: string | number | Uint8Array,
|};
/**
 * 計測データの情報です。
 * @example ```typescript
 * // 再生位置のデータ有効判定
 * const available = Boolean(value.data[value.baseIdx])
 *
 * // 再生位置の値を取得、参照データがない場合は0とみなす
 * const gotValue = (value.data[value.baseIdx] ?? { v: 0 })[v]
 * ```
 */
export type Value = {|
  /**
   * 再生位置の計測データ `data` の要素番号です。表示対象のデータが存在しない場合は -1 になります。
   */
  baseIdx: number,

  /**
   * 比較対象時刻の計測データ `data` の要素番号です。表示対象のデータが存在しない場合は -1 になります。
   * LIVE再生中は常に -1 になります。
   */
  compIdx: number,

  /**
   * 参照している時系列データです。
   * タイムスタンプの昇順でソート済みです。
   */
  data: ValueData[],
|};
/**
 * User Roleの情報です。
 */
export type UserRole = {|
  /**
   * Role名です。
   */
  name: string,
|};
/**
 * ログインしているUser情報です。
 */
export type User = {|
  /**
   * Userに設定されているRoleのリストです。
   */
  roles: UserRole[],
|};
/**
 * 描画処理に関するプロファイル情報です。描画処理に要した時間の情報を含みます。
 * @since Data Visualizer v3.3.0
 */
export type RenderingProfile = {|
  /**
   * ビジュアルパーツの描画処理に要した時間(秒)です。
   * e.g. 12.34秒 = 12.34
   */
  actualDuration: number,
|};
/**
 * Data Visualizer が参照しているプロジェクトの情報です。
 * @since Data Visualizer v3.6.0
 */
export type Project = {|
  /**
   * 参照しているプロジェクトのUUIDです。
   */
  uuid: string,

  /**
   * 参照しているプロジェクトの名前です。
   */
  name: string,
|};
/**
 * Sender Edge の機能が無効、またはエッジが未選択のときは空文字列になります。
 * @since Data Visualizer v3.8.0
 */
export type SenderEdge = {|
  /**
   * Sender Edge の機能が有効であるかを表します。
   */
  enabled: boolean,

  /**
   * Sender Edge で選択しているエッジの UUID です。
   * Sender Edge の機能が無効、または未選択のときは空文字列になります。
   */
  uuid: string,
|};
/**
 * 時系列データを Data Visualizer からサーバーに送信する際、 Data Visualizer において作成された計測の情報です。
 * @since Data Visualizer v3.8.0
 */
export type Measurement = {|
  /**
   * 計測のUUIDです。
   */
  uuid: string,

  /**
   * 計測の基準時刻です。
   */
  baseTime: Time,

  /**
   * 計測を作成したエッジのUUIDです。
   */
  edgeUUID: string,
|};
/**
 * Timeの変更情報です。当情報はまだ使用できません。
 * @coming_soon
 */
export type TimeChange = {|
  /**
   * 変更するTime情報です。
   */
  time: Time,
|};
/**
 * タイムライン上の再生位置を変更するための情報です。
 * 標準ビジュアルパーツ Line Graph の専用情報であり、かつ今後リファクタの対象となるため `非推奨` です。
 * @deprecated
 */
export type TimeChangeWithPagePosition = {|
  pageLeft: number,
  pageRight: number,
  done: boolean,
|};
/**
 * タイムライン上の再生位置を変更するための情報です。
 * 標準ビジュアルパーツ Line Graph の専用情報であり、かつ今後リファクタの対象となるため `非推奨` です。
 * @deprecated
 */
export type TimeChangeWithPageAndRect = {|
  pageX: number,
  pageY: number,
  targetLeft: number,
  targetTop: number,
  targetWidth: number,
  targetHeight: number,
  graphLeft: number,
  graphTop: number,
  graphWidth: number,
  graphHeight: number,
|};
/**
 * タイムライン上の比較対象時刻を変更するための情報です。
 * 標準ビジュアルパーツ Line Graph の専用情報であり、かつ今後リファクタの対象となるため `非推奨` です。
 * @deprecated
 */
export type ComparationTimeChangeWithPagePosition = {|
  pageLeft: number,
  pageRight: number,
|};
/**
 * タイムライン上の範囲選択を変更するための情報です。
 * 標準ビジュアルパーツ Line Graph の専用情報であり、かつ今後リファクタの対象となるため `非推奨` です。
 * @deprecated
 */
export type PlaybackTimeSelectedRangeChangeWithPageAndRect = {|
  pageX: number,
  pageY: number,
  left: number,
  top: number,
  width: number,
  height: number,
  graphWidth: number,
|};
declare type DispatcherEvents = {|
  baseURL: string,
  fontFamilies: FontFamilies,
  time: number,
  size: {|
    width: number,
    height: number,
  |},
  playbackComparationTime: number,
  playbackMode: PlaybackMode,
  playbackStatus: PlaybackStatus,
  playbackCount: number,
  playbackRate: number,
  playbackTimeRange: PlaybackTimeRange,
  playbackTimeSelectedRange: PlaybackTimeSelectedRange,
  viewBox: ViewBox,
  viewGrid: ViewGrid,
  viewContentFit: ViewContentFit,
  viewZoom: ViewZoom,
  viewTimeline: ViewTimeline,
  backgroundDisplay: BackgroundDisplay,
  extension: Extension,
  googleMapsOptions: GoogleMapsOptions,
  dataSpecification: {|
    dataIndex: number,
    spec: DataSpecification,
  |},
  dataSpecifications: DataSpecification[],
  dataBindingItem: DataBindingItem,
  dataBindingItems: DataBindingItem[],
  currentData: {|
    dataIndex: number,
    time: number,
    data: any,
  |},
  depDatas: DepData[],
  values: Value[],
  user: User,
  project: Project,
  senderEdge: SenderEdge,
  measurement: Measurement | null,
|};
declare type ExposerEvents = {|
  loaded: void,
  extensionPatch: Extension,
  backgroundDisplayToggle: void,
  timeChange: TimeChange,
  timeChangeWithPageAndRect: TimeChangeWithPageAndRect,
  timeChangeWithPagePosition: TimeChangeWithPagePosition,
  comparationTimeWithPagePosition: ComparationTimeChangeWithPagePosition,
  playbackTimeSelectedRangeChange: PlaybackTimeSelectedRange,
  playbackTimeSelectedRangeChangeStartSelect: PlaybackTimeSelectedRangeChangeWithPageAndRect,
  playbackTimeSelectedRangeChangeStartMove: PlaybackTimeSelectedRangeChangeWithPageAndRect,
  playbackTimeSelectedRangeChangeStartResizeStart: PlaybackTimeSelectedRangeChangeWithPageAndRect,
  playbackTimeSelectedRangeChangeStartResizeEnd: PlaybackTimeSelectedRangeChangeWithPageAndRect,
  playbackTimeSelectedRangeReset: void,
  captureCreate: void,
  renderingProfile: RenderingProfile,
  measurementCreate: void,
  error: Error,
|};

/**
 * Data Visualizer とビジュアルパーツが連携するためのイベントのインターフェースです。
 * ビジュアルパーツ側で取得したいイベントを設定し、最後に event.loaded.emit() をコールしてください。
 * 当イベントをコールした後に、Data Visualizer とのイベント連携が開始されます。
 * @example ```typescript
 * event.time.on((time) => {
 *   // do something
 * })
 * event.viewBox.on((viewBox) => {
 *   // do something
 * })
 *
 * // イベント取得追加設定...
 *
 * // イベント初期設定の完了通知
 * event.loaded.emit()
 * ```
 */
export type ExposerEvent = {|
  /**
   * ビジュアルパーツの Base URL を Data Visualizer から取得します。
   * 画像を表示するときにパスの一部として使用します。
   * @example ```typescript
   * event.baseURL.on((baseURL) => {
   *   const imgSrc = `${baseURL}/image.png`
   *   // do something...
   * })
   * ```
   */
  baseURL: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "baseURL">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "baseURL">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "baseURL">>,
      "off"
    >,
  |},

  /**
   * ビジュアルパーツで表示するフォントファミリーを Data Visualizer から取得します。
   * 取得したフォントファミリーをビジュアルパーツのスタイルに適用する際に使用します。
   * @example ```typescript
   * event.fontFamilies.on((fontFamilies) => {
   *   element.style.fontFamily = fontFamilies.apt7seg
   * })
   * ```
   */
  fontFamilies: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "fontFamilies">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "fontFamilies">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "fontFamilies">>,
      "off"
    >,
  |},

  /**
   * 再生位置の時刻を Data Visualizer から取得します。
   * 時刻の情報は、ビジュアルパーツ内に時刻を表示するために使用することができます。また、 values で取得した時系列データ（ValueData の配列）の中から再生位置のデータを得るために使用することができます。
   * @example ```typescript
   * event.time.on((time) => {
   *   // Format. `UnixTimeタイムスタンプ.小数点(マイクロ秒)`
   *   // e.g. time = 1604027947.123456
   *   // -> 2020/10/30 12:19:07.123456 (JST)
   *   element.textContent = String(time)
   * })
   * ```
   */
  time: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "time">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "time">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "time">>,
      "off"
    >,
  |},

  /**
   * 表示されているビジュアルパーツのサイズ(単位はピクセル)を Data Visualizer から取得します。
   * 当イベントは`非推奨`です。 [viewBoxイベント](exposerevent#viewbox) を参照してください。
   * @deprecated
   */
  size: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "size">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "size">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "size">>,
      "off"
    >,
  |},

  /**
   * 比較対象の時刻（Compared Position）を Data Visualizer から取得します。
   * 時刻の情報は、ビジュアルパーツ内に時刻を表示するために使用することができます。また、 values で取得した時系列データ(ValueData の配列）の中から比較対象のデータを得るために使用することができます。
   * @example ```typescript
   * event.playbackComparationTime.on((time) => {
   *   // Format. `UnixTimeタイムスタンプ.小数点(マイクロ秒)`
   *   // e.g. time = 1604027947.123456
   *   // -> 2020/10/30 12:19:07.123456 (JST)
   *   element.textContent = String(time)
   * })
   * ```
   */
  playbackComparationTime: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackComparationTime">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackComparationTime">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackComparationTime">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer の再生モードを取得します。
   * LIVE 再生中であるか Stored Data の再生中であるかによってビジュアルパーツ内の表示を切り替えたい場合に使用します。
   * @example ```typescript
   * event.playbackMode.on((playbackMode) => {
   *   console.log(playbackMode) // `live` or `stored_data`
   *   // do something
   * })
   * ```
   */
  playbackMode: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackMode">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackMode">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackMode">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer の再状状態を取得します。
   * 再生状態が、再生、停止、一時停止のどれであるかによってビジュアルパーツ内の表示を切り替えたい場合に使用します。
   * @example ```typescript
   * event.playbackStatus.on((playbackStatus) => {
   *   console.log(playbackStatus) // `play` or `pause` or `stop`
   *   // do something
   * })
   * ```
   */
  playbackStatus: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackStatus">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackStatus">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackStatus">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer で再生を実施した回数を取得します。
   * 再生回数は以下のタイミングでインクリメントされます。
   * - `pause`、`stop` から `play` に変更した。
   * - Stored Data 再生で、最後まで表示した。
   * - 再生中にタイムラインを使って任意の時刻に移動した。
   * @example ```typescript
   * event.playbackCount.on((playbackCount) => {
   *   console.log(playbackCount) // `1, 2, ....`
   *   // do something
   * })
   * ```
   */
  playbackCount: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackCount">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackCount">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackCount">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer の再生速度を取得します。
   * 再生速度に応じて、ビジュアルパーツの表現を切り替えたい場合に使用します。
   * @example ```typescript
   * event.playbackRate.on((playbackRate) => {
   *   // 1x: 1
   *   // 2x: 2
   *   // 0.5x: 0.5
   *   console.log(playbackRate)
   *   // do something
   * })
   * ```
   */
  playbackRate: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackRate">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackRate">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackRate">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer が再生している時間範囲を取得します。
   * 再生時間範囲に応じてビジュアルパーツの表現を切り替えたい場合に使用します。
   * LIVE 再生時の再生時間範囲は、一定の長さ(Data Visualiser の Timeline Settings の `LIVE Duration Time` )を保持したまま常に更新されます。
   * Stored Data再生時の再生時間範囲は、指定がある場合はその範囲であり、指定がない場合は計測全体です。
   * @example ```typescript
   * event.playbackTimeRange.on((timeRange) => {
   *   console.log(timeRange) // { start: 1604027947.123456, end: 1604029999.555555 }
   *   // do something
   * })
   * ```
   */
  playbackTimeRange: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeRange">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeRange">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeRange">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer で選択されている時間範囲を取得します。
   * タイムライン上で選択された時間範囲についてビジュアルパーツの表現を切り替えたい場合に使用します。
   * タイムライン上で時間範囲が選択されていない場合は、[playbackTimeRange](exposerevent#playbacktimerange)と同じ値になります。
   * @example ```typescript
   * event.playbackTimeSelectedRange.on((timeSelectedRange) => {
   *   console.log(timeSelectedRange) // { start: 1604027947.123456, end: 1604029999.555555 }
   *   // do something
   * })
   * ```
   */
  playbackTimeSelectedRange: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeSelectedRange">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeSelectedRange">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "playbackTimeSelectedRange">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer のパネルのサイズをピクセル数で取得します。
   * パネルのサイズに応じてビジュアルパーツの表現を切り替えたい場合に使用します。
   * @example ```typescript
   * event.viewBox.on((viewBox) => {
   *   // w:320px, h:240px
   *   console.log(viewBox) // { width: 320, height: 240 }
   *   // do something
   * })
   * ```
   */
  viewBox: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewBox">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewBox">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewBox">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer のパネルが使用しているマス数を取得します。
   * パネルのマス数に応じて、ビジュアルパーツの表現を切り替えたい場合に使用します。
   * @example ```typescript
   * event.viewGrid.on((viewGrid) => {
   *   // 横2マス、縦1マスを使用
   *   console.log(viewGrid) // { colSpan: 2, rowSpan: 1 }
   *   // do something
   * })
   * ```
   */
  viewGrid: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewGrid">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewGrid">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewGrid">>,
      "off"
    >,
  |},

  /**
   * ビジュアルパーツがパネル内に隙間なしの設定で表示されているかどうかを取得します。
   * 隙間なしで表示されているかどうかによって処理を切り替えたい場合に使用します。
   * @example ```typescript
   * event.viewContentFit.on((contentFit) => {
   *   if (contentFit.selected) {
   *     // render fit
   *   } else {
   *     // render no fit
   *   }
   * })
   * ```
   */
  viewContentFit: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewContentFit">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewContentFit">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewContentFit">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer のZoom Scale値を取得します。
   * Zoom Scale値の情報を取得して、表現を切り替えたい場合に使用します。
   * Zoom 操作によるパネルの拡大・縮小表示は、Data Visualizer側で実施しているので、基本的には当イベントの処理は不要です。
   * @example ```typescript
   * event.viewZoom.on((zoom) => {
   *   // zoom: 100% -> scale: 1
   *   console.log(zoom) // { scale: 1 }
   * })
   * ```
   */
  viewZoom: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewZoom">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewZoom">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewZoom">>,
      "off"
    >,
  |},

  /**
   * ビジュアルパーツがタイムラインとして表示されているかを取得します。
   * タイムライン表示対象のビジュアルパーツは、`v3.0.0時点` では固定されているため、基本的にビジュアルパーツの追加開発でこのイベントハンドラを使用することはありません。
   * @example ```typescript
   * event.viewTimeline.on((timeline) => {
   *   console.log(timeline) // { selected: false }
   * })
   * ```
   */
  viewTimeline: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewTimeline">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewTimeline">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "viewTimeline">>,
      "off"
    >,
  |},

  /**
   * このビジュアルパーツが Data Visualizer の背景として表示されているかどうかを取得します。
   * 背景として表示される際に表現を切り替えたい場合に使用します。
   * @example ```typescript
   * event.backgroundDisplay.on((backgroundDisplay) => {
   *   if (backgroundDisplay.selected) {
   *     // e.g. deactive background display button
   *   } else {
   *     // e.g. active background display button
   *   }
   * })
   * ```
   */
  backgroundDisplay: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "backgroundDisplay">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "backgroundDisplay">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "backgroundDisplay">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer のパネルにバインドされているビジュアルパーツの拡張設定情報を取得します。
   * 拡張設定情報を使用してビジュアルパーツの表現を切り替えたい場合に使用します。
   * extension の情報は任意のObject形式で取得します。各ビジュアルパーツ内でバリデーションを行ってください。
   * @example ```typescript
   * event.extension.on((extension) => {
   *   console.log(extension) // Object
   *   // validate extension
   *   // ...
   *   // use extension
   *   // ...
   * })
   * ```
   */
  extension: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "extension">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "extension">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "extension">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer から、 Google Maps のオプション情報(Google Maps API Key を含む)を取得します。
   * ビジュアルパーツ内で Google Maps を使用する場合に使用します。
   * @example ```typescript
   * event.googleMapsOptions.on((options) => {
   *   // 空文字列のフィールドは値が未設定であることを表します。
   *   // 両方のフィールドに値が設定されている場合は、clientID を使用してください。
   *   console.log(options) // { apiKey: "....", clientID: "...." }
   * })
   * ```
   */
  googleMapsOptions: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "googleMapsOptions">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "googleMapsOptions">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "googleMapsOptions">>,
      "off"
    >,
  |},

  /**
   * [object Object],[object Object],[object Object]
   * @example ```typescript
   * event.dataSpecification.on(({ dataIndex, spec }) => {
   *   console.log(dataIndx) // 変更されたバインドデータのIndex: 0 or 1 or ...
   *   console.log(spec)     // DataSpecificationの仕様を参照してください
   * })
   * ```
   */
  dataSpecification: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecification">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecification">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecification">>,
      "off"
    >,
  |},

  /**
   * [object Object],[object Object],[object Object]
   * @example ```typescript
   * event.dataSpecifications.on((specs) => {
   *   console.log(specs)  // DataSpecificationの仕様を参照してください。
   * })
   * ```
   */
  dataSpecifications: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecifications">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecifications">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataSpecifications">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer の Data Binding でパネルにバインドされているデータの定義を取得します。
   * データバインドの変更後に、バインドされたデータの定義を取得して、表現を切り替えたい場合に使用します。
   * @since Data Visualizer v3.9.0
   * @example ```typescript
   * event.dataBindingItem.on((item) => {
   *   console.log(item)     // DataBindingItemの仕様を参照してください
   * })
   * ```
   */
  dataBindingItem: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItem">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItem">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItem">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer の Data Binding でデータのバインドが1つでも変更された場合(追加、変更、削除のいずれか)にデータバインドの情報をまとめて取得します。
   * 複数のデータバインドをまとめて取得して、表現を切り替えたい場合に使用します。
   * @since Data Visualizer v3.9.0
   * @example ```typescript
   * event.dataBindingItems.on((items) => {
   *   console.log(items)  // DataBindingItemの仕様を参照してください。
   * })
   * ```
   */
  dataBindingItems: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItems">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItems">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "dataBindingItems">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer でパネルにバインドされている計測データの、再生位置のデータポイントを取得します。
   * 任意の計測データをビジュアルパーツで表現したい場合に使用します。
   * データが存在しない場合は、 `time=0`, `data=""` となります。
   * @example ```typescript
   * event.currentData.on(({ dataIndex, data, time }) => {
   *   console.log(dataIndex) // バインドされているデータのIndex (0, ...)
   *   console.log(time)      // データが存在しない場合は 0
   *   console.log(data)      // バインドされているデータに紐づく計測データ
   * })
   * ```
   */
  currentData: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "currentData">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "currentData">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "currentData">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer のパネルにバインドされているデータリストのいずれかが変更されたときにイベントを取得します。
   * 当イベントは`非推奨`です。
   * [dataSpecificationsイベント](./exposerevent#dataspecifications)を参照してください。
   * @deprecated
   */
  depDatas: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "depDatas">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "depDatas">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "depDatas">>,
      "off"
    >,
  |},

  /**
   * このパネルにバインドされている全てのデータの、再生時間範囲内のすべてのデータポイントを取得します。
   * 計測データをビジュアルパーツで表現したい場合に使用します。
   * Value の配列は [DataSpecifications](./exposerevent#dataspecifications) で取得する配列の並びと同じです。
   * 各計測データについては、 [Valueの定義情報](../modules#value)を参照してください
   * @example ```typescript
   * event.values.on((values) => {
   *   values.forEach((value) => {
   *     // do something
   *   })
   * })
   * ```
   */
  values: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "values">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "values">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "values">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer でログイン中のユーザーの情報を取得します。
   * ユーザーに紐づくロール文字列データを使用して、ビジュアルパーツの表現を切り替えたい場合に使用します。
   * ロールの定義は、Data Visualizer を提供するインスタンスのサーバー設定によって任意に設定されます。
   * @example ```typescript
   * event.user.on((user) => {
   *   console.log(user.roles) // [{ name: "role", } ...]
   * })
   * ```
   */
  user: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "user">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "user">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "user">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer で参照しているプロジェクトの情報を取得します。
   * プロジェクトに紐づくリソースを intdash API を使用して参照する場合に使用します。
   * @since Data Visualizer v3.6.0
   * @example ```typescript
   * event.project.on((project) => {
   *   console.log(project) // { uuid: "00000000-0000-0000-0000-000000000000", name: "GlobalProject" }
   * })
   * ```
   */
  project: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "project">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "project">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "project">>,
      "off"
    >,
  |},

  /**
   * [object Object],[object Object],[object Object]
   * @since Data Visualizer v3.8.0
   * @example ```typescript
   * event.senderEdge.on((senderEdge) => {
   *   console.log(senderEdge)
   *   // Sender Edge の機能が無効
   *   // {
   *   //   enabled: false,
   *   //   uuid: '',
   *   // }
   *   //
   *   // Sender Edge の機能が有効、かつ Sender Edge が未設定
   *   // {
   *   //   enabled: true,
   *   //   uuid: '',
   *   // }
   *   //
   *   // Sender Edge の機能が有効、かつ Sender Edge が設定済み
   *   // {
   *   //   enabled: false,
   *   //   uuid: '28b579ae-08bb-4a09-8452-dc5c10fe3136',
   *   // }
   * })
   * ```
   */
  senderEdge: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "senderEdge">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "senderEdge">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "senderEdge">>,
      "off"
    >,
  |},

  /**
   * [object Object],[object Object],[object Object]
   * @since Data Visualizer v3.8.0
   * @example ```typescript
   * event.measurement.on((measurement) => {
   *   console.log(measurement)
   *   // 計測情報を作成済み
   *   // {
   *   //   uuid: "00000000-0000-0000-0000-000000000000",
   *   //   baseTime: 1604027947.123456,
   *   //   edgeUUID: "00000000-0000-0000-0000-000000000000",
   *   // }
   *   //
   *   // 計測が未作成、または終了済み
   *   // null
   * })
   * ```
   */
  measurement: {|
    /**
     * イベントハンドラとして、変更が発生したときに一度だけ実行されるべき処理を設定します（処理は一度実行されると破棄されるため、一度しか実行されません）。イベントハンドラには変更された値が渡されます。
     */
    once: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "measurement">>,
      "once"
    >,

    /**
     * イベントハンドラとして、変更が発生するたびに実行されるべき処理を設定します。イベントハンドラには変更された値が渡されます。
     */
    on: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "measurement">>,
      "on"
    >,

    /**
     * `on`で設定したイベントハンドラを削除します。
     */
    off: $PropertyType<
      TypedEvent<$PropertyType<DispatcherEvents, "measurement">>,
      "off"
    >,
  |},

  /**
   * Data Visualizer に、ビジュアルパーツのイベント取得初期設定が完了したことを通知します。
   * Data Visualizer は当イベントを取得すると、ビジュアルパーツへの各イベントの送信を開始します。
   * @example ```typescript
   * // 各イベントの初期設定
   * // event.xxxxx.on(() => {...})
   *
   * // Data Visualizer にイベント初期設定完了を通知する
   * event.loaded.emit()
   * ```
   */
  loaded: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "loaded">>,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に、ビジュアルパーツの拡張設定情報の一部を送信し、永続化します。
   * 拡張設定の全ての項目が確定している場合は、全項目を送信しても問題ありません。
   * @example ```typescript
   * type Extension = {
   *   n: number
   *   s: string
   * }
   *
   * let extension = {}
   * event.exension.on((recvExtension) => {
   *   // validate extension
   *   // ...
   *   extension = recvExtension
   * })
   *
   * // do something
   *
   * // nのproperty のみ差分で更新する
   * event.extensionPatch.emit({
   *   n: 100, // patch n=100
   * })
   * ```
   */
  extensionPatch: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "extensionPatch">>,
      "emit"
    >,
  |},

  /**
   * ビジュアルパーツを Data Visualizer の背景として表示するかどうかを切り替えます。
   * @example ```typescript
   * event.backgroundDisplay.on((backgroundDisplay) => {
   *   // 初回: false を取得
   *   // buttonElement click直後: true を取得
   *   console.log(backgroundDisplay.selected)
   * })
   *
   * buttonElement.onclick = () => {
   *   event.backgroundDisplayToggle.emit()
   * }
   * ```
   */
  backgroundDisplayToggle: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "backgroundDisplayToggle">>,
      "emit"
    >,
  |},

  /**
   * Data Visualizer のタイムライン上の再生位置をビジュアルパーツから変更します。
   * 当イベントは開発中のため、 `v3.0.0` 時点ではイベントを送信しても反映されません。
   * @coming_soon
   */
  timeChange: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "timeChange">>,
      "emit"
    >,
  |},

  /**
   * Data Visualizer のタイムライン上の再生位置を変更します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  timeChangeWithPageAndRect: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "timeChangeWithPageAndRect">>,
      "emit"
    >,
  |},

  /**
   * Data Visualizer のタイムライン上の再生位置を変更します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  timeChangeWithPagePosition: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "timeChangeWithPagePosition">>,
      "emit"
    >,
  |},

  /**
   * Data Visualizer のタイムラインに設定されている比較対象時刻を変更します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  comparationTimeChangeWithPagePosition: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<ExposerEvents, "comparationTimeWithPagePosition">
      >,
      "emit"
    >,
  |},

  /**
   * ビジュアルパーツ上で指定された範囲を、Data Visualizer のタイムライン上で選択範囲とします。
   */
  playbackTimeSelectedRangeChange: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<ExposerEvents, "playbackTimeSelectedRangeChange">
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されているタイムラインでの、範囲選択操作の開始イベントを通知します。
   * 通知後の、マウス操作、範囲選択確定処理は、Data Visualizer 側で処理します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  playbackTimeSelectedRangeChangeStartSelect: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<
          ExposerEvents,
          "playbackTimeSelectedRangeChangeStartSelect"
        >
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されているタイムラインでの、選択済み範囲をスライドする操作の開始イベントを通知します。
   * 通知後の、マウス操作、範囲選択確定処理は、Data Visualizer 側で処理します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  playbackTimeSelectedRangeChangeStartMove: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<ExposerEvents, "playbackTimeSelectedRangeChangeStartMove">
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されているタイムラインでの、選択済み範囲の始点のみをスライドする操作の開始イベントを通知します。
   * 通知後の、マウス操作、範囲選択確定処理は、Data Visualizer 側で処理します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  playbackTimeSelectedRangeChangeStartResizeStart: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<
          ExposerEvents,
          "playbackTimeSelectedRangeChangeStartResizeStart"
        >
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されているタイムラインでの、選択済み範囲の終点のみをスライドする操作の開始イベントを通知します。
   * 通知後の、マウス操作、範囲選択確定処理は、Data Visualizer 側で処理します。
   * 当イベントは、標準ビジュアルパーツ Line Graph 専用のイベントで、 `非推奨` です。
   * @deprecated
   */
  playbackTimeSelectedRangeChangeStartResizeEnd: {|
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<
          ExposerEvents,
          "playbackTimeSelectedRangeChangeStartResizeEnd"
        >
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されているタイムラインの選択範囲状態をリセットします。
   * @example ```typescript
   * event.playbackTimeSelectedRangeReset.emit()
   * ```
   */
  playbackTimeSelectedRangeReset: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<
        $PropertyType<ExposerEvents, "playbackTimeSelectedRangeReset">
      >,
      "emit"
    >,
  |},

  /**
   * Data Visualizer に表示されている時間範囲のCaptureを作成する画面を表示します。
   * タイムラインで時間範囲が選択されている場合は、その範囲がCaptureになります。
   * @example ```typescript
   * event.captureCreate.emit()
   * ```
   */
  captureCreate: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "captureCreate">>,
      "emit"
    >,
  |},

  /**
   * ビジュアルパーツの描画処理に要した時間を Data Visualizer に通知します。
   * @since Data Visualizer v3.3.0
   * @example ```typescript
   * event.renderingProfile.emit({
   *   // ビジュアパーツの描画処理に10.123ミリ秒を要した。
   *   actualDuration: 0.010123,
   * })
   * ```
   */
  renderingProfile: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "renderingProfile">>,
      "emit"
    >,
  |},

  /**
   * [object Object],[object Object],[object Object]
   * @since Data Visualizer v3.8.0
   * @example ```typescript
   * event.measurementCreate.emit()
   * ```
   */
  measurementCreate: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "measurementCreate">>,
      "emit"
    >,
  |},

  /**
   * ビジュアルパーツ内部で発生したエラーを Data Visualizer に通知します。
   * @example ```typescript
   * event.error.emit(new Error('error'))
   * ```
   */
  error: {|
    /**
     * イベントを送信します
     */
    emit: $PropertyType<
      TypedEvent<$PropertyType<ExposerEvents, "error">>,
      "emit"
    >,
  |},
|};

/**
 * @internal
 */
declare export var createVisualPartsEvent: (
  config?: TypedEventConfig | void
) => {|
  dispatcher: {|
    baseURL: {|
      emit: (event: string) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    fontFamilies: {|
      emit: (event: FontFamilies) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    time: {|
      emit: (event: number) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    size: {|
      emit: (event: {|
        width: number,
        height: number,
      |}) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackComparationTime: {|
      emit: (event: number) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackMode: {|
      emit: (event: PlaybackMode) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackStatus: {|
      emit: (event: PlaybackStatus) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackCount: {|
      emit: (event: number) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackRate: {|
      emit: (event: number) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackTimeRange: {|
      emit: (event: PlaybackTimeRange) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    playbackTimeSelectedRange: {|
      emit: (event: PlaybackTimeSelectedRange) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    viewBox: {|
      emit: (event: ViewBox) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    viewGrid: {|
      emit: (event: ViewGrid) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    viewContentFit: {|
      emit: (event: ViewContentFit) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    viewZoom: {|
      emit: (event: ViewZoom) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    viewTimeline: {|
      emit: (event: ViewTimeline) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    backgroundDisplay: {|
      emit: (event: BackgroundDisplay) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    extension: {|
      emit: (event: Extension) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    googleMapsOptions: {|
      emit: (event: GoogleMapsOptions) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    dataSpecification: {|
      emit: (event: {|
        dataIndex: number,
        spec: DataSpecification,
      |}) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    dataSpecifications: {|
      emit: (event: DataSpecification[]) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    dataBindingItem: {|
      emit: (event: DataBindingItem) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    dataBindingItems: {|
      emit: (event: DataBindingItem[]) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    currentData: {|
      emit: (event: {|
        dataIndex: number,
        time: number,
        data: any,
      |}) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    depDatas: {|
      emit: (event: DepData[]) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    values: {|
      emit: (event: Value[]) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    user: {|
      emit: (event: User) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    project: {|
      emit: (event: Project) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    senderEdge: {|
      emit: (event: SenderEdge) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    measurement: {|
      emit: (event: Measurement | null) => void,
      hasOneOrMoreListener: () => boolean,
    |},
    loaded: {|
      once: (listener: (event: void) => void) => void,
      on: (listener: (event: void) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: void) => void) => void,
    |},
    extensionPatch: {|
      once: (listener: (event: Extension) => void) => void,
      on: (listener: (event: Extension) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: Extension) => void) => void,
    |},
    backgroundDisplayToggle: {|
      once: (listener: (event: void) => void) => void,
      on: (listener: (event: void) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: void) => void) => void,
    |},
    timeChange: {|
      once: (listener: (event: TimeChange) => void) => void,
      on: (listener: (event: TimeChange) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: TimeChange) => void) => void,
    |},
    timeChangeWithPageAndRect: {|
      once: (listener: (event: TimeChangeWithPageAndRect) => void) => void,
      on: (listener: (event: TimeChangeWithPageAndRect) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: TimeChangeWithPageAndRect) => void) => void,
    |},
    timeChangeWithPagePosition: {|
      once: (listener: (event: TimeChangeWithPagePosition) => void) => void,
      on: (listener: (event: TimeChangeWithPagePosition) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: TimeChangeWithPagePosition) => void) => void,
    |},
    comparationTimeChangeWithPagePosition: {|
      once: (
        listener: (event: ComparationTimeChangeWithPagePosition) => void
      ) => void,
      on: (
        listener: (event: ComparationTimeChangeWithPagePosition) => void
      ) => {|
        dispose: () => void,
      |},
      off: (
        listener: (event: ComparationTimeChangeWithPagePosition) => void
      ) => void,
    |},
    playbackTimeSelectedRangeChange: {|
      once: (listener: (event: PlaybackTimeSelectedRange) => void) => void,
      on: (listener: (event: PlaybackTimeSelectedRange) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: PlaybackTimeSelectedRange) => void) => void,
    |},
    playbackTimeSelectedRangeChangeStartSelect: {|
      once: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
      on: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => {|
        dispose: () => void,
      |},
      off: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
    |},
    playbackTimeSelectedRangeChangeStartMove: {|
      once: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
      on: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => {|
        dispose: () => void,
      |},
      off: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
    |},
    playbackTimeSelectedRangeChangeStartResizeStart: {|
      once: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
      on: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => {|
        dispose: () => void,
      |},
      off: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
    |},
    playbackTimeSelectedRangeChangeStartResizeEnd: {|
      once: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
      on: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => {|
        dispose: () => void,
      |},
      off: (
        listener: (
          event: PlaybackTimeSelectedRangeChangeWithPageAndRect
        ) => void
      ) => void,
    |},
    playbackTimeSelectedRangeReset: {|
      once: (listener: (event: void) => void) => void,
      on: (listener: (event: void) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: void) => void) => void,
    |},
    captureCreate: {|
      once: (listener: (event: void) => void) => void,
      on: (listener: (event: void) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: void) => void) => void,
    |},
    renderingProfile: {|
      once: (listener: (event: RenderingProfile) => void) => void,
      on: (listener: (event: RenderingProfile) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: RenderingProfile) => void) => void,
    |},
    measurementCreate: {|
      once: (listener: (event: void) => void) => void,
      on: (listener: (event: void) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: void) => void) => void,
    |},
    error: {|
      once: (listener: (event: Error) => void) => void,
      on: (listener: (event: Error) => void) => {|
        dispose: () => void,
      |},
      off: (listener: (event: Error) => void) => void,
    |},
  |},
  exposer: ExposerEvent,
  dispose: () => void,
|};
/**
 * @internal
 */
export type VisualPartsEvent = $Call<
  <R>((...args: any[]) => R) => R,
  typeof createVisualPartsEvent
>;
/**
 * @internal
 */
export type DispatcherEvent = $PropertyType<VisualPartsEvent, "dispatcher">;
/**
 * @internal
 */
export type DispatcherEventType = DispatcherEvents;
