import type { ReactNode } from 'react';
import type { DataContent, InteractiveContent, MediaContent, NotificationContent } from '../types';
export * from './data';
export * from './interactive';
export * from './notification';
/**
 * Union of all block content types that can be rendered by the block system.
 */
type BlockContentUnion = NotificationContent | MediaContent | InteractiveContent | DataContent;
/**
 * Block renderer function type
 */
export type BlockRenderer = (content: BlockContentUnion, options: {
    accentColor?: string;
    onDismiss?: () => void;
    onRatingSubmit?: (value: number) => void;
}) => ReactNode | null;
/**
 * Render a block based on its content type.
 * Returns null if the type is not recognized as a new block type.
 */
export declare function renderBlock(content: BlockContentUnion, options?: {
    accentColor?: string;
    onDismiss?: () => void;
    onRatingSubmit?: (value: number) => void;
}): ReactNode | null;
/**
 * Check if a content type is handled by the new block system
 */
export declare function isNewBlockType(type: string): boolean;
