import { Getter, ResolveStoreApi, LensMetaProps, LensContext, Lens, SetParameter } from "./core"; export { mergeDeep } from "@dhmk/utils"; export declare const mergeDeepLeft: (a: unknown, b: T) => T; export type CustomSetter = [ set: F, get: Getter, api: ResolveStoreApi, ctx: LensContext ]; export declare const customSetter: (setter: any) => (fn: any) => (set: any, get: any, api: any, ctx: any) => any; export type NamedSet = (partial: SetParameter, name?: string, replace?: boolean) => void; export declare const namedSetter: (fn: (set: NamedSet, get: Getter, api: ResolveStoreApi, ctx: LensContext) => T) => Lens; export declare function subscribe(store: { subscribe: (fn: (s: T) => any) => any; getState(): T; }, selector: (state: T) => U, effect: (state: U, prevState: U) => void, options?: { equalityFn?: (a: U, b: U) => boolean; fireImmediately?: boolean; }): any; type MetaSetter = Exclude["setter"], undefined>; export declare function watch(selector: (state: T) => U, effect: (state: U, prevState: U) => void, options?: { equalityFn?: (a: U, b: U) => boolean; fireImmediately?: boolean; }): MetaSetter; export declare function combineWatchers(...fns: MetaSetter[]): MetaSetter; declare const persist: unique symbol; export declare function persistOptions(conf: { load?: (x: unknown) => T; save?: (x: T) => unknown; }): { [persist]: { load?: ((x: unknown) => T) | undefined; save?: ((x: T) => unknown) | undefined; }; }; export declare namespace persistOptions { var merge: ((persistedState: unknown, currentState: any) => any) | undefined; var partialize: ((state: any) => any) | undefined; }