import * as react_jsx_runtime from 'react/jsx-runtime';
import { Article, SmartComponentMap as SmartComponentMap$1 } from '@pantheon-systems/pcc-sdk-core/types';
import { Element } from 'hast';
import React__default from 'react';

declare function getArticleTitle(article: Article | undefined): string | null;
declare function useArticleTitle(article: Article | undefined): string | null;

type ServersideSmartComponentMap = {
    [K in keyof SmartComponentMap$1]: SmartComponentMap$1[K];
};
type SmartComponentMap = {
    [K in keyof SmartComponentMap$1]: SmartComponentMap$1[K] & {
        reactComponent: (props: any) => React__default.JSX.Element;
    };
};
type ExtraProps = {
    node?: Element;
};
type ComponentMap = Partial<{
    [TagName in keyof JSX.IntrinsicElements]: (new (props: JSX.IntrinsicElements[TagName] & ExtraProps) => JSX.ElementClass) | ((props: JSX.IntrinsicElements[TagName] & ExtraProps) => JSX.Element) | keyof JSX.IntrinsicElements;
}>;
interface Props {
    article?: Article;
    tabId?: string | null;
    bodyClassName?: string;
    containerClassName?: string;
    headerClassName?: string;
    renderTitle?: (titleElement: React__default.ReactElement, content: string) => React__default.ReactNode;
    smartComponentMap?: SmartComponentMap;
    componentMap?: ComponentMap;
    renderBody?: (bodyElement: React__default.ReactElement) => React__default.ReactNode;
    __experimentalFlags?: {
        disableAllStyles?: boolean;
        preserveImageStyles?: boolean;
        disableDefaultErrorBoundaries?: boolean;
        useUnintrusiveTitleRendering?: boolean;
        renderImageCaptions?: boolean;
        cdnURLOverride?: string;
    };
}
declare const ArticleRenderer: ({ article, tabId, bodyClassName, containerClassName, headerClassName, renderTitle, smartComponentMap, componentMap, renderBody, __experimentalFlags, }: Props) => react_jsx_runtime.JSX.Element | null;

export { ArticleRenderer, type ServersideSmartComponentMap, type SmartComponentMap, getArticleTitle, useArticleTitle };
