import { TransactionalLogger } from '../common/logger';
import { GeneralMessageHandler } from '../handler/general-message-handler';
import { TransactionalMessageHandler } from '../handler/transactional-message-handler';
import { ReplicationListenerConfig } from './config';
import { ReplicationMessageStrategies } from './replication-strategies';
/**
 * Initialize the listener to watch for outbox or inbox table inserts via
 * PostgreSQL logical replication.
 * @param config The configuration object with required values to connect to the WAL.
 * @param messageHandlers A list of message handlers to handle specific messages or a single general message handler that handles all messages.
 * @param logger A logger instance for logging trace up to error logs
 * @param strategies Strategies to provide custom logic for handling specific scenarios
 * @returns Functions for a clean shutdown.
 */
export declare const initializeReplicationMessageListener: (config: ReplicationListenerConfig, messageHandlers: TransactionalMessageHandler[] | GeneralMessageHandler, logger: TransactionalLogger, strategies?: Partial<ReplicationMessageStrategies>) => [shutdown: {
    (): Promise<void>;
}];
//# sourceMappingURL=replication-message-listener.d.ts.map