import type { RealtimeEventEmitter, RealtimeEventHandler } from './types.js';
/**
 * Simple event emitter for realtime events.
 * Used as a foundation for both client and server-side event handling.
 */
export declare class EventEmitter implements RealtimeEventEmitter {
    private listeners;
    /**
     * Subscribe to an event
     * @returns Unsubscribe function
     */
    on<T = any>(event: string, handler: RealtimeEventHandler<T>): () => void;
    /**
     * Unsubscribe from an event
     */
    off(event: string, handler: RealtimeEventHandler): void;
    /**
     * Emit an event to all subscribers
     */
    emit<T = any>(event: string, data: T): void;
    /**
     * Subscribe to an event for one-time execution
     */
    once<T = any>(event: string, handler: RealtimeEventHandler<T>): () => void;
    /**
     * Remove all listeners for an event or all events
     */
    removeAllListeners(event?: string): void;
    /**
     * Get listener count for an event
     */
    listenerCount(event: string): number;
}
