import * as React from 'react';
import { IBasicComponent, IComplexComponent } from '@cloudbase/cals';
export interface IContext {
    virtualFields: {
        [sourceKey: string]: React.FunctionComponent<any>;
    };
    codeContext: {
        $page?: any;
        /**
         * 复合组件内部实例对象
         * 有则代表为生成组件
         */
        $WEAPPS_COMP?: any;
        _dataBinds?: Record<string, Function>;
        node?: any;
    };
    scopeContext?: {
        [key: string]: any;
    };
    dataContext?: any;
    updateContext?: any;
    injectContext?: {
        VisiblePlaceHolder?: React.FunctionComponent<{
            id: string;
        }>;
        processCssUnit?: 'px' | 'rpx' | 'rem';
        checkVisible?: () => boolean;
        SlotRender?: React.FC<React.PropsWithChildren<{
            componentSchema: any;
        } & Record<string, any>>>;
        checkDisplay?: (data: any) => boolean;
    };
    forContext?: IForContext;
}
interface IForContext {
    [id: string]: any;
}
export declare function getComponentChildren(component: any, context: {
    virtualFields: Record<string, React.FunctionComponent>;
    codeContext: any;
    scopeContext: Record<string, any>;
    forContext: IForContext;
    injectContext: Record<string, any>;
    dataContext: Record<string, any>;
    updateContext: (id: string, data: any) => void;
}): any;
export declare const Trace: React.FunctionComponent<any>;
export declare function generateSlotMetaMap(componentSchema: any, context: IContext, options?: {
    rootNode?: boolean;
    renderSlot: boolean;
}): {
    [key: string]: {
        type: 'HOC';
        node: React.FunctionComponent;
    } | {
        type: 'ELEMENT';
        node: React.ReactElement;
    };
};
interface IAppRenderProps extends IContext {
    className?: string;
    style?: React.CSSProperties;
    componentSchema: (IBasicComponent | IComplexComponent) & {
        extra?: {
            emitEvents: [];
        };
    };
    renderSlot?: boolean;
    rootNode?: boolean;
    updateContext?: any;
    updateKey?: any;
}
export declare function CommonAppRender(props: IAppRenderProps): JSX.Element | JSX.Element[];
export declare const AppRender: React.FunctionComponent<IAppRenderProps>;
export {};
