import React from 'react';
import { type ButtonSizeName } from '../../../../../theme-core/src/buttons/index';
export type TextNodeProps = {
    value?: React.ReactNode;
    className?: string;
    path?: string;
    children?: React.ReactNode;
};
export declare const TextNode: React.FC<TextNodeProps & {
    blockId?: string;
    blockKind?: string;
    blockContent?: unknown;
    fragmentRegistry?: unknown;
    pathBase?: string;
}>;
export type RichTextNodeProps = {
    value?: unknown;
    path?: string;
    className?: string;
    children?: React.ReactNode;
};
export declare const RichTextNode: React.FC<RichTextNodeProps & {
    blockId?: string;
    blockKind?: string;
    blockContent?: unknown;
    fragmentRegistry?: unknown;
    pathBase?: string;
}>;
export type ButtonNodeProps = {
    value?: React.ReactNode;
    href?: string;
    className?: string;
    target?: string;
    rel?: string;
    children?: React.ReactNode;
    /** Button variant ID (reads from theme.buttons.variants) */
    variantId?: string;
    /** Button size (reads from theme.buttons.sizes via .btn-{size}) */
    size?: ButtonSizeName;
    /** Disabled state */
    disabled?: boolean;
    /** Button type (for form buttons) */
    type?: 'button' | 'submit' | 'reset';
    /** When true, hide the button if href is missing */
    linkRequired?: boolean;
};
export declare const ButtonNode: React.FC<ButtonNodeProps & {
    blockId?: string;
    blockKind?: string;
    blockContent?: unknown;
    fragmentRegistry?: unknown;
    pathBase?: string;
}>;
export type LinkNodeProps = {
    href?: string;
    className?: string;
    target?: string;
    rel?: string;
    children?: React.ReactNode;
    /** When true, hide the link if href is missing */
    linkRequired?: boolean;
};
export declare const LinkNode: React.FC<LinkNodeProps & {
    blockId?: string;
    blockKind?: string;
    blockContent?: unknown;
    fragmentRegistry?: unknown;
    pathBase?: string;
}>;
