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;
}
