import { ITopicParams, TExchangeTransferable } from '../exchange/index.js';
import { IQueueParams } from '../queue/index.js';
import { EMessagePriority, TMessageConsumeOptions } from './types/index.js';
export declare class ProducibleMessage {
    protected static defaultConsumeOptions: TMessageConsumeOptions;
    protected readonly createdAt: number;
    protected ttl: number;
    protected retryThreshold: number;
    protected retryDelay: number;
    protected consumeTimeout: number;
    protected body: unknown;
    protected priority: EMessagePriority | null;
    protected scheduledCron: string | null;
    protected scheduledDelay: number | null;
    protected scheduledRepeatPeriod: number | null;
    protected scheduledRepeat: number;
    protected exchange: TExchangeTransferable | null;
    constructor();
    static setDefaultConsumeOptions(consumeOptions: Partial<TMessageConsumeOptions>): void;
    protected static validateRetryDelay(delay: number): number;
    protected static validateTTL(ttl: unknown): number;
    protected static validateConsumeTimeout(timeout: unknown): number;
    protected static validateRetryThreshold(threshold: unknown): number;
    getCreatedAt(): number;
    setScheduledRepeatPeriod(period: number): ProducibleMessage;
    setScheduledDelay(delay: number): ProducibleMessage;
    getScheduledDelay(): number | null;
    setScheduledCRON(cron: string): ProducibleMessage;
    setScheduledRepeat(repeat: number): ProducibleMessage;
    resetScheduledParams(): ProducibleMessage;
    setTTL(ttl: number): ProducibleMessage;
    setConsumeTimeout(timeout: number): ProducibleMessage;
    setRetryThreshold(threshold: number): ProducibleMessage;
    setRetryDelay(delay: number): ProducibleMessage;
    setBody(body: unknown): ProducibleMessage;
    setPriority(priority: EMessagePriority): ProducibleMessage;
    hasPriority(): boolean;
    disablePriority(): ProducibleMessage;
    setFanOut(fanOutName: string): ProducibleMessage;
    setTopic(topicParams: string | ITopicParams): ProducibleMessage;
    setQueue(queueParams: string | IQueueParams): ProducibleMessage;
    getQueue(): IQueueParams | null;
    getTopic(): ITopicParams | null;
    getFanOut(): string | null;
    getExchange(): TExchangeTransferable | null;
    getScheduledRepeatPeriod(): number | null;
    getScheduledCRON(): string | null;
    getScheduledRepeat(): number;
    getTTL(): number;
    getRetryThreshold(): number;
    getRetryDelay(): number;
    getConsumeTimeout(): number;
    getPriority(): EMessagePriority | null;
    getBody(): unknown;
}
//# sourceMappingURL=producible-message.d.ts.map