import { Bloc } from "@bloc-js/bloc";
import { BlocGetter, TBlocFactory, BlocCompleter } from "./registry";
export declare function useBloc<S>(fn: BlocGetter<S>, ...args: any[]): Bloc<S>;
export declare function useBlocScoped<S>(fn: BlocGetter<S>, done: BlocCompleter, ...args: any[]): Bloc<S>;
export declare function useBlocState<S>(bloc: Bloc<S>): S;
export declare function createHooks<S>(id: string, factory: TBlocFactory<S>): {
    getBloc: BlocGetter<S>;
    useBloc: (...args: any[]) => Bloc<S>;
    useBlocScoped: (...args: any[]) => Bloc<S>;
    useState: () => S;
};
