import Vue from 'vue';
import { ValidationFlags, ValidationResult, VeeObserver, VNodeWithVeeContext } from '../types';
export declare const ValidationProvider: import("vue/types/vue").ExtendedVue<Vue & {
    $_veeObserver: VeeObserver;
    _needsValidation: boolean;
    _inputEventName: string;
    _ignoreImmediate: boolean;
    _pendingValidation?: Promise<ValidationResult> | undefined;
    _pendingReset?: boolean | undefined;
    _resolvedRules: any;
    _regenerateMap?: Record<string, () => string> | undefined;
    _veeWatchers: Record<string, Function>;
    $veeDebounce?: number | undefined;
    $veeHandler?: Function | undefined;
    $veeOnInput?: Function | undefined;
    $veeOnBlur?: Function | undefined;
    $vnode: VNodeWithVeeContext;
    $localeHandler: Function;
}, {
    errors: string[];
    value: undefined;
    initialized: boolean;
    initialValue: undefined;
    flags: ValidationFlags;
    failedRules: {};
    isActive: boolean;
    fieldName: string;
    id: string;
}, {
    setFlags(flags: Partial<ValidationFlags>): void;
    syncValue(v: any): void;
    reset(): void;
    validate(...args: any[]): Promise<ValidationResult>;
    validateSilent(): Promise<ValidationResult>;
    setErrors(errors: string[]): void;
    applyResult({ errors, failedRules, regenerateMap }: Omit<ValidationResult, 'valid'>): void;
    registerField(): void;
}, {
    fieldDeps: string[];
    normalizedEvents: string[];
    isRequired: boolean;
    classes: Record<string, boolean>;
    normalizedRules: {
        [x: string]: any;
    };
}, {
    vid: string;
    name: string;
    mode: TimerHandler;
    rules: any;
    immediate: boolean;
    bails: boolean;
    skipIfEmpty: boolean;
    debounce: number;
    tag: string;
    slim: boolean;
    disabled: boolean;
    customMessages: any;
}>;
