/**
 * Message builder exposes an API to JSON.stringify values by encoding purpose
 * and expiryDate inside them. It returns a readable string, which is the
 * output of `JSON.stringify`.
 *
 * Why use this over `JSON.stringify`?
 *
 * - It protects you from JSON poisioning
 * - Allows encoding expiry dates to the message. It means, the message builer is
 *   helpful, when you want to encode a message and pass it around, but also control
 *   the TTL of the message
 * - Allows encoding purpose. Again, useful for distribution.
 */
export declare class MessageBuilder {
    private getExpiryDate;
    /**
     * Returns a boolean telling, if message has been expired or not
     */
    private isExpired;
    /**
     * Builds a message by encoding expiry and purpose inside it
     */
    build(message: any, expiresIn?: string | number, purpose?: string): string;
    /**
     * Verifies the message for expiry and purpose
     */
    verify<T extends any>(message: any, purpose?: string): null | T;
}
