@zedux/stores
Version:
The legacy composable store model of Zedux
25 lines (24 loc) • 1.17 kB
TypeScript
import { AtomTemplateBase, Ecosystem } from '@zedux/atoms';
import { AtomInstance } from './AtomInstance';
import { AnyAtomGenerics, AtomGenerics, AtomValueOrFactory } from './types';
export type AtomInstanceRecursive<G extends Omit<AtomGenerics, 'Node' | 'Template'>> = AtomInstance<G & {
Node: AtomInstanceRecursive<G>;
Template: AtomTemplateRecursive<G>;
}>;
export type AtomTemplateRecursive<G extends Omit<AtomGenerics, 'Node' | 'Template'>> = AtomTemplate<G & {
Node: AtomInstanceRecursive<G>;
Template: AtomTemplateRecursive<G>;
}>;
export declare class AtomTemplate<G extends AtomGenerics & {
Node: AtomInstanceRecursive<G>;
Template: AtomTemplateRecursive<G>;
} = AnyAtomGenerics> extends AtomTemplateBase<G> {
/**
* This method should be overridden when creating custom atom classes that
* create a custom atom instance class. Return a new instance of your atom
* instance class.
*/
_createInstance(ecosystem: Ecosystem, id: string, params: G['Params']): G['Node'];
getInstanceId(ecosystem: Ecosystem, params?: G['Params']): string;
override(newValue: AtomValueOrFactory<G>): AtomTemplate<G>;
}