/**
 * Performance Profiler Tool
 *
 * Provides memory and CPU profiling utilities:
 * - Memory usage snapshots
 * - Heap statistics
 * - CPU timing measurements
 * - Performance marks
 */
export interface MemorySnapshot {
    timestamp: Date;
    heapUsed: number;
    heapTotal: number;
    external: number;
    arrayBuffers: number;
    rss: number;
}
export interface HeapStats {
    totalHeapSize: number;
    usedHeapSize: number;
    heapSizeLimit: number;
    totalPhysicalSize: number;
    totalAvailableSize: number;
    mallocedMemory: number;
    peakMallocedMemory: number;
}
export interface ProfileMeasurement {
    name: string;
    duration: number;
    startTime: number;
    endTime: number;
}
export interface ProfileReport {
    startTime: Date;
    endTime: Date;
    duration: number;
    memoryStart: MemorySnapshot;
    memoryEnd: MemorySnapshot;
    memoryDelta: {
        heapUsed: number;
        rss: number;
    };
    measurements: ProfileMeasurement[];
    heapStats: HeapStats;
}
/**
 * Performance Profiler
 */
export declare class Profiler {
    private measurements;
    private completedMeasurements;
    private startSnapshot;
    private startTime;
    /**
     * Take a memory snapshot
     */
    takeMemorySnapshot(): MemorySnapshot;
    /**
     * Get V8 heap statistics
     */
    getHeapStats(): HeapStats;
    /**
     * Start profiling session
     */
    startSession(): void;
    /**
     * Start timing a measurement
     */
    startMeasure(name: string): void;
    /**
     * End timing a measurement
     */
    endMeasure(name: string): number;
    /**
     * Measure a function execution
     */
    measure<T>(name: string, fn: () => T | Promise<T>): Promise<T>;
    /**
     * End profiling session and get report
     */
    endSession(): ProfileReport;
    /**
     * Force garbage collection (requires --expose-gc flag)
     */
    forceGC(): boolean;
}
/**
 * Format profile report for display
 */
export declare function formatProfileReport(report: ProfileReport): string;
export declare function getProfiler(): Profiler;
export default Profiler;
