import type { Blocks, BlocksV1 } from "@slackwsh/contracts";
export interface RichTextMark {
    type: "bold" | "italic" | "underline" | "strike" | "code" | "link";
    attrs?: {
        href?: string;
    };
}
export interface RichTextNode {
    type: "doc" | "paragraph" | "heading" | "text" | "hardBreak" | "bulletList" | "orderedList" | "listItem" | "blockquote" | "codeBlock";
    text?: string;
    attrs?: {
        level?: number;
        start?: number;
    };
    marks?: RichTextMark[];
    content?: RichTextNode[];
}
export declare function plainTextToBlocksV1(text: string): BlocksV1;
/** Accept only the ProseMirror subset used by the composer. */
export declare function sanitizeMessageBlocks(value: unknown, fallbackText?: string): BlocksV1 & Record<string, unknown>;
export declare function blocksToPlainText(blocks: Blocks | null | undefined): string;
//# sourceMappingURL=blocks.d.ts.map