import { TExchangeTransferable } from '../exchange/index.js';
import { IQueueParams } from '../queue/index.js';
import { MessageState } from './message-state.js';
import { ProducibleMessage } from './producible-message.js';
import { EMessagePropertyStatus, IMessageParams, IMessageTransferable } from './types/index.js';
export declare class MessageEnvelope {
    readonly producibleMessage: ProducibleMessage;
    protected messageState: MessageState;
    protected status: EMessagePropertyStatus;
    protected destinationQueue: IQueueParams | null;
    protected consumerGroupId: string | null;
    constructor(producibleMessage: ProducibleMessage);
    getMessageState(): MessageState;
    setMessageState(m: MessageState): MessageEnvelope;
    getId(): string;
    getSetExpired(): boolean;
    getStatus(): EMessagePropertyStatus;
    setDestinationQueue(queue: IQueueParams): MessageEnvelope;
    setStatus(s: EMessagePropertyStatus): MessageEnvelope;
    getDestinationQueue(): IQueueParams;
    hasNextDelay(): boolean;
    getNextScheduledTimestamp(): number;
    getExchange(): TExchangeTransferable;
    toString(): string;
    setConsumerGroupId(consumerGroupId: string): MessageEnvelope;
    getConsumerGroupId(): string | null;
    toJSON(): IMessageParams;
    transfer(): IMessageTransferable;
    hasRetryThresholdExceeded(): boolean;
    isSchedulable(): boolean;
    isPeriodic(): boolean;
}
//# sourceMappingURL=message-envelope.d.ts.map