import type { ComponentPropsWithoutRef, ComponentType, JSX, ReactElement, ReactNode } from 'react';
import type { BlockNode, InlineNode, MarkdownInput, RenderOptions } from './types.js';
type IntrinsicElementName = keyof JSX.IntrinsicElements;
type ComponentMap = Partial<Record<string, string | ComponentType<any>>>;
export type MarkdownComponentProps<TagName extends IntrinsicElementName> = ComponentPropsWithoutRef<TagName>;
export type MarkdownComponents = Partial<{
    [TagName in IntrinsicElementName]: IntrinsicElementName | ComponentType<MarkdownComponentProps<TagName>>;
}> & Record<string, string | ComponentType<any> | undefined>;
export interface MarkdownReactOptions extends RenderOptions {
    components?: ComponentMap;
}
export interface MarkdownProps extends MarkdownReactOptions {
    children: MarkdownInput;
}
export declare function Markdown({ children, ...options }: MarkdownProps): ReactElement;
export declare function renderMarkdownReact(input: MarkdownInput, options?: MarkdownReactOptions): ReactNode;
export declare function renderBlockReact(node: BlockNode, options?: MarkdownReactOptions, key?: string): ReactElement;
export declare function renderInlineReact(node: InlineNode, options?: MarkdownReactOptions, key?: string): ReactNode;
export {};
//# sourceMappingURL=react.d.ts.map