/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Message as MessagePB } from '../../proto/apache/rocketmq/v2/definition_pb';
import { Endpoints, MessageQueue } from '../route';
export declare class MessageView {
    readonly messageId: string;
    readonly topic: string;
    readonly body: Buffer;
    readonly corrupted: boolean;
    readonly transportDeliveryTimestamp?: Date;
    readonly tag?: string;
    readonly messageGroup?: string;
    readonly deliveryTimestamp?: Date;
    readonly keys: string[];
    readonly bornHost: string;
    readonly bornTimestamp?: Date;
    deliveryAttempt?: number;
    readonly endpoints: Endpoints;
    readonly receiptHandle: string;
    readonly offset?: number;
    readonly decodeTimestamp: Date;
    readonly properties: Map<string, string>;
    readonly liteTopic?: string;
    readonly priority?: number;
    constructor(message: MessagePB, messageQueue?: MessageQueue, transportDeliveryTimestamp?: Date);
    /**
     * Get the lite topic, which makes sense only when the topic type is LITE.
     *
     * @return lite topic, which is optional, undefined means lite topic is not specified.
     */
    getLiteTopic(): string | undefined;
    /**
     * Get the priority of the message, which makes sense only when topic type is priority.
     *
     * @return message priority, which is optional, undefined means priority is not specified.
     */
    getPriority(): number | undefined;
    /**
     * Get the unique id of the message.
     *
     * @return unique id.
     */
    getMessageId(): string;
    /**
     * Get the topic of the message, which is the first classifier for the message.
     *
     * @return topic of the message.
     */
    getTopic(): string;
    /**
     * Get the deep copy of the message body, which means any modification of the return value does not
     * affect the built-in message body.
     *
     * @return the deep copy of message body.
     */
    getBody(): Buffer;
    /**
     * Get the deep copy of message properties, which makes the modifies of return value does
     * not affect the message itself.
     *
     * @return the deep copy of message properties.
     */
    getProperties(): Map<string, string>;
    /**
     * Get the tag of the message, which is the second classifier besides the topic.
     *
     * @return the tag of message, which is optional, undefined means tag does not exist.
     */
    getTag(): string | undefined;
    /**
     * Get the key collection of the message, which means any modification of the return value does not affect the
     * built-in message key collection.
     *
     * @return copy of the key collection of the message, empty array means message key is not specified.
     */
    getKeys(): string[];
    /**
     * Get the message group, which makes sense only when the topic type is FIFO(First In, First Out).
     *
     * @return message group, which is optional, undefined means message group is not specified.
     */
    getMessageGroup(): string | undefined;
    /**
     * Get the expected delivery timestamp, which makes sense only when the topic type is delay.
     *
     * @return message expected delivery timestamp, which is optional, undefined means delivery timestamp is not specified.
     */
    getDeliveryTimestamp(): Date | undefined;
    /**
     * Get the born host of the message.
     *
     * @return born host of the message.
     */
    getBornHost(): string;
    /**
     * Get the born timestamp of the message.
     *
     * <p>Born time means the timestamp that the message is prepared to send rather than the timestamp the
     * Message was built.
     *
     * @return born timestamp of the message.
     */
    getBornTimestamp(): Date | undefined;
    /**
     * Get the delivery attempt for the message.
     *
     * @return delivery attempt.
     */
    getDeliveryAttempt(): number | undefined;
    /**
     * Increment the delivery attempt and return the new value.
     * Used by FIFO retry logic to track redelivery attempts.
     *
     * @return the incremented delivery attempt
     */
    incrementAndGetDeliveryAttempt(): number;
}
