/**
 * Ring Buffer for Trace Events
 *
 * Stores trace events in a fixed-size circular buffer.
 * Oldest events are evicted when the buffer is full.
 */
import type { TraceEventWithId, TraceSearchFilter, TraceEventType } from "../types.js";
export declare class EventBuffer {
    private buffer;
    private maxSize;
    constructor(maxSize?: number);
    /**
     * Add an event to the buffer
     */
    push(event: TraceEventWithId): void;
    /**
     * Get all events
     */
    getAll(): TraceEventWithId[];
    /**
     * Get recent events with optional limit
     */
    getRecent(limit?: number, types?: TraceEventType[]): TraceEventWithId[];
    /**
     * Get events by session ID
     */
    getBySession(sessionId: string): TraceEventWithId[];
    /**
     * Search events with filters
     */
    search(filter: TraceSearchFilter): TraceEventWithId[];
    /**
     * Get errors and warnings
     */
    getErrors(): TraceEventWithId[];
    /**
     * Get events by span ID
     */
    getBySpan(spanId: string): TraceEventWithId[];
    /**
     * Get event by ID
     */
    getById(id: string): TraceEventWithId | undefined;
    /**
     * Clear all events
     */
    clear(): void;
    /**
     * Get buffer size
     */
    size(): number;
}
//# sourceMappingURL=event-buffer.d.ts.map