import { Attachments, type AttachmentsInit } from "./attachments.ts";
import { VersionString } from "./version-string.ts";
export interface MessageBody {
    v: string;
    [key: string]: unknown;
}
export declare class Message<T extends MessageBody = MessageBody> {
    #private;
    readonly body: T;
    constructor(body: T, attachments?: AttachmentsInit);
    get raw(): Uint8Array;
    get version(): VersionString;
    get attachments(): Attachments;
    set attachments(value: AttachmentsInit);
    static parse(input: Uint8Array): Message | null;
    static encode(init: MessageBody): Uint8Array;
}
