import { DatabaseClient } from '../common/database';
import { ListenerConfig } from '../common/listener-config';
import { TransactionalLogger } from '../common/logger';
import { TransactionalMessage } from './transactional-message';
export interface MessageStorage {
    (message: TransactionalMessage, client: DatabaseClient): Promise<void>;
}
/**
 * Initialize the message storage to store outbox or inbox messages in the corresponding table.
 * @param config The configuration object that defines the values on how to connect to the database and general settings.
 * @param logger A logger instance for logging trace up to error logs
 * @returns Initializes the function to store the outbox or inbox message data to the database and provides the shutdown action.
 */
export declare const initializeMessageStorage: ({ settings, outboxOrInbox, }: Pick<ListenerConfig, "settings" | "outboxOrInbox">, logger: TransactionalLogger) => MessageStorage;
//# sourceMappingURL=initialize-message-storage.d.ts.map