fluxel
Version:
An ultra-lightweight, high-performance library for efficient DOM building and dynamic web UIs
16 lines (15 loc) • 931 B
TypeScript
import BaseFluxel from "./index.js";
import ReactiveDependency from "./reactiveDependency.js";
import type { ChildrenType, StateParam, FluxelJSXElement, CanBeReactive } from "./type.js";
interface MergeDependencies {
<T, U, V>(dep0: ReactiveDependency<T>, dep1: ReactiveDependency<U>, dep2: ReactiveDependency<V>): ReactiveDependency<[T, U, V]>;
<T, U>(dep0: ReactiveDependency<T>, dep1: ReactiveDependency<U>): ReactiveDependency<[T, U]>;
<T>(...deps: ReactiveDependency<T>[]): ReactiveDependency<T[]>;
}
declare const Fluxel: typeof BaseFluxel & {
reactive: <T extends object, R extends CanBeReactive<ChildrenType | FluxelJSXElement>>(initialState: T, renderer: (stateParam: StateParam<T>) => R) => R;
schedule: (fn: () => void) => void;
mergeDependencies: MergeDependencies;
};
export declare const pureStateReservedKeys: readonly ["render", "use", "useWithMemo", "listenTarget"];
export default Fluxel;