import { ValidationArguments as ValidationArgs } from 'class-validator'; import { NType } from './n-type'; type NominalTypeClass = InstanceType>; export declare abstract class NTypeValidator { protected abstract message(validationArguments?: ValidationArgs): string; protected abstract rule(value: NominalType['value'], validationArguments?: ValidationArgs): Promise | boolean; /** * Overridden to implement additional behaviors * * @param validationArguments */ defaultMessage(validationArguments?: ValidationArgs): string; /** * Overridden to cast class to string if needed * * @param value * @param validationArguments */ validate(value: any | NominalType, validationArguments?: ValidationArgs): Promise | boolean; } export {};