import * as react_jsx_runtime from 'react/jsx-runtime';
import { ComponentType } from 'react';

type MarkdownContentProps = {
    /** The markdown string to render */
    markdown: string;
    /** Additional CSS class name */
    className?: string;
    /** Variant for different use cases - 'default' for full blog posts, 'chat' for compact chat messages */
    variant?: "default" | "chat";
    /** Custom Link component for navigation */
    LinkComponent?: ComponentType<React.ComponentProps<"a"> & Record<string, any>>;
    /** Custom Image component for images */
    ImageComponent?: ComponentType<React.ImgHTMLAttributes<HTMLImageElement> & Record<string, any>>;
};
declare function MarkdownContent({ markdown, className, variant, LinkComponent, ImageComponent, }: MarkdownContentProps): react_jsx_runtime.JSX.Element;

interface MarkdownEditorProps {
    value?: string;
    onChange?: (markdown: string) => void;
    className?: string;
    /** Optional image upload handler. When provided, enables image upload in the editor. */
    uploadImage?: (file: File) => Promise<string>;
    /** Placeholder text shown when the editor is empty. */
    placeholder?: string;
}
declare function MarkdownEditor({ value, onChange, className, uploadImage, placeholder, }: MarkdownEditorProps): react_jsx_runtime.JSX.Element;

export { MarkdownContent, MarkdownEditor };
export type { MarkdownContentProps, MarkdownEditorProps };
