export interface HmrTimingDetails {
    emit?: boolean;
    file?: string;
    hooks?: Record<string, HmrTimingHookSummary>;
    metric?: 'hook' | 'total';
    memoryDebug?: Record<string, unknown> | undefined;
    wallMs?: number;
}
export interface HmrTimingHookSummary {
    count: number;
    durationMs: number;
    maxMs: number;
}
type HmrTimingBundler = 'vite' | 'webpack' | 'gulp';
export interface HmrTimingRecorder {
    emitTotal: (phase?: string) => void;
    measure: <T>(phase: string, task: () => T | Promise<T>, details?: HmrTimingDetails) => Promise<T>;
    record: (phase: string, durationMs: number, details?: HmrTimingDetails) => void;
}
export declare function shouldEmitHmrTiming(): boolean;
export declare function emitHmrTiming(bundler: HmrTimingBundler, phase: string, durationMs: number, details?: HmrTimingDetails): void;
export declare function createHmrTimingRecorder(bundler: HmrTimingBundler): HmrTimingRecorder;
export {};
