import { type Dispatch, type SetStateAction } from 'react';
import { type Variable } from '../../types';
export interface UseVariableOptions {
    /**
     * Defines how server variables should be handled.
     * - disallow: disallow server variables from being used in this component
     * - one-row: fetches the first row of the server variable and uses that as the value.
     *       Useful for e.g. condition truthiness checks for non-emptiness
     */
    serverVariable?: 'disallow' | 'one-row';
    suspend?: boolean | number;
}
/**
 * A helper hook that turns a Variable class into the actual value by accessing the appropriate recoil state from the
 * atomRegistry defined above. For convenience, it will also handle a non variable being passed and will return it
 * directly and a noop function for setting it. In most cases components accept a variable or something else, so this
 * helps to clean up all those areas in a consistent manner.
 *
 * @param variable the possible variable to use
 */
export declare function useVariable<T>(variable: Variable<T> | T, opts?: UseVariableOptions): [value: T, update: Dispatch<SetStateAction<T>>];
//# sourceMappingURL=use-variable.d.ts.map