import type { TopicDescriptor } from '../ricos-types/index.js';
import type { RicosEventData } from './event-data.js';
import type { EventSubscriber } from './ricos-event.js';
export type SubscriberSyncProcessing = {
    subscriberId: EventSubscriber['id'];
    duration: number;
};
type PublishingMetadata = {
    topic: TopicDescriptor;
    eventId: number;
    data: RicosEventData;
    duration: number;
    timestamp: Date;
};
export type AsyncPublishingMetadata = PublishingMetadata & {
    isAsync: true;
};
export type SyncPublishingMetadata = PublishingMetadata & {
    isAsync: false;
    processings: SubscriberSyncProcessing[];
};
export interface EventLogger {
    log: (metadata: AsyncPublishingMetadata | SyncPublishingMetadata | string) => void;
}
export declare const getEventLogger: (isDebugMode: boolean) => EventLogger;
export {};
//# sourceMappingURL=ricos-event-logger.d.ts.map