import * as React from "react";
/**
 * An interface to describe the data required to generate a component example using the componentFactory function
 * @param T - the prop interface for the example component
 */
export interface IComponentFactoryExample<T> {
    /**
     * The name of the component example
     */
    name: string;
    /**
     * The JSON schema for a component
     */
    schema: any;
    /**
     * The React component to apply example props from
     */
    component: React.ComponentType<T>;
    /**
     * The example data to use for the component detail section
     */
    detailData: T;
    /**
     * The example data to use for all component examples
     */
    data: T[];
    /**
     * The React component to serve as documentation for the component
     */
    documentation: JSX.Element;
}
/**
 * An interface to describe the examples object consumed by componentFactor
 */
export interface IComponentFactoryExamples {
    [key: string]: IComponentFactoryExample<any>;
}
export default function componentFactory<P, T>(examples: IComponentFactoryExamples, designSystem?: T): JSX.Element[];
