/** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { SourceMapper } from './sourcemapper/sourcemapper'; import { getNativeThreadId } from './time-profiler-bindings'; import { GenerateTimeLabelsFunction, TimeProfilerMetrics } from './v8-types'; type Microseconds = number; type Milliseconds = number; export interface TimeProfilerOptions { /** time in milliseconds for which to collect profile. */ durationMillis?: Milliseconds; /** average time in microseconds between samples */ intervalMicros?: Microseconds; sourceMapper?: SourceMapper; /** * This configuration option is experimental. * When set to true, functions will be aggregated at the line level, rather * than at the function level. * This defaults to false. */ lineNumbers?: boolean; withContexts?: boolean; workaroundV8Bug?: boolean; collectCpuTime?: boolean; collectAsyncId?: boolean; useCPED?: boolean; } export declare function profile(options?: TimeProfilerOptions): Promise; export declare function start(options?: TimeProfilerOptions): void; /** * Serializes the profile inside a native callback while the V8 profile is * still alive. This reduces memory overhead. */ export declare function stop(restart?: boolean, generateLabels?: GenerateTimeLabelsFunction, lowCardinalityLabels?: string[]): any; export declare function getState(): any; export declare function setContext(context?: object): void; export declare function runWithContext(context: object, f: (...args: TArgs) => R, ...args: TArgs): R; export declare function getContext(): any; export declare function getMetrics(): TimeProfilerMetrics; export declare function isStarted(): boolean; export declare function v8ProfilerStuckEventLoopDetected(): number; export declare const constants: { kSampleCount: any; GARBAGE_COLLECTION_FUNCTION_NAME: string; NON_JS_THREADS_FUNCTION_NAME: string; }; export { getNativeThreadId };