import { type FunctionComponent, ReactNode } from 'react';
import { Options } from 'react-markdown';
import { CodeBlockMessageProps } from '../Message/CodeBlockMessage/CodeBlockMessage';
import { TableProps } from '@patternfly/react-table';
import 'highlight.js/styles/vs2015.css';
import { PluggableList } from 'unified';
import { ButtonProps } from '@patternfly/react-core';
/**
 * MarkdownContent renders content either as plain text or with content with markdown support.
 *
 * Use this component when passing children to Message to customize its structure.
 */
export interface MarkdownContentProps {
    /** The content to render. Supports markdown formatting by default, or plain text when isMarkdownDisabled is true. */
    content?: string;
    /** Disables markdown parsing, allowing only plain text input */
    isMarkdownDisabled?: boolean;
    /** Props for code blocks */
    codeBlockProps?: CodeBlockMessageProps;
    /** Props for table message. It is important to include a detailed aria-label that describes the purpose of the table. */
    tableProps?: Required<Pick<TableProps, 'aria-label'>> & TableProps;
    /** Additional rehype plugins passed from the consumer */
    additionalRehypePlugins?: PluggableList;
    /** Additional remark plugins passed from the consumer */
    additionalRemarkPlugins?: PluggableList;
    /** Whether to open links in message in new tab. */
    openLinkInNewTab?: boolean;
    /** Props for links */
    linkProps?: ButtonProps;
    /** Allows passing additional props down to markdown parser react-markdown, such as allowedElements and disallowedElements. See https://github.com/remarkjs/react-markdown?tab=readme-ov-file#options for options */
    reactMarkdownProps?: Options;
    /** Allows passing additional props down to remark-gfm. See https://github.com/remarkjs/remark-gfm?tab=readme-ov-file#options for options */
    remarkGfmProps?: Options;
    /** Whether to strip out images in markdown */
    hasNoImages?: boolean;
    /** Sets background colors to be appropriate on primary chatbot background */
    isPrimary?: boolean;
    /** Custom component to render when markdown is disabled */
    textComponent?: ReactNode;
    /** Flag indicating whether content should retain various styles of its context (typically font-size and text color). */
    shouldRetainStyles?: boolean;
}
export declare const MarkdownContent: FunctionComponent<MarkdownContentProps>;
export default MarkdownContent;
