import type { ChannelModel } from 'amqplib';
import type { CommonLogger } from '@lokalise/node-core';
import type { AmqpConfig } from './amqpConnectionResolver.ts';
export type ConnectionReceiver = {
    receiveNewConnection(connection: ChannelModel): Promise<void>;
    close(): Promise<void>;
};
export declare class AmqpConnectionManager {
    private readonly config;
    private readonly logger;
    private readonly connectionReceivers;
    private connection?;
    reconnectsActive: boolean;
    isReconnecting: boolean;
    constructor(config: AmqpConfig, logger: CommonLogger);
    private createConnection;
    getConnectionSync(): ChannelModel | undefined;
    getConnection(): Promise<ChannelModel>;
    reconnect(): Promise<void>;
    init(): Promise<void>;
    close(): Promise<void>;
    subscribeConnectionReceiver(connectionReceiver: ConnectionReceiver): void;
}
