import { ListState, ModelFactory, ModelStore, Store } from '../types'; type Selector = (state: T) => R; type EqualityFn = (a: T, b: T) => boolean; export declare function createHook(store: Store): { (): S; (selector: Selector, equalityFn?: EqualityFn | boolean): R; }; type ModelStoreState = T & { id: any; isStale: boolean; isLoading: boolean; isSaving: boolean; isDeleting: boolean; }; export declare function createItemHook(modelStore: ModelStore): (selector?: Selector, R>, shallowCompare?: boolean) => ModelStoreState | R; export declare function createListHook(factory: ModelFactory): (selector?: Selector, R>, shallowCompare?: boolean) => ListState | R; export declare function createModelHook(factory: ModelFactory): (id: any, selector?: Selector, R>, shallowCompare?: boolean) => ModelStoreState | R; export declare function useDebounce(value: T, delay: number): T; export {};