/**
 * Game Iframe SDK - Event Emitter
 * Simple typed event emitter for SDK
 */
export type EventHandler<T = any> = (data: T) => void;
export declare class EventEmitter<Events extends Record<string, any>> {
    private handlers;
    /**
     * Subscribe to an event
     */
    on<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void;
    /**
     * Subscribe to an event (once)
     */
    once<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): () => void;
    /**
     * Unsubscribe from an event
     */
    off<K extends keyof Events>(event: K, handler: EventHandler<Events[K]>): void;
    /**
     * Emit an event
     */
    emit<K extends keyof Events>(event: K, data: Events[K]): void;
    /**
     * Remove all handlers for an event (or all events)
     */
    removeAllListeners(event?: keyof Events): void;
}
//# sourceMappingURL=EventEmitter.d.ts.map