import type { IDeepReadonly } from '../typings/common';
import type { ICore, IOpenFunctionValidatorResult, IOpenValidatorParams } from '../typings/core';
import type { IBaseSchema, IRuleItem } from '../typings/schema';
export interface IParams {
    value: any;
    rules: IBaseSchema['rules'] | IDeepReadonly<IBaseSchema['rules']>;
    globalValidators: ICore['validators'] | undefined;
    globalValidatorParams: IOpenValidatorParams | undefined;
    locale: Required<ICore>['locale']['validation'];
}
export interface IValidationError extends IOpenFunctionValidatorResult {
    [key: string]: any;
}
export declare class SchemaRulesValidator {
    static failUK: string | symbol;
    static isValidationError(err: any): err is IValidationError;
    static fail(data: any): never;
    private value;
    private rules;
    private locale;
    private globalValidators;
    private globalValidatorParams;
    constructor(params: IParams);
    setValue(value: IParams['value']): void;
    validate(): Promise<IOpenFunctionValidatorResult>;
    private validateRules;
    private validateRuleItem;
    private validateGlobal;
}
export declare function isValidFunctionResult(result: any): result is IOpenFunctionValidatorResult;
export declare function isValidRules(rules: any): rules is IRuleItem[];
export declare function normalizeRules(rules: any): IRuleItem[];
export declare function validateRules(params: IParams): Promise<IOpenFunctionValidatorResult>;
