export interface UncertainObject { [key: string]: ReturnType; } export interface ErrorInterface { attribute: string; details: string; } export declare type ValidationModelInterface = UncertainObject; export interface ModelContainerInterface { instance?: ModelI; defaults?: ModelI; } export interface ValidatorPublicInterface { modelName: string; modelValues: ModelI; modelErrors: UncertainObject; modelAttributes: Array; dropToDefaults: () => void; setDefaults: (defaults: UncertainObject) => void; validate: (groups?: Array) => Promise; setModelValue: (attribute: string, value: any) => void; addErrors: (errors: Array<{ attribute: string; details: string; }>) => void; } export interface ValidatorConfig { skipAttributeCheck?: boolean; } export declare abstract class AbstractValidator implements ValidatorPublicInterface { abstract validate: (groups?: Array) => Promise; abstract readonly modelName: string; protected modelErrorsContainer: Map>; protected modelContainer: ModelContainerInterface; protected config: ValidatorConfig; readonly modelAttributes: Array; readonly modelValues: ModelI; readonly modelErrors: UncertainObject; setModelValue: (attribute: string, value: T) => void; setDefaults: (defaults: Partial) => void; dropToDefaults: () => void; clear: () => void; addErrors: (errors: ErrorInterface[]) => void; protected handleErrors: (errors: any, groups: any) => void; protected protectContainer: () => void; private convertVendorErrors; }