import { Context, ContextProvider, Ref } from "../types";
import type { Component } from "../base/Component";
export interface HookInfo {
    func?: any;
    effect?: (() => any) | void;
    value?: any;
    updated?: boolean;
    deps: any[];
}
export interface HooksProvider extends ContextProvider {
    b: Component;
    _hs?: HookInfo[];
    _usefs: Array<() => (() => any) | undefined | void>;
    _uefs: Array<() => (() => any) | undefined | void>;
    _defs: Array<undefined | void | (() => void)>;
}
export declare function useMemo(defaultFunction: () => any, deps?: any[]): any;
export declare function useRef(defaultValue: any): any;
export declare function useContext(context: Context): any;
export declare function useState(st?: any | (() => any)): [any, (nextValue: any) => void];
export declare function useEffect(effect: () => (() => any) | undefined | void, deps?: any[], unshift?: boolean): void;
export declare function useImperativeHandle(ref: Ref, func: () => any, deps?: any[]): void;
