/**
 * Flowtype definitions for chrome
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.11.0
 * @flow
 */

import { Profile, ProfileGroup } from "../lib/profile";
import { OldCPUProfile } from "./v8cpuFormatter";
export interface TimelineEvent {
  pid: number;
  tid: number;
  ts: number;
  ph: string;
  cat: string;
  name: string;
  dur: number;
  tdur: number;
  tts: number;
  args: {
    [key: string]: any,
  };
  id?: string;
}
declare interface PositionTickInfo {
  line: number;
  ticks: number;
}
declare interface CPUProfileCallFrame {
  columnNumber: number;
  functionName: string;
  lineNumber: number;
  scriptId: string;
  url: string;
}
export interface CPUProfileNode {
  callFrame: CPUProfileCallFrame;
  hitCount: number;
  id: number;
  children?: number[];
  positionTicks?: PositionTickInfo[];
  parent?: CPUProfileNode;
}
export interface CPUProfile {
  startTime: number;
  endTime: number;
  nodes: CPUProfileNode[];
  samples: number[];
  timeDeltas: number[];
}
declare export function isChromeTimeline(rawProfile: any): boolean;
declare export function importFromChromeTimeline(
  events: TimelineEvent[],
  fileName: string
): ProfileGroup;
declare export function importFromChromeCPUProfile(
  chromeProfile: CPUProfile
): Profile;
declare export function importFromOldV8CPUProfile(
  content: OldCPUProfile
): Profile;
declare export {};
