export interface Timing { startTime: number; duration: number; } /** * A meter for measuring timings. Measurements are stored using the browser's * performance APIs, which provide high-resolution timestamps, as well as * provides visibility in the browser's developer tooling. */ export declare class TimingMeter { readonly name: string; private readonly perf; private measures; private nextId; constructor(name: string, perf?: Performance); /** * Clears any measurements from the buffer. */ clearMeasurements(): void; /** * Measures the execution time of a function. * * @param target A function to execute and measure. */ measure(target: () => T): T; /** * Measures the time for a promise to resolve, either successfully or not. * * @param target The promise to measure. */ measure(target: Promise): Promise; /** * Returns a list of measurements that have been recorded, and clears the * internal measurement buffer. */ takeMeasurements(): Timing[]; /** * Returns the last measurement to have been recorded, and clears the internal * measurement buffer. */ takeLastMeasurement(): Timing | undefined; private begin; private end; } export declare const paintTime: TimingMeter;