import { TMessageState } from '../../../types';
export declare class MessageState {
    protected readonly uuid: string;
    protected publishedAt: number | null;
    protected scheduledAt: number | null;
    protected scheduledCronFired: boolean;
    protected attempts: number;
    protected scheduledRepeatCount: number;
    protected expired: boolean;
    protected nextScheduledDelay: number;
    protected nextRetryDelay: number;
    constructor();
    setPublishedAt(timestamp: number): MessageState;
    setScheduledAt(timestamp: number): MessageState;
    setNextScheduledDelay(delay: number): MessageState;
    getSetNextScheduledDelay(): number;
    setNextRetryDelay(delay: number): MessageState;
    getSetNextRetryDelay(): number;
    hasDelay(): boolean;
    resetMessageScheduledRepeatCount(): MessageState;
    incrAttempts(): number;
    setAttempts(attempts: number): MessageState;
    setMessageScheduledCronFired(fired: boolean): MessageState;
    incrMessageScheduledRepeatCount(): number;
    setExpired(expired: boolean): MessageState;
    reset(): MessageState;
    getPublishedAt(): number | null;
    getScheduledAt(): number | null;
    getAttempts(): number;
    getMessageScheduledRepeatCount(): number;
    getId(): string;
    hasScheduledCronFired(): boolean;
    hasExpired(): boolean;
    getSetExpired(ttl: number, createdAt: number): boolean;
    getSetNextDelay(): number;
    toJSON(): TMessageState;
}
