import type { Options } from 'amqplib';
import type { AMQPPublisherOptions } from './AbstractAmqpPublisher.ts';
import { AbstractAmqpPublisher } from './AbstractAmqpPublisher.ts';
import type { AMQPDependencies, AMQPQueueCreationConfig, AMQPQueueLocator } from './AbstractAmqpService.ts';
export type AmqpQueueMessageOptions = {
    publishOptions: Options.Publish;
};
export declare abstract class AbstractAmqpQueuePublisher<MessagePayloadType extends object> extends AbstractAmqpPublisher<MessagePayloadType, AmqpQueueMessageOptions, AMQPQueueCreationConfig, AMQPQueueLocator> {
    protected readonly queueName: string;
    constructor(dependencies: AMQPDependencies, options: AMQPPublisherOptions<MessagePayloadType, AMQPQueueCreationConfig, AMQPQueueLocator>);
    protected publishInternal(message: Buffer, options: AmqpQueueMessageOptions): void;
    publish(message: MessagePayloadType, options?: AmqpQueueMessageOptions): void;
    protected resolveTopicOrQueue(): string;
    protected createMissingEntities(): Promise<void>;
}
