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

import { Frame, CallTreeNode } from "./profile";
import { Rect } from "./math";
export interface FlamechartFrame {
  node: CallTreeNode;
  start: number;
  end: number;
  parent: FlamechartFrame | null;
  children: FlamechartFrame[];
}
declare type StackLayer = FlamechartFrame[];
declare interface FlamechartDataSource {
  getTotalWeight(): number;
  formatValue(v: number): string;
  forEachCall(
    openFrame: (node: CallTreeNode, value: number) => void,
    closeFrame: (node: CallTreeNode, value: number) => void
  ): void;
  getColorBucketForFrame(f: Frame): number;
}
declare export class Flamechart {
  getTotalWeight(): number;
  getLayers(): StackLayer[];
  getColorBucketForFrame(frame: Frame): number;
  getMinFrameWidth(): number;
  formatValue(v: number): string;
  getClampedViewportWidth(viewportWidth: number): number;
  getClampedConfigSpaceViewportRect(x: {
    configSpaceViewportRect: Rect,
    renderInverted?: boolean,
  }): Rect;
  constructor(source: FlamechartDataSource): this;
}
declare export {};
