forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mailcheck.d.ts
80 lines (64 loc) · 2.11 KB
/
mailcheck.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Type definitions for Mailcheck 1.1+
// Project: https://github.com/mailcheck/mailcheck
// Definitions by: Paulo Cesar <http://github.com/pocesar>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
declare var Mailcheck: MailcheckModule.Static;
declare module MailcheckModule {
export interface IDistanceFunction {
(s1: string, s2: string): number;
}
export interface ISuggestFunction {
(email: string, domains?: string[], topLevelDomains?: string[], distanceFunction?: IDistanceFunction):void;
}
export interface IJQuerySuggested {
(element: JQuery, suggested: ISuggestion): void;
}
export interface IJQueryEmpty {
(element: JQuery): void;
}
export interface IEmpty {
(): void;
}
export interface ISuggested {
(suggested: ISuggestion): void;
}
export interface ISplitEmail {
topLevelDomain?: string;
domain?: string;
address?: string;
}
export interface ISuggestion {
address: string;
domain: string;
full: string;
}
export interface IOptions {
email: string;
domains?: string[];
secondLevelDomains?: string[];
topLevelDomains?: string[];
distanceFunction?: IDistanceFunction;
suggested?: ISuggested | IJQuerySuggested;
empty?: IEmpty | IJQueryEmpty;
}
export interface Static {
defaultDomains: string[];
defaultSecondLevelDomains: string[];
defaultTopLevelDomains: string[];
domainThreshold: number;
topLevelThreshold: number;
run(opts: IOptions):void;
suggest: ISuggestFunction;
encodeEmail(email: string): string;
splitEmail(email: string): ISplitEmail;
sift3Distance(s1: string, s2: string): number;
findClosestDomain(domain: string, domains: string[], distanceFunction?: IDistanceFunction, threshold?: number): boolean|string;
}
}
interface JQuery {
mailcheck(opts: MailcheckModule.IOptions): void;
}
declare module 'mailcheck' {
export = Mailcheck;
}