import { IExchangeParsedParams } from '../../exchange/index.js';
import { IQueueParams } from '../../queue-manager/index.js';
import { IMessageStateTransferable } from './message-state.js';
export declare enum EMessagePriority {
    HIGHEST = 0,
    VERY_HIGH = 1,
    HIGH = 2,
    ABOVE_NORMAL = 3,
    NORMAL = 4,
    LOW = 5,
    VERY_LOW = 6,
    LOWEST = 7
}
export declare enum EMessageProperty {
    ID = 0,
    STATUS = 1,
    MESSAGE = 2,
    SCHEDULED_AT = 3,
    PUBLISHED_AT = 4,
    PROCESSING_STARTED_AT = 5,
    DEAD_LETTERED_AT = 6,
    ACKNOWLEDGED_AT = 7,
    UNACKNOWLEDGED_AT = 8,
    LAST_UNACKNOWLEDGED_AT = 9,
    LAST_SCHEDULED_AT = 10,
    LAST_PROCESSED_AT = 11,
    REQUEUED_AT = 12,
    REQUEUE_COUNT = 13,
    LAST_REQUEUED_AT = 14,
    LAST_RETRIED_ATTEMPT_AT = 15,
    SCHEDULED_CRON_FIRED = 16,
    ATTEMPTS = 17,
    SCHEDULED_REPEAT_COUNT = 18,
    EXPIRED = 19,
    EFFECTIVE_SCHEDULED_DELAY = 20,
    SCHEDULED_TIMES = 21,
    SCHEDULED_MESSAGE_PARENT_ID = 22,
    REQUEUED_MESSAGE_PARENT_ID = 23
}
export declare enum EMessagePropertyStatus {
    NEW = 0,
    PENDING = 1,
    PROCESSING = 2,
    SCHEDULED = 3,
    ACKNOWLEDGED = 4,
    UNACK_REQUEUING = 5,
    UNACK_DELAYING = 6,
    DEAD_LETTERED = 7
}
export interface IMessageParams<TBody = unknown> {
    createdAt: number;
    exchange: IExchangeParsedParams | null;
    queue: IQueueParams | null;
    ttl: number;
    retryThreshold: number;
    retryDelay: number;
    consumeTimeout: number;
    body: TBody;
    priority: number | null;
    scheduledCron: string | null;
    scheduledDelay: number | null;
    scheduledRepeatPeriod: number | null;
    scheduledRepeat: number;
    destinationQueue: IQueueParams;
    consumerGroupId: string | null;
}
export interface IMessageTransferable<TBody = unknown> extends IMessageParams<TBody> {
    id: string;
    messageState: IMessageStateTransferable;
    status: EMessagePropertyStatus;
}
export type TMessageConsumeOptions = Pick<IMessageParams, 'ttl' | 'retryThreshold' | 'retryDelay' | 'consumeTimeout'>;
//# sourceMappingURL=message.d.ts.map