import { Namespace, PropertyResult } from '../index'; import { TypeInt } from './schema-type'; export declare abstract class Validator { validateInput(namespace: Namespace, input: any, inputType: TypeInt): PropertyResult[]; abstract validate(namespace: Namespace, input: I | undefined, inputType: TypeInt, propertiesResult: PropertyResult[]): void; } type ObjectValidation = Validator | ((namespace: Namespace, input: I, inputType: TypeInt) => PropertyResult[]); export type ObjectValidations = Array>; export declare class ObjectValidator extends Validator { #private; private readonly validations; constructor(validations: ObjectValidations); validate(namespace: Namespace, input: any, inputType: TypeInt, propertiesResult: PropertyResult[]): void; } type PropertyValidation = (namespace: Namespace, input: I, inputType: TypeInt) => PropertyResult | undefined | void; export type PropertyValidations = Array>; export declare class PropertyValidator extends Validator { private readonly validations; constructor(validations: PropertyValidations); add(validation: PropertyValidation): void; validate(namespace: Namespace, input: any, inputType: TypeInt, propertiesResult: PropertyResult[]): void; } export {};