import { IObject } from "@daybrush/utils";
import { Context } from "../types";
import { ComponentProvider } from "./ComponentProvider";
import { Provider } from "./Provider";
export declare class Component {
    props: IObject<any>;
    context?: any;
    static defaultProps?: IObject<any>;
    static conextType?: Context;
    state: IObject<any>;
    $_p: ComponentProvider;
    $_timer: number;
    $_state: IObject<any>;
    $_req: boolean;
    $_subs: Provider[];
    $_cs: Record<string, Component>;
    constructor(props?: IObject<any>, context?: any);
    render(): any;
    shouldComponentUpdate(props: Record<string, any>, state: Record<string, any>): boolean | void | undefined;
    setState(state: IObject<any>, callback?: Function, isForceUpdate?: boolean): void;
    forceUpdate(callback?: Function): void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: Record<string, any>, prevState: Record<string, any>): void;
    componentWillUnmount(): void;
    private $_setState;
}
export declare class PureComponent extends Component {
    shouldComponentUpdate(props?: any, state?: any): boolean;
}
