import type { Duration, RelativeTime } from '@datadog/browser-core';
import { ViewLoadingType } from '../../../rawRumEvent.types';
import type { RumConfiguration } from '../../configuration';
export declare const MAX_INP_VALUE: Duration;
export interface InteractionToNextPaint {
    value: Duration;
    targetSelector?: string;
    time?: Duration;
}
/**
 * Track the interaction to next paint (INP).
 * To avoid outliers, return the p98 worst interaction of the view.
 * Documentation: https://web.dev/inp/
 * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts
 */
export declare function trackInteractionToNextPaint(configuration: RumConfiguration, viewStart: RelativeTime, viewLoadingType: ViewLoadingType): {
    getInteractionToNextPaint: () => InteractionToNextPaint | undefined;
    setViewEnd: (viewEndTime: RelativeTime) => void;
    stop: () => void;
};
export declare function trackViewInteractionCount(viewLoadingType: ViewLoadingType): {
    getViewInteractionCount: () => number;
    stopViewInteractionCount: () => void;
};
export declare function isInteractionToNextPaintSupported(): boolean;
