resig.js
Version:
Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.
80 lines (79 loc) • 4.72 kB
TypeScript
/**
* Signal-Σ - Category-theoretic signal library
* A signal library that obeys algebraic laws, grows via plugins, and never breaks composition
*/
export * from './core/signal';
export * from './core/effect';
export * from './algebras/time';
export * from './algebras/fetch';
export * from './algebras/state';
export * from './router';
export { debouncePlugin, throttlePlugin, cachePlugin, loggerPlugin, filterPlugin, transformPlugin, validatePlugin, persistPlugin, commonPlugins, } from './plugins';
export { compose as composePlugins, apply as applyPlugin } from './plugins';
export { DragContainer, createDragContainer, RealtimeSync, createRealtimeSync, ThemeManager, createThemeManager, UndoRedoManager, createUndoRedoManager, ExtensionPatterns, createExtension, globalExtensionRegistry, } from './extensions';
export { AITransformer, composeAITransformers, createLLMTransformer, createVisionModel, BackpressureStrategy, createStreamingSignal, StreamCoalgebra, StreamingSignal, streamFrom, streamFromIterable, BroadcastChannelSignaling, createWebRTCBroadcast, createWebRTCStream, createEventSourcedCRDT, EventSourcedCRDT, eventSourcedGCounter, eventSourcedORSet, indexedDBEventStore, combineStreams, createAIEnhancedSignal, createCollaborativeSignal, createDebouncedStream, createPersistentStream, createThrottledStream, mergeStreams, } from './streaming';
import { Priority } from './scheduler';
/**
* Main Signal-Σ API
*/
declare const _default: {
signal: <A>(initial: A) => import("./core/signal").MutableSignal<A> & {
_set: (value: A) => void;
};
effect: <A_1>(initial: A_1) => import("./core/effect").Effect<A_1> & {
_set: (value: A_1) => void;
};
time: <A_2>(initial: A_2) => import("./algebras/time").Time<A_2> & {
_set: (value: A_2) => void;
};
fetch: <A_3>(fetcher: () => Promise<A_3>, deps?: import("./core/effect").Effect<unknown>[]) => import("./algebras/fetch").Fetch<A_3> & {
_set: (value: import("./algebras/fetch").AsyncState<A_3>) => void;
};
machine: <S, A_4>(initialState: S, reducer: (state: S, action: A_4) => S) => import("./algebras/state").StateMachine<S, A_4>;
router: <A_5>(routes: import("./router").Route<A_5>[], env?: import("./router").NavigationEnv) => import("./router").RouterSignal<A_5>;
route: <T extends string>(template: T) => import("./router").Route<{}>;
scheduler: () => import("./scheduler").Scheduler;
getGlobalScheduler: () => import("./scheduler").Scheduler;
schedule: (task: Omit<import("./scheduler").Task, "id"> & {
id?: string;
}) => string;
cancel: (taskId: string) => boolean;
delay: (ms: number) => Promise<void>;
nextFrame: () => Promise<void>;
idle: (callback: () => void) => string;
animate: (duration: number, callback: (progress: number) => void, easing?: (t: number) => number) => string;
debounce: <T_1 extends (...args: any[]) => void>(fn: T_1, delay: number) => T_1 & {
cancel: () => void;
};
throttle: <T_2 extends (...args: any[]) => void>(fn: T_2, delay: number) => T_2 & {
cancel: () => void;
};
Priority: typeof Priority;
domSignal: <T_3>(initialValue: T_3) => import("./core/signal").Signal<T_3> & {
_set: (value: T_3) => void;
};
bindElement: (element: HTMLElement, sig: import("./core/signal").Signal<any>) => () => void;
bindAttribute: (element: HTMLElement, attribute: string, sig: import("./core/signal").Signal<any>) => () => void;
bindProperty: (element: HTMLElement, property: string, sig: import("./core/signal").Signal<any>) => () => void;
bindEvent: (element: HTMLElement, event: string, sig: import("./core/signal").Signal<any> & {
_set: (value: any) => void;
}) => () => void;
domBlock: (element: HTMLElement) => {
element: HTMLElement;
render: () => HTMLElement;
};
reactiveDOMBlock: (element: HTMLElement, sig: import("./core/signal").Signal<any>) => {
element: HTMLElement;
signal: import("./core/signal").Signal<any>;
render: () => HTMLElement;
};
syncCRDTToDOM: (_element: HTMLElement, _crdt: any) => () => void;
bindFormToSignal: (form: HTMLFormElement, sig: import("./core/signal").Signal<any> & {
_set: (value: any) => void;
}) => () => void;
delegate: (element: HTMLElement, selector: string, event: string, handler: (e: Event) => void) => () => void;
animateElement: (_element: HTMLElement, _animation: any) => Promise<void>;
observeIntersection: (element: HTMLElement, callback: (entry: any) => void) => () => void;
observeResize: (element: HTMLElement, callback: (entry: any) => void) => () => void;
};
export default _default;