import { GlobalVariable } from "@gongt/ts-stl-library/pattern/global-page-data";
import * as React from "react";
export interface IContextCreate {
    (window: Window): GlobalVariable;
}
export declare const REACT_ROOT_ELEMENT_ID_VARNAME = "REACT_ROOT_ELEMENT_ID";
export interface WrapComponent {
    componentName: string;
    Component: React.ComponentClass<any>;
    props: Function;
}
export declare type MainAppCreator = (global: GlobalVariable) => React.ReactElement<any>;
export declare abstract class ReactRenderBase {
    protected _getComponent: MainAppCreator;
    protected wrapStack: WrapComponent[];
    setMainApp(component: MainAppCreator): void;
    protected getComponent(global: GlobalVariable): React.ReactElement<any>;
    wrapComponent<P>(componentName: string, Component: React.ComponentClass<P>, props?: (global: GlobalVariable) => P): void;
    abstract render(arg?: GlobalVariable): any;
}
export declare class ReactRender extends ReactRenderBase {
    constructor();
    render(global?: GlobalVariable): void;
}
export declare function debugComponent(comp: React.ReactElement<any>): void;
export declare const debugComponentEnabled: boolean;
