diff --git a/types/mailgun-js/index.d.ts b/types/mailgun-js/index.d.ts index eaa210e6e1..0c6ef0eef3 100644 --- a/types/mailgun-js/index.d.ts +++ b/types/mailgun-js/index.d.ts @@ -128,6 +128,15 @@ declare namespace Mailgun { type ValidationCallback = (error: Error, body: ValidateResponse) => void; + interface ValidationOptionsPublic { + api_key?: string; + mailbox_verification?: boolean | "true" | "false"; + } + + interface ValidationOptionsPrivate { + mailbox_verification?: boolean | "true" | "false"; + } + interface ValidateResponse { address: string; did_you_mean: string | null; @@ -156,13 +165,15 @@ declare namespace Mailgun { parse(addressList: string[], callback?: validation.ValidationCallback): Promise; validate(address: string, callback: validation.ValidationCallback): void; - validate(address: string, opts: { [key: string]: any }, callback: validation.ValidationCallback): void; + validate(address: string, opts: validation.ValidationOptionsPublic, callback: validation.ValidationCallback): void; // tslint:disable-next-line unified-signatures validate(address: string, isPrivate: boolean, callback: validation.ValidationCallback): void; - validate(address: string, isPrivate: boolean, opts: { [key: string]: any }, callback: validation.ValidationCallback): void; + validate(address: string, isPrivate: false, opts: validation.ValidationOptionsPublic, callback: validation.ValidationCallback): void; + validate(address: string, isPrivate: true, opts: validation.ValidationOptionsPrivate, callback: validation.ValidationCallback): void; - validate(address: string, isPrivate?: boolean, opts?: { [key: string]: any }): Promise; - validate(address: string, opts: { [key: string]: any }): Promise; + validate(address: string, opts?: validation.ValidationOptionsPublic): Promise; + validate(address: string, isPrivate: false, opts?: validation.ValidationOptionsPublic): Promise; + validate(address: string, isPrivate: true, opts?: validation.ValidationOptionsPrivate): Promise; } interface Lists { diff --git a/types/mailgun-js/mailgun-js-tests.ts b/types/mailgun-js/mailgun-js-tests.ts index 12bf18e437..e06e683248 100644 --- a/types/mailgun-js/mailgun-js-tests.ts +++ b/types/mailgun-js/mailgun-js-tests.ts @@ -33,12 +33,12 @@ mailgun.messages().send(exampleSendData, (err, body) => {}); let validationResultPromise: Promise; validationResultPromise = mailgun.validate("foo@mailgun.net"); validationResultPromise = mailgun.validate("foo@mailgun.net", true); -validationResultPromise = mailgun.validate("foo@mailgun.net", true, { option: "option" }); -validationResultPromise = mailgun.validate("foo@mailgun.net", { option: "option" }); +validationResultPromise = mailgun.validate("foo@mailgun.net", true, { mailbox_verification: true }); +validationResultPromise = mailgun.validate("foo@mailgun.net", { mailbox_verification: false, api_key: "..." }); mailgun.validate("foo@mailgun.net", (error, body) => {}); mailgun.validate("foo@mailgun.net", true, (error, body) => {}); -mailgun.validate("foo@mailgun.net", true, { option: "option" }, (error, body) => {}); -mailgun.validate("foo@mailgun.net", { option: "option" }, (error, body) => {}); +mailgun.validate("foo@mailgun.net", true, { mailbox_verification: true }, (error, body) => {}); +mailgun.validate("foo@mailgun.net", { mailbox_verification: false, api_key: "..." }, (error, body) => {}); const validationResult6: mailgunFactory.validation.ValidateResponse = { address: "foo@mailgun.net",