import { Metric, MetricCategory, MetricsOutput } from './types.js'; export declare class MetricsCollector { private metrics; /** * Record a metric entry. * * @param category - The metric category (e.g., "hub-traversal") * @param data - The metric data (typed) */ record(category: MetricCategory, data: T): void; /** * Record multiple metrics of the same category at once. * @param category * @param data */ recordBatch(category: MetricCategory, data: T[]): void; /** * Get all metrics for a category. * @param category */ get(category: MetricCategory): Metric[]; /** * Get all metrics as a record. */ getAll(): Record; /** * Clear all metrics (useful for testing). */ clear(): void; /** * Check if any metrics have been collected. */ isEmpty(): boolean; /** * Get count of metrics by category. * @param category */ count(category?: MetricCategory): number; /** * Serialize to MetricsOutput format for JSON writing. */ serialize(): MetricsOutput; } /** * Global singleton instance for convenience. * Can also create individual instances for isolation. */ export declare const metrics: MetricsCollector; //# sourceMappingURL=collector.d.ts.map