import * as React from 'react';
interface ViewControllerDefine<P = {}, S = {}> {
    shouldComponentUpdate?(nextProps: Readonly<P>, nextState: Readonly<S>, nextContext: any): boolean;
}
declare class _ {
    static contextType?: React.Context<any>;
}
declare class ViewControllerDefine<P = {}, S = {}> extends _ {
    readonly context: any;
    readonly persistentID: string;
    constructor(props: Readonly<P>);
    constructor(props: P, context?: any);
    setState<K extends keyof S>(state: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null), callback?: () => void): void;
    protected saveState(): any;
    protected recoveryState(): void;
    forceUpdate(callback?: () => void): void;
    render(): React.ReactNode;
    readonly props: Readonly<P> & Readonly<{
        children?: React.ReactNode;
    }>;
    state: Readonly<S>;
    readonly refs: {
        [key: string]: ViewControllerDefine<any, any> | Element;
    };
    readonly isLoaded: boolean;
    readonly isMounted: boolean;
    readonly isDestroy: boolean;
    protected triggerLoad(): void;
    protected triggerMounted(): void;
    protected triggerUpdate(prevProps: Readonly<P>, prevState: Readonly<S>): void;
    protected triggerRemove(): void;
    protected triggerError(error: Error, errorInfo: React.ErrorInfo): void;
}
export { React };
export declare const ViewController: typeof ViewControllerDefine;
