import type { MessageInterface } from '../types/message-interface.js';
import type { GenericMessage, GenericSignaturePayload } from '../types/message-types.js';
/**
 * An abstract implementation of the `MessageInterface` interface.
 */
export declare abstract class AbstractMessage<M extends GenericMessage> implements MessageInterface<M> {
    private readonly _message;
    get message(): M;
    private readonly _signer;
    get signer(): string | undefined;
    private readonly _author;
    get author(): string | undefined;
    private readonly _signaturePayload;
    get signaturePayload(): GenericSignaturePayload | undefined;
    /**
     * If this message is signed by an author-delegate.
     */
    get isSignedByAuthorDelegate(): boolean;
    protected constructor(message: M);
    /**
     * Called by `JSON.stringify(...)` automatically.
     */
    toJSON(): GenericMessage;
}
//# sourceMappingURL=abstract-message.d.ts.map