import type { PublisherBaseEventType } from '../events/baseEventSchemas.ts'; import type { CommonEventDefinition } from '../events/eventTypes.ts'; import type { PublisherMessageMetadataType } from './baseMessageSchemas.ts'; export type IdGenerator = () => string; export type TimestampGenerator = () => string; export type MetadataFillerOptions = { serviceId: string; idGenerator?: IdGenerator; timestampGenerator?: TimestampGenerator; defaultVersion?: string; }; export type MetadataFiller = { produceMetadata(currentMessage: T, eventDefinition: D, precedingMessageMetadata?: M): M; produceId(): string; produceTimestamp(): string; produceCurrentServiceId(): string; }; export declare class CommonMetadataFiller implements MetadataFiller { private readonly serviceId; readonly produceId: IdGenerator; readonly produceTimestamp: TimestampGenerator; private readonly defaultVersion; constructor(options: MetadataFillerOptions); produceCurrentServiceId(): string; produceMetadata(_currentMessage: PublisherBaseEventType, eventDefinition: Pick, precedingMessageMetadata?: Omit): PublisherMessageMetadataType; }