import { BaseNotifier } from './base'; import { Subscriber, Unsubscribe } from '../subjects/subject'; export interface SelectorStatus { pending: boolean; error: unknown | null; } type SelectorHook = ReturnType>; type SelectorFunc = (state: State) => ReturnType; type UseNotifierHook = (selector?: SelectorFunc) => ReturnType; type GetFunction = (notifier: BaseNotifier | SelectorHook) => Readonly; type SetFunction = (notifier: BaseNotifier, state: NotifierState) => void; type SelectorHandler = (get: GetFunction, set: SetFunction) => Promise | ReturnedState; export declare function selector(selectorFn: SelectorHandler): { subscribe: (subscriber: Subscriber) => Unsubscribe; subscribeStatus: (subscriber: Subscriber) => Unsubscribe; getStatus: () => SelectorStatus; getServerSnapshot: () => ReturnedState; getSnapshot: () => ReturnedState; createStateHook: () => UseNotifierHook; createStatusHook: () => () => SelectorStatus; destroy: () => void; }; export declare const getSnapshot: GetFunction; export {};