import type { ClocksState, Duration, Observable } from '@datadog/browser-core';
import type { ViewLoadingType } from '../../../rawRumEvent.types';
import type { RumConfiguration } from '../../configuration';
import type { LifeCycle } from '../../lifeCycle';
import type { CumulativeLayoutShift } from './trackCumulativeLayoutShift';
import type { InteractionToNextPaint } from './trackInteractionToNextPaint';
import type { ScrollMetrics } from './trackScrollMetrics';
export interface CommonViewMetrics {
    loadingTime?: Duration;
    cumulativeLayoutShift?: CumulativeLayoutShift;
    interactionToNextPaint?: InteractionToNextPaint;
    scroll?: ScrollMetrics;
}
export declare function trackCommonViewMetrics(lifeCycle: LifeCycle, domMutationObservable: Observable<void>, windowOpenObservable: Observable<void>, configuration: RumConfiguration, scheduleViewUpdate: () => void, loadingType: ViewLoadingType, viewStart: ClocksState): {
    stop: () => void;
    stopINPTracking: () => void;
    setLoadEvent: (loadEvent: Duration) => void;
    setViewEnd: (viewEndTime: import("@datadog/browser-core").RelativeTime) => void;
    getCommonViewMetrics: () => CommonViewMetrics;
};
