type Options = { sender: string; validateRegex: boolean; validateMx: boolean; validateTypo: boolean; validateDisposable: boolean; validateSMTP: boolean; }; type MailCheckOptions = { additionalTopLevelDomains?: string[]; }; type ValidatorOptions = Partial & { email: string; } & MailCheckOptions; declare global { interface ObjectConstructor { typedKeys(o: T): Array; } } type ElementType> = T extends ReadonlyArray ? E : never; declare const OrderedLevels: readonly ["regex", "typo", "disposable", "mx", "smtp"]; type SubOutputFormat = { valid: boolean; reason?: string | undefined; }; type Level = ElementType; interface GeneralOutputFormat extends SubOutputFormat { reason?: Level | undefined; } type OutputFormat = GeneralOutputFormat & { validators: { [K in Level]?: SubOutputFormat; }; }; declare function validate(emailOrOptions: string | ValidatorOptions): Promise; export { validate as default, validate };