1 | import { Atom, WritableAtom, PrimitiveAtom } from 'jotai';
|
2 | import type { Getter, Setter } from './types';
|
3 | export declare const useUpdateAtom: <Value, Update>(anAtom: WritableAtom<Value, Update>) => undefined extends Update ? (update?: Update | undefined) => void | Promise<void> : (update: Update) => void | Promise<void>;
|
4 | declare const RESET: unique symbol;
|
5 | export declare const atomWithReset: <Value>(initialValue: Value) => WritableAtom<Value, typeof RESET | Value | ((prev: Value) => Value)>;
|
6 | export declare const useResetAtom: <Value>(anAtom: WritableAtom<Value, typeof RESET>) => (update?: unknown) => void | Promise<void>;
|
7 | export declare function useReducerAtom<Value, Action>(anAtom: PrimitiveAtom<Value>, reducer: (v: Value) => Value): [Value, () => void];
|
8 | export declare function useReducerAtom<Value, Action>(anAtom: PrimitiveAtom<Value>, reducer: (v: Value, a?: Action) => Value): [Value, (action?: Action) => void];
|
9 | export declare function useReducerAtom<Value, Action>(anAtom: PrimitiveAtom<Value>, reducer: (v: Value, a: Action) => Value): [Value, (action: Action) => void];
|
10 | export declare function atomWithReducer<Value, Action>(initialValue: Value, reducer: (v: Value, a?: Action) => Value): WritableAtom<Value, Action | undefined>;
|
11 | export declare function atomWithReducer<Value, Action>(initialValue: Value, reducer: (v: Value, a: Action) => Value): WritableAtom<Value, Action>;
|
12 | declare type AtomFamily<Param, AtomType> = {
|
13 | (param: Param): AtomType;
|
14 | remove(param: Param): void;
|
15 | };
|
16 | export declare function atomFamily<Param, Value, Update>(initializeRead: (param: Param) => (get: Getter) => Promise<Value>, initializeWrite: (param: Param) => (get: Getter, set: Setter, update: Update) => void | Promise<void>, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, WritableAtom<Value, Update>>;
|
17 | export declare function atomFamily<Param, Value, Update>(initializeRead: (param: Param) => (get: Getter) => Value, initializeWrite: (param: Param) => (get: Getter, set: Setter, update: Update) => void | Promise<void>, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, WritableAtom<Value, Update>>;
|
18 | export declare function atomFamily<Param, Value, Update>(initializeRead: (param: Param) => Function, initializeWrite: (param: Param) => (get: Getter, set: Setter, update: Update) => void | Promise<void>, areEqual?: (a: Param, b: Param) => boolean): never;
|
19 | export declare function atomFamily<Param, Value, Update>(initializeRead: (param: Param) => Value, initializeWrite: (param: Param) => (get: Getter, set: Setter, update: Update) => void | Promise<void>, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, WritableAtom<Value, Update>>;
|
20 | export declare function atomFamily<Param, Value, Update extends never = never>(initializeRead: (param: Param) => (get: Getter) => Promise<Value>, initializeWrite?: null, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, Atom<Value>>;
|
21 | export declare function atomFamily<Param, Value, Update extends never = never>(initializeRead: (param: Param) => (get: Getter) => Value, initializeWrite?: null, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, Atom<Value>>;
|
22 | export declare function atomFamily<Param, Value, Update>(initializeRead: (param: Param) => Function, initializeWrite?: null, areEqual?: (a: Param, b: Param) => boolean): never;
|
23 | export declare function atomFamily<Param, Value, Update extends never = never>(initializeRead: (param: Param) => Value, initializeWrite?: null, areEqual?: (a: Param, b: Param) => boolean): AtomFamily<Param, PrimitiveAtom<Value>>;
|
24 | export {};
|