import { EventEnvelope, EventValidator } from '../event-types';
export type EventHandler<T = any> = (body: T, header: EventEnvelope['header'], raw?: any) => Promise<void> | void;
export interface EventConsumerOptions {
    handlers: Record<string, EventHandler>;
    onError?: (err: Error, eventType: string, envelope: any) => void;
    validator: EventValidator;
    logUnregisteredEvents?: 'none' | 'debug' | 'info' | 'warn';
}
export declare class EventConsumer {
    private handlers;
    private onError?;
    private validator;
    private logUnregisteredEvents;
    constructor(options: EventConsumerOptions);
    handleMessage(rawMessage: any): Promise<void>;
    private isValidEnvelope;
    registerHandler<T>(eventType: string, handler: EventHandler<T>): void;
    unregisterHandler(eventType: string): void;
    getRegisteredEventTypes(): string[];
}
