import type { FieldValidator } from "../../core/types";
import type { WithFieldBuilder } from "../types";
type ChainedValidateFunc<T> = {
    (validators: FieldValidator | FieldValidator[]): T;
    add(validators: FieldValidator | FieldValidator[]): T;
    only(validators: FieldValidator | FieldValidator[]): T;
};
export type WithValidateFunc<T> = {
    (validators: FieldValidator | FieldValidator[]): T;
    add(validators: FieldValidator | FieldValidator[]): T;
    only(validators: FieldValidator | FieldValidator[]): T;
    none(): T;
    lazy: ChainedValidateFunc<T>;
};
export declare function WithValidate<TBase extends WithFieldBuilder>(Base: TBase): {
    new (...args: any[]): {
        readonly validate: WithValidateFunc</*elided*/ any>;
        Field: import("../../core/types").FieldClass<any>;
        options: import("../../core/types").FieldOptions;
        getOption<K extends keyof import("../../core/types").FieldOptions>(option: K): import("../../core/types").FieldOptions[K];
        setOption<K extends keyof import("../../core/types").FieldOptions>(option: K, value: import("../../core/types").FieldOptions[K]): void;
        toField(model?: import("../../..").Model): import("../..").Field<any>;
    };
} & TBase;
export {};
//# sourceMappingURL=WithValidate.d.ts.map