/**
 * RuntimeMeter — lightweight OTel-compatible metric instruments.
 *
 * Provides Counter, Histogram, and Gauge instruments without depending
 * on the @opentelemetry/* packages.
 *
 * All operations are synchronous and allocation-light. Label sets are
 * serialised to a stable string key for Map lookups.
 */
import type { Counter, Gauge, Histogram, MeterConfig } from './types.js';
/**
 * RuntimeMeter — creates and caches named metric instruments.
 *
 * Usage:
 * ```ts
 * const turns = meter.counter('turn.completed');
 * turns.add(1, { provider: 'anthropic' });
 *
 * const latency = meter.histogram('llm.latency.ms');
 * latency.record(342, { model: 'claude-3-5-sonnet' });
 *
 * const activeConns = meter.gauge('mcp.connections.active');
 * activeConns.set(3);
 * ```
 */
export declare class RuntimeMeter {
    private readonly config;
    private readonly _counters;
    private readonly _histograms;
    private readonly _gauges;
    constructor(config: MeterConfig);
    /** Return the meter's instrumentation scope name. */
    get scope(): string;
    /**
     * Get or create a named counter (monotonically increasing).
     * Repeated calls with the same name return the same instrument.
     */
    counter(name: string): Counter;
    /**
     * Get or create a named histogram (distribution of values).
     * Repeated calls with the same name return the same instrument.
     */
    histogram(name: string): Histogram;
    /**
     * Get or create a named gauge (point-in-time value).
     * Repeated calls with the same name return the same instrument.
     */
    gauge(name: string): Gauge;
    /**
     * Reset all accumulated values on every registered instrument.
     * Intended for test isolation only — clears counter sums, histogram accumulators,
     * and gauge values on the singleton meter so tests do not bleed state.
     */
    reset(): void;
}
//# sourceMappingURL=meter.d.ts.map