import * as React from 'react';
import { HistoryOptions } from '../utils/index';
import { IApp } from '@cloudbase/cals';
import { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary';
import './index.css';
export declare const InjectContext: React.Context<{}>;
declare type TLoadDependencies = (dependencies: any[], cache?: boolean) => Promise<{
    controlMap: {
        /**
         * libname@libversion
         */
        [nameWithVersion: string]: {
            /**
             * 组件库描述版本 '' | ‘2.0.0’ | ‘3.0.0’
             */
            schemaVersion?: string;
            /**
             * 组件定义描述
             */
            components: {
                type: string;
                /**
                 * 组件名
                 */
                name: string;
                /**
                 * 属性配置
                 */
                dataForm: {
                    [prop: string]: {
                        syncProps?: {
                            changeEvent: string;
                            valueFromEvent: string;
                        };
                        /**
                         * @deprecated
                         */
                        inputProp?: {
                            changeEvent: string;
                            valueFromEvent: string;
                        };
                    };
                };
                /**
                 * 事件配置
                 */
                emitEvents: {
                    /**
                     * 事件标识
                     */
                    eventName: string;
                    /**
                     * 事件名
                     */
                    name: string;
                }[];
                isContainer?: boolean;
                meta?: {
                    name: string;
                };
            }[];
        };
    };
    componentsMap: {
        /**
         * libname:componentName
         */
        [componentSourceKey: string]: React.FunctionComponent;
    };
    componentActionsMap: {
        /**
         * libname:componentName
         */
        [actionSourceKey: string]: Function;
    };
}>;
interface IWedaAppProps {
    cals: IApp;
    dependencies: any[];
    isHash?: boolean;
    historyOption?: HistoryOptions & {
        type?: string;
        _indexPage?: boolean;
    };
    /**
     * @private 勿用
     */
    _processDependencies?: (dependencies: any, cals: any) => any[];
    loadDependencies?: TLoadDependencies;
    /**
     * @deprecated
     * use loadDependencies
     */
    loadDependiences?: TLoadDependencies;
    loadLowcodes?: (cals: any, cache: any) => Promise<{
        [key: string]: any;
    }>;
    renderLoading?: () => React.ReactElement;
    onRender?: () => void;
    onPageMounted?: () => void;
    context?: {
        basic?: boolean;
        looseError?: boolean;
        checkVisible?: () => boolean;
        defaultDataContext?: any;
        dataContext?: any;
        onDataContextChange?: (id: any, data: any) => void;
        $page?: any;
        initAppAPI?: ({ common, state, computedFuncs, dataset, }: {
            common: any;
            state: any;
            computedFuncs: any;
            dataset?: any;
        }) => void;
        removeAppAPI?: () => void;
        getDatasourceConfig?: (cals: any, deployOptions?: any) => any;
        checkPageAuth?: (app: any, appId: any, $page: any) => boolean;
        reuseWidget?: false;
    };
    ErrorBoundary?: typeof ReactErrorBoundary;
}
export default function WedaApp(props: {
    ErrorBoundary?: typeof ReactErrorBoundary;
} & IWedaAppProps): JSX.Element;
export declare function WedaRouter({ historyOptions, routes, onNotFound, }: {
    routes?: {
        isHome?: boolean;
        root?: string;
        id: string;
        path: string;
        component?: React.FunctionComponent;
        render?: (props: any) => React.ReactElement;
    }[];
    historyOptions: {
        basename: string;
        isHash: boolean;
        type: string;
    };
    onNotFound?: any;
}): JSX.Element;
export {};
