type DistortedDurationMonitor = {
    cleanup: () => void;
    distortedDuration: boolean;
};
/**
 * Monitors if a pages enters a visibility state which will lead to
 * distorted duration measurements (where the measurement uses the
 * requestAnimationFrame api).
 */
export declare const getDistortedDurationMonitor: () => DistortedDurationMonitor;
/**
 * Measures time it takes to render a frame including -> style, paint, layout and composition.
 *
 * How does it work:
 * 1. We mark the beginning of a render with the `startMark`
 * 2. We schedule `requestAnimationFrame` callback for the next frame
 * 3. Framework (e.g. prosemirror) does its magic and mounts dom nodes "synchronously"
 * 4. When the main thread is unblocked our callback gets executed and onMeasureComplete is being called
 *
 * Why does it work:
 * | javascript (framework)           | style | layout | paint | composite | javascript  | ...
 *  | startMark + scheduling rAF |                                                       | rAF callback, endMark
 */
export declare function measureRender(
/**
 * Unique name for the measurement
 *
 * Important: if multiple measureRender events are fired at the same time
 * with the same measure name -- the result will not be correct.
 */
measureName: string, 
/**
 * Call back fired when the measurement completes.
 *
 * Note: when this function is called when the Document.visibilityState is not
 * visible -- the duration is likely to be misleading/inaccurate. This is due
 * to the measurements use of the `requestAnimationFrame` api which only fires
 * when the Document.visibilityState is visible.
 */
onMeasureComplete: ({ duration, startTime, distortedDuration, }: {
    /**
     * Will be true when the measurement takes place in a background tab or some
     * other case which results in the Document.visibilityState not being visible.
     *
     * When true -- the duration value is not useful to provide to consumers. See
     * onMeasureComplete description for more details.
     */
    distortedDuration: boolean;
    duration: number;
    startTime: number;
}) => void): void;
export {};
