import React from 'react';
export declare const ExamNamespaceURI = "http://ylioppilastutkinto.fi/exam.xsd";
export declare const XHTMLNamespaceURI = "http://www.w3.org/1999/xhtml";
export interface ExamComponentProps {
    className?: string;
    /** An element in the exam XML. */
    element: Element;
    /** A function that knows how to render the child nodes of this element. */
    renderChildNodes: RenderChildNodes;
    /** A map of component overrides for rendering nodes  */
    renderComponentOverrides: RenderComponentOverrides;
    /** Option to inform whether element should be rendered **/
    options?: RenderOptions;
}
export declare const enum RenderOptions {
    RenderHTML = 0,
    SkipHTML = 1
}
export type RenderChildNodes = (element: Element, options?: RenderOptions) => React.ReactNode[];
export type RenderComponentOverrides = Record<string, React.ComponentType<ExamComponentProps>>;
type ComponentDefinition = React.ComponentType<ExamComponentProps> | {
    component: React.ComponentType<ExamComponentProps>;
    wrapper: React.ComponentType<React.PropsWithChildren<{
        element: Element;
    }>>;
};
export declare function createRenderChildNodes(componentMap: Record<string, ComponentDefinition>): (renderComponentOverrides?: Record<string, React.ComponentType<ExamComponentProps>>) => RenderChildNodes;
export {};
//# sourceMappingURL=createRenderChildNodes.d.ts.map