import type { Message } from 'amqplib';
import type { DelayType } from '../interface';
/**
 * Transform an event string (event class name) to a RabbitMQ event.
 *
 * @example StoreCreated => "store.created"
 * @example OrderStatusUpdated => "order.status.updated"
 * @example Fanout => "#"
 */
export declare function toEventName(className: string): string;
/**
 * Convert event to a producer class name.
 *
 * @example "user.created" => UserCreated
 */
export declare function toEventClassName(event: string): string;
/**
 * Generate queue name based on Event/Handler class name
 *
 * @example StoreNotifierHandler => "store_notifier"
 * @example OrderStatusUpdatedHandler => "order_status_updated";
 */
export declare function toSnakeCase(className: string | Record<string, unknown>): string;
export declare function calculateDelay(delay: DelayType, retryCount: number): number;
export declare function generateQueuePrefixFromPackageName(): string | undefined;
export declare function getMessageExchange(message: Message): string;
export declare function appInTestingMode(): boolean;
