zp-bee
Version: 
zp-bee,是一款基于 Dumi,由 React + TypeScript 开发的组件库 🎉。
42 lines (41 loc) • 1.22 kB
TypeScript
declare type Disconnect = {
    disconnect: () => void;
};
export declare class Stateful<T> {
    protected value: T;
    private listeners;
    private queue;
    constructor(value: T);
    snapshot(): T;
    private emit;
    private flush;
    protected update(value: T): void;
    subscribe(callback: (value: T) => void): Disconnect;
}
export declare class Atom<T> extends Stateful<T> {
    setState(value: T): void;
}
declare type SelectorGenerator<T> = (context: {
    get: <V>(dep: Stateful<V>) => V;
}) => T;
export declare class Selector<T> extends Stateful<T> {
    private readonly generate;
    private registeredDeps;
    private addDep;
    private updateSelector;
    constructor(generate: SelectorGenerator<T>);
}
export declare function atom<V>(value: {
    key: string;
    default: V;
}): Atom<V>;
export declare function selector<V>(value: {
    key: string;
    get: SelectorGenerator<V>;
}): Selector<V>;
export declare function useCoiledValue<T>(value: Stateful<T>): T;
export declare function useCoiledState<T>(atom: Atom<T>): [T, (value: T) => void];
export declare function setCoiledState<T extends object>(atom: Atom<T>): <U extends keyof T>(value: {
    [K in U]: T[K];
}) => void;
export {};