/**
 * TipTap inline mark that tags a text range with a `commentId`. The mark
 * is the glue between the comment side panel and the editor — selecting
 * a range, creating a comment, and then re-painting the highlight when
 * the comment list updates all flow through this extension.
 *
 * Storage shape: a single attribute, `commentId`, that mirrors the row
 * id returned by the slice-4 REST API. The mark also stamps a
 * `data-comment-id` attribute on its rendered span and a CSS class so
 * the panel can style it (yellow band for active, dotted underline for
 * resolved, faded for detached anchors).
 *
 * We deliberately use a TipTap Mark (vs. a ProseMirror decoration) so
 * the comment anchor is *persisted* in the document HTML and round-trips
 * through the autosave path. Decorations would be simpler but they're
 * presentational only — they disappear on next render unless re-painted
 * from scratch, which would defeat slice 5's main job (keeping anchors
 * stable under collaborative edits).
 */
import { Mark } from '@tiptap/core';
export interface CommentMarkOptions {
    /** Extra HTML attributes attached to every rendered comment span. */
    HTMLAttributes: Record<string, unknown>;
    /**
     * Base CSS class. Defaults to `actuate-comment`; the side panel adds
     * `actuate-comment--resolved` / `actuate-comment--detached` modifiers
     * on top of this when it paints state-aware highlights.
     */
    className: string;
}
declare module '@tiptap/core' {
    interface Commands<ReturnType> {
        comment: {
            /** Mark the current selection with a comment id. */
            setComment: (attrs: {
                commentId: string;
            }) => ReturnType;
            /** Update the commentId on the active comment mark. */
            updateComment: (attrs: {
                commentId: string;
            }) => ReturnType;
            /** Remove all comment marks from the current selection. */
            unsetComment: () => ReturnType;
        };
    }
}
export declare const CommentMark: Mark<CommentMarkOptions, any>;
/**
 * CSS the editor styles include to render the comment highlights. The
 * `TipTapEditor` injects this so consumers don't need to import a CSS
 * file separately.
 */
export declare const COMMENT_MARK_STYLES = "\n.actuate-comment {\n  background-color: rgba(250, 204, 21, 0.25);\n  border-bottom: 2px solid rgba(202, 138, 4, 0.65);\n  cursor: pointer;\n}\n.actuate-comment:hover {\n  background-color: rgba(250, 204, 21, 0.4);\n}\n.actuate-comment--resolved {\n  background-color: transparent;\n  border-bottom: 1px dotted rgba(107, 114, 128, 0.6);\n}\n.actuate-comment--active {\n  background-color: rgba(250, 204, 21, 0.55);\n  outline: 2px solid rgba(202, 138, 4, 0.9);\n  outline-offset: -1px;\n}\n";
//# sourceMappingURL=CommentMark.d.ts.map