import { DependencyList, Dispatch } from 'react'; import { InitialState, NextState } from '../util/resolveHookState'; export interface ValidityState extends Record { isValid: boolean | undefined; } export declare type ValidatorImmediate = () => V; export declare type ValidatorDeferred = (done: Dispatch>) => any; export declare type Validator = ValidatorImmediate | ValidatorDeferred; export declare type UseValidatorReturn = [V, () => void]; /** * Performs validation when any of provided dependencies has changed. * * @param validator Function that performs validation. * @param deps Dependencies list that passed straight to underlying `useEffect`. * @param initialValidity Initial validity state. */ export declare function useValidator(validator: Validator, deps: DependencyList, initialValidity?: InitialState): UseValidatorReturn;