import FieldInterface from "src/models/FieldInterface";
import FormInterface from "src/models/FormInterface";
import { ValidationPlugin, ValidationPluginConfig, ValidationPluginConstructor, ValidationPluginInterface } from "src/models/ValidatorInterface";
export declare class DVR<TValidator = any> implements ValidationPluginInterface<TValidator> {
    promises: Promise<any>[];
    config: any;
    state: any;
    extend?: (args: {
        validator: TValidator;
        form: FormInterface;
    }) => void;
    validator: TValidator;
    schema?: any;
    constructor({ config, state, promises, }: ValidationPluginConstructor<TValidator>);
    extendValidator(): void;
    validate(field: FieldInterface): void;
    makeLabels(validation: any, field: FieldInterface): void;
    validateFieldSync(field: FieldInterface, data: any): void;
    validateFieldAsync(field: FieldInterface, data: any): void;
    handleAsyncPasses(field: FieldInterface, resolve: () => void): void;
    handleAsyncFails(field: FieldInterface, validation: any, resolve: () => void): void;
    executeAsyncValidation(field: FieldInterface): void;
    rules(rules: any, type: "sync" | "async"): any[];
}
declare const _default: <TValidator = any>(config?: ValidationPluginConfig<TValidator>) => ValidationPlugin<TValidator>;
export default _default;
//# sourceMappingURL=DVR.d.ts.map