import * as React from "react";
import { Framework } from "./dev-tools";
import { IFormChildOption } from "./";
export interface ICodePreviewProps {
    componentName: string;
    childOptions: IFormChildOption[];
    framework: Framework;
    data: any;
}
export interface IReactChildren {
    id: string;
    propertyName: string;
    location: string;
    data: any;
    component?: any;
}
export interface IReactComponentConfig {
    hasChildren: boolean;
    componentName: string;
    componentData: any;
    tab: string;
    newTab: string;
    location: string;
}
export default class CodePreview extends React.Component<ICodePreviewProps, {}> {
    private variables;
    render(): JSX.Element;
    private getCodePreview;
    /**
     * Generates the react code preview as a string
     */
    private generateReactCodePreview;
    /**
     * Generate the syntax for the react component code preview
     */
    private generateReactComponent;
    /**
     * Generates the string if the component contains children
     */
    private generateReactChildren;
    private getReactChildAsComponentOrString;
    /**
     * Generates the React attributes for the implementation
     * based on example data
     */
    private generateReactAttributes;
    private hasOnlyChildrenOrNoProps;
    private getReactAttributesFromProperties;
    /**
     * Gets the attributes as a string
     */
    private getReactAttributeObject;
    private getReactChildrenFromProperties;
    /**
     * Sets the private variables to children objects
     */
    private setReactChildrenVariables;
    private replaceReactChildrenVariableIdsWithComponent;
    /**
     * Replaces the React properties which accept children with a formatted React component
     */
    private replaceReactPropertyChildren;
    /**
     * Gets the component name form the component in data
     */
    private getComponentName;
    /**
     * Find children in data
     */
    private findChildren;
    /**
     * Find children in an array
     */
    private findChildrenFromArray;
    /**
     * Find children in an object
     */
    private findChildrenFromObject;
}
