import { EExchangeType, IExchangeParams, IExchangeParsedParams } from '../exchange/index.js';
import { IQueueParams } from '../queue-manager/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: IExchangeParsedParams | null;
    protected exchangeRoutingKey: string | null;
    protected queue: IQueueParams | null;
    constructor();
    protected static validateRetryDelay(delay: number): number;
    protected static validateTTL(ttl: unknown): number;
    protected static validateConsumeTimeout(timeout: unknown): number;
    protected static validateRetryThreshold(threshold: unknown): number;
    protected setExchange(exchange: string | IExchangeParams, type: EExchangeType): ProducibleMessage;
    static setDefaultConsumeOptions(consumeOptions: Partial<TMessageConsumeOptions>): void;
    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;
    setFanoutExchange(exchange: string | IExchangeParams): ProducibleMessage;
    setTopicExchange(exchange: string | IExchangeParams): ProducibleMessage;
    setDirectExchange(exchange: string | IExchangeParams): ProducibleMessage;
    setExchangeRoutingKey(routingKey: string): ProducibleMessage;
    getExchangeRoutingKey(): string | null;
    setQueue(queue: string | IQueueParams): ProducibleMessage;
    getQueue(): IQueueParams | null;
    getExchange(): IExchangeParsedParams | 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