type OperationTiming = {
    count: number;
    totalMs: number;
    wallMs: number;
    maxMs: number;
    slowest: Array<{
        durationMs: number;
        resource: string;
    }>;
};
export declare const roundMs: (value: number) => number;
export type ReactRouterPerformanceReport = {
    environment: string;
    compilerLifecycleMs?: number;
    operations: Record<string, OperationTiming>;
};
export type ReactRouterPerformanceProfiler = {
    record<T>(environment: string | undefined, operation: string, resource: string, callback: () => Promise<T>): Promise<T>;
    recordSync<T>(environment: string | undefined, operation: string, resource: string, callback: () => T): T;
    flush(environment: string | undefined, details?: Pick<ReactRouterPerformanceReport, 'compilerLifecycleMs'>): void;
};
export declare const createReactRouterPerformanceProfiler: ({ enabled, log, }: {
    enabled: boolean;
    log: (message: string) => void;
}) => ReactRouterPerformanceProfiler;
export {};
