import * as React from 'react';
import { IAppAPI } from '../app/global-api';
import { IComponentInfo } from '../utils/adapter/generate';
import { HistoryOptions, GenerateLoginUrlType } from '../utils/index';
import { IPlatformApp, 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: IComponentInfo[];
        };
    };
    componentsMap: {
        /**
         * libname:componentName
         */
        [componentSourceKey: string]: React.FunctionComponent;
    };
    componentActionsMap: {
        /**
         * libname:componentName
         */
        [actionSourceKey: string]: Function;
    };
}>;
export interface IWedaAppProps {
    cals: IApp | IPlatformApp;
    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) => Promise<{
        [key: string]: any;
    }>;
    loadExternalResources?: (data: {
        externalResource?: IPlatformApp['externalResources'];
    }, options?: {
        cache: boolean;
    }) => Promise<any>;
    renderLoading?: (props: {
        message?: string;
    }) => React.ReactElement;
    onRender?: () => void;
    onPageMounted?: () => void;
    context?: {
        basic?: boolean;
        looseError?: boolean;
        checkVisible?: () => boolean;
        checkDisplay?: () => boolean;
        defaultDataContext?: any;
        dataContext?: any;
        onDataContextChange?: (id: any, data: any) => void;
        $page?: any;
        initAppAPI?: (app: IAppAPI) => void;
        removeAppAPI?: () => void;
        getDatasourceConfig?: (cals: any, deployOptions?: any) => any;
        checkPageAuth?: (app: any, appId: any, $page: any) => boolean;
        reuseWidget?: boolean;
        generateLoginUrl?: GenerateLoginUrlType;
        SlotRender?: any;
        VisiblePlaceHolder?: any;
    };
    ErrorBoundary?: typeof ReactErrorBoundary;
}
declare const WedaApp: React.ForwardRefExoticComponent<{
    ErrorBoundary?: typeof ReactErrorBoundary;
} & IWedaAppProps & React.RefAttributes<unknown>>;
export default WedaApp;
export declare function WedaRouter({ history, routes, onNotFound, }: {
    routes?: {
        isHome?: boolean;
        root?: string;
        id: string;
        path: string;
        component?: React.FunctionComponent;
        render?: (props: any) => React.ReactElement;
    }[];
    history: any;
    onNotFound?: any;
}): JSX.Element;
