import React from 'react';
import type { IScopedContext } from 'jamis-core';
import { ScopedContext } from 'jamis-core';
import type { History } from 'history';
import type { AppProps, AppRouter, AsideNavProps } from '../types';
declare class App extends React.Component<AppProps, object> {
    static propsList: Array<string>;
    static defaultProps: Partial<AppProps>;
    static hookBeforeRenderSchema: (props: AppProps) => void;
    unWatchRouteChange?: () => void;
    unWatchHistoryChange?: () => void;
    unReaction?: () => void;
    articleRef: HTMLDivElement | null;
    constructor(props: AppProps);
    componentDidMount(): Promise<void>;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: AppProps): Promise<void>;
    handleWinResize: import("lodash").DebouncedFunc<() => void>;
    setArticleRef: (ref: HTMLDivElement | null) => HTMLDivElement | null;
    dispatchEventForward: (event: string, more?: Record<string, any>) => void;
    handleRouterChange: (props: AppProps, location?: History["location"], pathnameChanged?: boolean) => void;
    reload(subpath?: any, query?: any, ctx?: any, silent?: boolean): Promise<void>;
    receive(values: object): void;
    handleNavClick: (e: React.MouseEvent) => void;
    toggleFolded: () => void;
    /**
     * 更新路由页面的配置
     */
    updatePages: (pages: AppRouter[]) => void;
    /**
     * 获取路由页面配置
     */
    getPages: () => AppRouter[];
    renderHeaderBar: (aside: AppProps["aside"]) => JSX.Element;
    renderHeader: (aside: AppProps["aside"]) => JSX.Element | null;
    renderNavLink: AsideNavProps['renderLink'];
    renderAside: (aside: AppProps["aside"]) => JSX.Element | null;
    render(): JSX.Element;
}
export declare class AppRenderer extends App {
    static contextType: React.Context<IScopedContext<import("jamis-core").ScopedComponentType>>;
    context: React.ContextType<typeof ScopedContext>;
    constructor(props: AppProps, context: IScopedContext);
    componentWillUnmount(): void;
    setData(values: object, replace?: boolean): void;
    getData(): any;
}
export {};
