/**
 * PerformanceMonitor - Performance monitoring and profiling utility for canvas-table.
 *
 * Provides:
 * - performance.mark / performance.measure wrappers
 * - Development mode performance warnings
 * - Frame rate monitoring
 * - Render timing statistics
 */
/** Log level for debug output */
export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'verbose';
/** Performance monitor configuration */
export interface PerformanceMonitorConfig {
    /** Enable performance monitoring (default: false) */
    enabled: boolean;
    /** Log level for console output (default: 'warn') */
    logLevel: LogLevel;
    /** Row count threshold for performance warning (default: 5000) */
    largeDataThreshold: number;
    /** Column count threshold for performance warning (default: 50) */
    largeColumnThreshold: number;
    /** Frame time warning threshold in ms (default: 16.67 for 60fps) */
    frameTimeThreshold: number;
}
/** Render timing entry */
interface TimingEntry {
    name: string;
    startTime: number;
    duration: number;
}
export declare class PerformanceMonitor {
    private config;
    private timings;
    private frameCount;
    private lastFpsTime;
    private currentFps;
    private markMap;
    constructor(config?: Partial<PerformanceMonitorConfig>);
    /**
     * Update configuration
     */
    setConfig(config: Partial<PerformanceMonitorConfig>): void;
    /**
     * Check if monitoring is enabled
     */
    get isEnabled(): boolean;
    /**
     * Set debug/enabled state
     */
    setEnabled(enabled: boolean): void;
    /**
     * Place a performance mark
     */
    mark(name: string): void;
    /**
     * Measure duration between two marks
     */
    measure(name: string, startMark: string, endMark?: string): number;
    /**
     * Call once per frame to track FPS
     */
    trackFrame(): void;
    /**
     * Get current FPS
     */
    getFps(): number;
    /**
     * Check data size and emit warnings if thresholds are exceeded
     */
    checkDataSize(rowCount: number, columnCount: number): void;
    /**
     * Warn if a render frame takes too long
     */
    checkFrameTime(duration: number): void;
    /**
     * Get collected timing statistics
     */
    getTimings(): ReadonlyArray<TimingEntry>;
    /**
     * Get average duration for a named measure
     */
    getAverageDuration(name: string): number;
    /**
     * Clear all collected timings
     */
    clearTimings(): void;
    /**
     * Log a message at the specified level
     */
    log(level: Exclude<LogLevel, 'silent'>, message: string): void;
}
/**
 * Get or create the global PerformanceMonitor instance
 */
export declare function getPerformanceMonitor(config?: Partial<PerformanceMonitorConfig>): PerformanceMonitor;
export {};
