import { Store, StoreModel, Loadable } from "./index"; export default function useStore( store: Store, selector: (store: Store) => TResult ): TResult; export function createStoreHook( store: Store | TModel ): StoreHook; export function createStoreHook( store: Store | TModel, selector: (store: Store, payload: TPayload) => TResult ): StoreHookWithSelector; export interface StoreHook extends Function { (selector: (store: Store) => TResult): TResult; } export type StoreHookWithSelector = ( payload?: TPayload ) => TResult; export function useLocalStore(model: T): Store; export function useValue | any>( value: T ): ValueInfer; export function createLocalStoreHook(model: TModel): StoreHook; export type ValueInfer = T extends Loadable ? TValue : T;