// DO NOT EDIT. This file is automatically generated.

export namespace pivot {
	export interface Request {
		group_by: string[] | null;
		operation: pivot.Operation;
		summary: pivot.Operation[] | null;
	}
}

export interface Go2TS {
}

export interface Alert {
	id_as_string: string;
	display_name: string;
	query: string;
	alert: string;
	issue_tracker_component: SerializesToString;
	interesting: number;
	bug_uri_template: string;
	algo: ClusterAlgo;
	step: StepDetection;
	state: ConfigState;
	owner: string;
	step_up_only: boolean;
	direction: Direction;
	radius: number;
	k: number;
	group_by: string;
	sparse: boolean;
	minimum_num: number;
	category: string;
}

export interface AlertsStatus {
	alerts: number;
}

export interface ValuePercent {
	value: string;
	percent: number;
}

export interface StepFit {
	least_squares: number;
	turning_point: number;
	step_size: number;
	regression: number;
	status: StepFitStatus;
}

export interface ColumnHeader {
	offset: CommitNumber;
	timestamp: number;
}

export interface ClusterSummary {
	centroid: number[] | null;
	shortcut: string;
	param_summaries2: ValuePercent[] | null;
	step_fit: StepFit | null;
	step_point: ColumnHeader | null;
	num: number;
	ts: string;
	notification_id?: string;
}

export interface FavoritesSectionLinkConfig {
	text: string;
	href: string;
	description: string;
}

export interface FavoritesSectionConfig {
	name: string;
	links: FavoritesSectionLinkConfig[] | null;
}

export interface Favorites {
	sections: FavoritesSectionConfig[] | null;
}

export interface QueryConfig {
	include_params?: string[] | null;
	default_param_selections?: { [key: string]: string[] | null } | null;
	default_url_values?: { [key: string]: string } | null;
}

export interface Commit {
	offset: CommitNumber;
	hash: string;
	ts: number;
	author: string;
	message: string;
	url: string;
	body: string;
}

export interface DataFrame {
	traceset: TraceSet;
	header: (ColumnHeader | null)[] | null;
	paramset: ReadOnlyParamSet;
	skip: number;
}

export interface Anomaly {
	id: number;
	test_path: string;
	bug_id: number;
	start_revision: number;
	end_revision: number;
	is_improvement: boolean;
	recovered: boolean;
	state: string;
	statistic: string;
	units: string;
	degrees_of_freedom: number;
	median_before_anomaly: number;
	median_after_anomaly: number;
	p_value: number;
	segment_size_after: number;
	segment_size_before: number;
	std_dev_before_anomaly: number;
	t_statistic: number;
}

export interface FrameResponse {
	dataframe: DataFrame | null;
	skps: number[] | null;
	msg: string;
	display_mode: FrameResponseDisplayMode;
	anomalymap: AnomalyMap;
}

export interface TriageStatus {
	status: Status;
	message: string;
}

export interface Regression {
	low: ClusterSummary | null;
	high: ClusterSummary | null;
	frame: FrameResponse | null;
	low_status: TriageStatus;
	high_status: TriageStatus;
}

export interface RegressionAtCommit {
	cid: Commit;
	regression: Regression | null;
}

export interface FrameRequest {
	begin: number;
	end: number;
	formulas: string[] | null;
	queries: string[] | null;
	keys: string;
	tz: string;
	num_commits: number;
	request_type: RequestType;
	pivot: pivot.Request | null;
}

export interface AlertUpdateResponse {
	IDAsString: string;
}

export interface CIDHandlerResponse {
	commitSlice: Commit[] | null;
	logEntry: string;
}

export interface ClusterStartResponse {
	id: string;
}

export interface CommitDetailsRequest {
	cid: CommitNumber;
	traceid: string;
}

export interface CountHandlerRequest {
	q: string;
	begin: number;
	end: number;
}

export interface CountHandlerResponse {
	count: number;
	paramset: ReadOnlyParamSet;
}

export interface RangeRequest {
	offset: CommitNumber;
	begin: number;
	end: number;
}

export interface RegressionRangeRequest {
	begin: number;
	end: number;
	subset: Subset;
	alert_filter: string;
}

export interface RegressionRow {
	cid: Commit;
	columns: (Regression | null)[] | null;
}

export interface RegressionRangeResponse {
	header: (Alert | null)[] | null;
	table: (RegressionRow | null)[] | null;
	categories: string[] | null;
}

export interface ShiftRequest {
	begin: CommitNumber;
	end: CommitNumber;
}

export interface ShiftResponse {
	begin: number;
	end: number;
}

export interface SkPerfConfig {
	radius: number;
	key_order: string[] | null;
	num_shift: number;
	interesting: number;
	step_up_only: boolean;
	commit_range_url: string;
	demo: boolean;
	display_group_by: boolean;
	hide_list_of_commits_on_explore: boolean;
	notifications: NotifierTypes;
	fetch_chrome_perf_anomalies: boolean;
	feedback_url: string;
	chat_url: string;
	help_url_override: string;
	trace_format: TraceFormat;
}

export interface TriageRequest {
	cid: CommitNumber;
	alert: Alert;
	triage: TriageStatus;
	cluster_type: string;
}

export interface TriageResponse {
	bug: string;
}

export interface TryBugRequest {
	bug_uri_template: string;
}

export interface TryBugResponse {
	url: string;
}

export interface CreateBisectRequest {
	comparison_mode: string;
	start_git_hash: string;
	end_git_hash: string;
	configuration: string;
	benchmark: string;
	story: string;
	chart: string;
	statistic: string;
	comparison_magnitude: string;
	pin: string;
	project: string;
	bug_id: string;
	user: string;
}

export interface CreateBisectResponse {
	jobId: string;
	jobUrl: string;
}

export interface FullSummary {
	summary: ClusterSummary;
	triage: TriageStatus;
	frame: FrameResponse;
}

export interface Domain {
	n: number;
	end: string;
	offset: number;
}

export interface RegressionDetectionRequest {
	alert: Alert | null;
	domain: Domain;
	step: number;
	total_queries: number;
}

export interface ClusterSummaries {
	Clusters: (ClusterSummary | null)[] | null;
	StdDevThreshold: number;
	K: number;
}

export interface RegressionDetectionResponse {
	summary: ClusterSummaries | null;
	frame: FrameResponse | null;
}

export interface TryBotRequest {
	kind: TryBotRequestKind;
	cl: CL;
	patch_number: number;
	commit_number: CommitNumber;
	query: string;
}

export interface TryBotResult {
	params: Params;
	median: number;
	lower: number;
	upper: number;
	stddevRatio: number;
	values: number[] | null;
}

export interface TryBotResponse {
	header: (ColumnHeader | null)[] | null;
	results: TryBotResult[] | null;
	paramset: ReadOnlyParamSet;
}

export namespace progress {
	export interface Message {
		key: string;
		value: string;
	}
}

export namespace progress {
	export interface SerializedProgress {
		status: progress.Status;
		messages: progress.Message[];
		results?: any;
		url: string;
	}
}

export namespace ingest {
	export interface SingleMeasurement {
		value: string;
		measurement: number;
	}
}

export namespace ingest {
	export interface Result {
		key: { [key: string]: string } | null;
		measurement?: number;
		measurements?: { [key: string]: ingest.SingleMeasurement[] | null } | null;
	}
}

export namespace ingest {
	export interface Format {
		version: number;
		git_hash: string;
		issue?: CL;
		patchset?: string;
		key?: { [key: string]: string } | null;
		results: ingest.Result[] | null;
		links?: { [key: string]: string } | null;
	}
}

export type Params = { [key: string]: string };

export type ParamSet = { [key: string]: string[] };

export type ReadOnlyParamSet = { [key: string]: string[] };

export type Trace = number[];

export type TraceSet = { [key: string]: Trace };

export namespace pivot { export type Operation = 'sum' | 'avg' | 'geo' | 'std' | 'count' | 'min' | 'max'; }

export type SerializesToString = string;

export type ClusterAlgo = 'kmeans' | 'stepfit';

export type StepDetection = '' | 'absolute' | 'const' | 'percent' | 'cohen' | 'mannwhitneyu';

export type ConfigState = 'ACTIVE' | 'DELETED';

export type Direction = 'UP' | 'DOWN' | 'BOTH';

export type StepFitStatus = 'Low' | 'High' | 'Uninteresting';

export type CommitNumber = number;

export type FrameResponseDisplayMode = 'display_query_only' | 'display_plot' | 'display_pivot_table' | 'display_pivot_plot' | 'display_spinner';

export type CommitNumberAnomalyMap = { [key: number]: Anomaly } | null;

export type AnomalyMap = { [key: string]: CommitNumberAnomalyMap } | null;

export type Status = '' | 'positive' | 'negative' | 'untriaged';

export type RequestType = 0 | 1;

export type Subset = 'all' | 'regressions' | 'untriaged';

export type NotifierTypes = 'html_email' | 'markdown_issuetracker' | 'none';

export type TraceFormat = 'chrome' | '';

export type TryBotRequestKind = 'trybot' | 'commit';

export type CL = string;

export type ProcessState = 'Running' | 'Success' | 'Error';

export namespace progress { export type Status = 'Running' | 'Finished' | 'Error'; }
