import { ComputedRef, InjectionKey } from 'vue';
import { ResetMethod, UseValidation } from '../useValidation/useValidation';
export type UseValidationObserver = {
    register: ValidationObserverRegister;
    validate: () => Promise<boolean>;
    pause: () => void;
    resume: () => void;
    /**
     * Reset all observed validations' states.
     *
     * @see UseValidation['reset']
     */
    reset: ResetMethod;
    valid: ComputedRef<boolean>;
    invalid: ComputedRef<boolean>;
    errors: ComputedRef<string[]>;
    pending: ComputedRef<boolean>;
};
export type ValidationObserverUnregister = () => void;
export type ValidationObserverRegister = (error: UseValidation) => ValidationObserverUnregister;
export declare const VALIDATION_OBSERVER_INJECTION_KEY: InjectionKey<UseValidationObserver>;
export declare function useValidationObserver(): UseValidationObserver;
