import Level from './Level';
import { MessageId, MessageParameters } from './messages';
/**
 * A message in the application is composed of a level, a message identifier, and parameters.
 */
export default class Message<T extends MessageId> {
    /**
     * The level of the message.
     */
    readonly level: Level;
    /**
     * The message identifier.
     */
    readonly messageId: T;
    /**
     * The parameters of the message.
     */
    readonly parameters: MessageParameters[T];
    constructor(
    /**
     * The level of the message.
     */
    level: Level, 
    /**
     * The message identifier.
     */
    messageId: T, ...parameters: MessageParameters[T]);
    toString(): string;
}
