/**
 * Notion block builder utilities
 * Creates properly formatted Notion blocks from content
 */
import { NotionColor, NotionRichText } from '../types/notion.js';
import { MarkdownNode } from '../types/markdown.js';
export interface NotionBlockData {
    object: 'block';
    type: string;
    [key: string]: unknown;
}
/**
 * Create rich text array from plain text with optional formatting
 */
export declare function createRichText(content: string, formatting?: {
    bold?: boolean;
    italic?: boolean;
    strikethrough?: boolean;
    code?: boolean;
    color?: NotionColor;
    link?: {
        url: string;
    };
}): NotionRichText[];
/**
 * Create rich text from markdown nodes with formatting
 */
export declare function createRichTextFromNodes(nodes: MarkdownNode[]): NotionRichText[];
/**
 * Build a paragraph block
 */
export declare function buildParagraphBlock(content: string | MarkdownNode[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a heading block (H1, H2, or H3)
 */
export declare function buildHeadingBlock(content: string | MarkdownNode[], level: 1 | 2 | 3, formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a bulleted list item block
 */
export declare function buildBulletedListItemBlock(content: string | MarkdownNode[], children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a numbered list item block
 */
export declare function buildNumberedListItemBlock(content: string | MarkdownNode[], children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a to-do list item block (for task lists)
 */
export declare function buildToDoBlock(content: string | MarkdownNode[], checked?: boolean, children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a code block
 */
export declare function buildCodeBlock(code: string, language?: string, caption?: string): NotionBlockData;
/**
 * Build a quote block
 */
export declare function buildQuoteBlock(content: string | MarkdownNode[], children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a divider block (horizontal rule)
 */
export declare function buildDividerBlock(): NotionBlockData;
/**
 * Build a callout block (used for special formatting)
 */
export declare function buildCalloutBlock(content: string | MarkdownNode[], icon?: string, color?: NotionColor, children?: NotionBlockData[]): NotionBlockData;
/**
 * Build a toggle block (collapsible content)
 */
export declare function buildToggleBlock(content: string | MarkdownNode[], children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Build a table block
 * Note: Notion tables require table_row blocks as children within the table block
 */
export declare function buildTableBlock(rows: string[][], hasColumnHeader?: boolean, hasRowHeader?: boolean): NotionBlockData[];
/**
 * Build a table block from MarkdownNode arrays (supports rich text in cells)
 * Note: Notion tables require table_row blocks as children within the table block
 */
export declare function buildTableBlockFromNodes(rows: MarkdownNode[][], hasColumnHeader?: boolean, hasRowHeader?: boolean): NotionBlockData[];
/**
 * Build an image block
 */
export declare function buildImageBlock(url: string, caption?: string): NotionBlockData;
/**
 * Build an embed block
 */
export declare function buildEmbedBlock(url: string, caption?: string): NotionBlockData;
/**
 * Build a bookmark block
 */
export declare function buildBookmarkBlock(url: string, caption?: string): NotionBlockData;
/**
 * Utility function to determine appropriate list block type
 */
export declare function buildListItemBlock(content: string | MarkdownNode[], listType: 'bulleted' | 'numbered' | 'todo', checked?: boolean, children?: NotionBlockData[], formatting?: {
    color?: NotionColor;
}): NotionBlockData;
/**
 * Utility function to normalize heading levels for Notion (max H3)
 */
export declare function normalizeHeadingLevel(level: number): 1 | 2 | 3;
/**
 * Create a fallback block for unsupported content
 */
export declare function buildFallbackBlock(content: string, originalType?: string): NotionBlockData;
