@tanstack/ember-table
Version:
Headless UI for building powerful tables & datagrids for Ember.
38 lines • 1.55 kB
TypeScript
import type { Atom, AtomOptions, Observer, Subscription } from '@tanstack/store';
export declare function subscribeNoEffect(): Subscription;
/**
* Ember-native signal implementation.
* In future ember >7.3 `tracked` will be available by itself
* so the class wrapper will not be needed for those versions
*/
export declare class Signal<T> {
#private;
_value: T;
constructor(value: T, options: AtomOptions<T> | undefined);
subscribe(listenerOrObserver: Observer<T> | ((value: T) => void)): Subscription;
get(): T;
set(value: T | ((prev: T) => T)): void;
get value(): T;
set value(next: T);
update(fn: (value: T) => T): void;
}
export declare class ComputedSignal<T> {
#private;
constructor(compute: () => T);
get(): T;
subscribe: typeof subscribeNoEffect;
get value(): T;
}
export declare function signal<T>(value: T, options: AtomOptions<T> | undefined): Signal<T>;
/**
* Creates an Ember-native writable atom, satisfying the `@tanstack/store`
* `Atom` contract so it can be passed to `options.atoms`. Because it is backed
* by a `@tracked` Signal, reading `atom.get()` directly in a template or
* getter is reactive — unlike a foreign `@tanstack/store` atom, whose reads
* create no Glimmer tag dependency.
*
* Takes a plain initial value only; there is no derived/function overload.
*/
export declare function createAtom<T>(initialValue: T, options?: AtomOptions<T>): Atom<T>;
export declare function computed<T>(fn: () => T): ComputedSignal<T>;
//# sourceMappingURL=signal.d.ts.map