import { Schema } from 'avsc'; import { DomainEventMessage } from 'cm-schema-event'; import { DomainEventCipher, DomainEventConsumer, DomainEventHandler, DomainEventProducer, ExceptionHandler, Registry } from '../domain-event'; export type KafkaConsumerConfig = { topic: string; groupId?: string; appendOrdinalIndex?: boolean; disableSchemaRegistry?: Registry | boolean | null; heartbeatTimeout?: number; url?: string; cipher?: DomainEventCipher; ksn?: string; bdkSet?: string; }; export declare class BaseEventProducer { protected producer: DomainEventProducer; readonly schemaName: string; constructor(topics: string[], schema: Schema | Record, metadataSchema?: string | Record); term(): Promise; protected publish(message: DomainEventMessage, ignoreError?: boolean, overrides?: any): Promise; get topics(): string[]; emit(body: T, ignoreError?: boolean, correlationId?: string, correlationTopic?: string, eventId?: string, overrides?: any): Promise; } export declare class BaseEventConsumer { protected consumer: DomainEventConsumer; constructor(topic: string, appendOrdinalIndex?: boolean); term(): Promise; subscribe(handler: DomainEventHandler, exceptionHandler?: ExceptionHandler): Promise; } export declare class BaseEventConsumerEx { protected consumer: DomainEventConsumer; constructor(config: KafkaConsumerConfig); term(): Promise; subscribe(handler: DomainEventHandler, exceptionHandler?: ExceptionHandler): Promise; }