import { ClientProxy } from '@nestjs/microservices';
import eventRoutingConfig from '../event-routing';
import { EventValidator } from '../event-types';
export interface EventPublisherOptions {
    originServiceName: string;
    validator: EventValidator;
    eventNamespace?: string;
}
export declare class EventPublisher {
    private transports;
    private options;
    private routingConfig;
    private validator;
    private eventNamespace;
    constructor(transports: Record<string, ClientProxy>, options: EventPublisherOptions, routingConfig?: typeof eventRoutingConfig);
    private getRouteForEvent;
    private getTransportForEvent;
    publish<T>(eventType: string, body: T): Promise<void>;
    publishWithValidator<T>(eventType: string, body: T, validator: EventValidator): Promise<void>;
    registerSchema(eventType: string, schema: any): void;
    close(): Promise<void>;
}
export { MessagePattern, Payload } from '@nestjs/microservices';
