alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
17 lines (16 loc) • 755 B
TypeScript
import { Field, FieldOptions } from './Field.js';
export interface FieldGetter {
<Value>(field: Field<Value>): Value;
}
export interface OptionsTracker<Options = any> {
(getter: FieldGetter): Partial<Options> | Promise<Partial<Options>>;
}
export interface ValueTracker<Value = any> {
(getter: FieldGetter): Value;
}
export declare namespace track {
function options<Value, OnChange, Options extends FieldOptions<Value>>(field: Field<Value, OnChange, Options>, tracker: OptionsTracker<Options>): void;
function optionTrackerOf(field: Field): OptionsTracker<any> | undefined;
function value<Value>(field: Field<Value>, tracker: ValueTracker<Value>): void;
function valueTrackerOf(field: Field): ValueTracker<any> | undefined;
}