/// declare namespace MicrosoftJQueryUnobtrusiveValidation { type JQuerySelector = string | Document | Element | JQuery; interface Adapter { name: string; params: string[]; adapt: Function; } interface Adapters extends Array { add(adapterName: string, fn: Function): Adapters; add(adapterName: string, params: string[], fn: Function): Adapters; addMinMax( adapterName: string, minRuleName: string, maxRuleName: string, minMaxRuleName: string, minAttribute?: string, maxAttribute?: string, ): Adapters; addSingleVal(adapterName: string, ruleName: string): Adapters; addSingleVal(adapterName: string, attribute: string, ruleName: string): Adapters; addBool(adapterName: string, ruleName?: string): Adapters; addMethod(adapterName: string, fn: (value: string, element: Element, params: any) => any): Adapters; } interface Validator { adapters: Adapters; parseElement(element: JQuerySelector, skipAttach?: boolean): void; parse(selector: JQuerySelector): void; } } declare namespace JQueryValidation { interface ValidatorStatic { unobtrusive: MicrosoftJQueryUnobtrusiveValidation.Validator; } }