import * as pb from '../protos';
import { QueueMessageSendResult, QueuesMessagesPulledResponse } from './queuesTypes';
import { KubeMQClient } from '../client/KubeMQClient';
export declare class QueueStreamHelper {
    private queuesUpStreamHandler;
    private queuesDownstreamHandler;
    /**
     * Sends a message to KubeMQ using a duplex stream.
     * @param kubeMQClient - The KubeMQ client instance.
     * @param queueMessage - The upstream request message to send.
     * @returns A promise that resolves with the result of the send operation.
     */
    sendMessage(kubeMQClient: KubeMQClient, queueMessage: pb.kubemq.QueuesUpstreamRequest): Promise<QueueMessageSendResult>;
    /**
     * Receives a message from KubeMQ using a duplex stream.
     * @param kubeMQClient - The KubeMQ client instance.
     * @param queuesPollRequest - The downstream request to send.
     * @param visibilitySeconds - Visibility timeout for messages.
     * @param autoAckMessages - Indicates whether messages are auto-acknowledged.
     * @returns A promise that resolves with the pulled message response.
     */
    receiveMessage(kubeMQClient: KubeMQClient, queuesPollRequest: pb.kubemq.QueuesDownstreamRequest, visibilitySeconds: number, autoAckMessages: boolean): Promise<QueuesMessagesPulledResponse>;
    /**
     * Creates a `QueueMessageSendResult` object from the upstream response.
     * @param response - The upstream response from KubeMQ.
     * @returns The constructed `QueueMessageSendResult`.
     */
    private createQueueMessageSendResult;
    /**
     * Creates an error result object for failed upstream messages.
     * @param errorMessage - The error message from the failed operation.
     * @returns The constructed `QueueMessageSendResult` indicating failure.
     */
    private createErrorResult;
    /**
     * Creates a `QueuesMessagesPulledResponse` object from the downstream response.
     * @param response - The downstream response from KubeMQ.
     * @param visibilitySeconds - The visibility timeout for pulled messages.
     * @param autoAckMessages - Indicates whether messages are auto-acknowledged.
     * @returns The constructed `QueuesMessagesPulledResponse`.
     */
    private createQueuesMessagesPulledResponse;
    /**
     * Creates an error response object for failed downstream messages.
     * @param errorMessage - The error message from the failed operation.
     * @returns The constructed `QueuesMessagesPulledResponse` indicating failure.
     */
    private createErrorResponse;
}
//# sourceMappingURL=QueueStreamHelper.d.ts.map