text: declare module "validator" {
    declare module.exports: {
      blacklist: $Exports<'validator/lib/blacklist'>,
      contains: $Exports<'validator/lib/contains'>,
      equals: $Exports<'validator/lib/equals'>,
      escape: $Exports<'validator/lib/escape'>,
      isAfter: $Exports<'validator/lib/isAfter'>,
      isAlpha: $Exports<'validator/lib/isAlpha'>,
      isAlphanumeric: $Exports<'validator/lib/isAlphanumeric'>,
      isAscii: $Exports<'validator/lib/isAscii'>,
      isBase64: $Exports<'validator/lib/isBase64'>,
      isBefore: $Exports<'validator/lib/isBefore'>,
      isBoolean: $Exports<'validator/lib/isBoolean'>,
      isByteLength: $Exports<'validator/lib/isByteLength'>,
      isCreditCard: $Exports<'validator/lib/isCreditCard'>,
      isCurrency: $Exports<'validator/lib/isCurrency'>,
      isDataURI: $Exports<'validator/lib/isDataURI'>,
      isDate: $Exports<'validator/lib/isDate'>,
      isDecimal: $Exports<'validator/lib/isDecimal'>,
      isDivisibleBy: $Exports<'validator/lib/isDivisibleBy'>,
      isEmail: $Exports<'validator/lib/isEmail'>,
      isEmpty: $Exports<'validator/lib/isEmpty'>,
      isFloat: $Exports<'validator/lib/isFloat'>,
      isFQDN: $Exports<'validator/lib/isFQDN'>,
      isFullWidth: $Exports<'validator/lib/isFullWidth'>,
      isHalfWidth: $Exports<'validator/lib/isHalfWidth'>,
      isHexadecimal: $Exports<'validator/lib/isHexadecimal'>,
      isHexColor: $Exports<'validator/lib/isHexColor'>,
      isIn: $Exports<'validator/lib/isIn'>,
      isInt: $Exports<'validator/lib/isInt'>,
      isIP: $Exports<'validator/lib/isIP'>,
      isISBN: $Exports<'validator/lib/isISBN'>,
      isISIN: $Exports<'validator/lib/isISIN'>,
      isISO8601: $Exports<'validator/lib/isISO8601'>,
      isISSN: $Exports<'validator/lib/isISSN'>,
      isJSON: $Exports<'validator/lib/isJSON'>,
      isLength: $Exports<'validator/lib/isLength'>,
      isLowercase: $Exports<'validator/lib/isLowercase'>,
      isMACAddress: $Exports<'validator/lib/isMACAddress'>,
      isMD5: $Exports<'validator/lib/isMD5'>,
      isMobilePhone: $Exports<'validator/lib/isMobilePhone'>,
      isMongoId: $Exports<'validator/lib/isMongoId'>,
      isMultibyte: $Exports<'validator/lib/isMultibyte'>,
      isNumeric: $Exports<'validator/lib/isNumeric'>,
      isSurrogatePair: $Exports<'validator/lib/isSurrogatePair'>,
      isUppercase: $Exports<'validator/lib/isUppercase'>,
      isURL: $Exports<'validator/lib/isURL'>,
      isUUID: $Exports<'validator/lib/isUUID'>,
      isVariableWidth: $Exports<'validator/lib/isVariableWidth'>,
      isWhitelisted: $Exports<'validator/lib/isWhitelisted'>,
      ltrim: $Exports<'validator/lib/ltrim'>,
      matches: $Exports<'validator/lib/matches'>,
      normalizeEmail: $Exports<'validator/lib/normalizeEmail'>,
      rtrim: $Exports<'validator/lib/rtrim'>,
      stripLow: $Exports<'validator/lib/stripLow'>,
      toBoolean: $Exports<'validator/lib/toBoolean'>,
      toDate: $Exports<'validator/lib/toDate'>,
      toFloat: $Exports<'validator/lib/toFloat'>,
      toInt: $Exports<'validator/lib/toInt'>,
      trim: $Exports<'validator/lib/trim'>,
      unescape: $Exports<'validator/lib/unescape'>,
      whitelist: $Exports<'validator/lib/whitelist'>
    };
  }
  
  type validator$MinMaxOptionalOptions = {
    min?: number,
    max?: number
  }
  
  type validator$MinMaxOptions = {
    min: number,
    max?: number
  }
  
  type validator$IsAlphaLocale = 'ar' | 'ar-AE' | 'ar-BH' | 'ar-DZ' | 'ar-EG' | 'ar-IQ' | 'ar-JO'
    | 'ar-KW' | 'ar-LB' | 'ar-LY' | 'ar-MA' | 'ar-QA' | 'ar-QM' | 'ar-SA' | 'ar-SD' | 'ar-SY'
    | 'ar-TN' | 'ar-YE' | 'cs-CZ' | 'da-DK' | 'de-DE' | 'en-AU' | 'en-GB' | 'en-HK' | 'en-IN'
    | 'en-NZ' | 'en-US' | 'en-ZA' | 'en-ZM' | 'es-ES' | 'fr-FR' | 'hu-HU' | 'nl-NL' | 'pl-PL'
    | 'pt-BR' | 'pt-PT' | 'ru-RU' | 'sr-RS' | 'sr-RS@latin' | 'tr-TR' | 'uk-UA';
  
  type validator$IsAlphanumericLocale = validator$IsAlphaLocale | 'fr-BE' | 'nl-BE';
  
  type validator$IsMobilePhoneLocale = 'ar-DZ' | 'ar-SA' | 'ar-SY' | 'cs-CZ' | 'de-DE' | 'da-DK'
    | 'el-GR' | 'en-AU' | 'en-GB' | 'en-HK' | 'en-IN' | 'en-NG' | 'en-NZ' | 'en-US' | 'en-CA'
    | 'en-ZA' | 'en-ZM' | 'es-ES' | 'en-PK' | 'fi-FI' | 'fr-FR' | 'he-IL' | 'hu-HU' | 'it-IT'
    | 'ja-JP' | 'ms-MY' | 'nb-NO' | 'nn-NO' | 'pl-PL' | 'pt-PT' | 'ro-RO' | 'ru-RU' | 'sr-RS'
    | 'tr-TR' | 'vi-VN' | 'zh-CN' | 'zh-HK' | 'zh-TW';
  
  type validator$IsUUIDVersions = 3 | 4 | 5;
  
  type validator$IsIPVersions = 4 | 6;
  
  type validator$IsISBNVersions = 10 | 13;
  
  type validator$IsCurrencyOptions = {
    symbol?: string,
    require_symbol?: bool,
    allow_space_after_symbol?: bool,
    symbol_after_digits?: bool,
    allow_negatives?: bool,
    parens_for_negatives?: bool,
    negative_sign_before_digits?: bool,
    negative_sign_after_digits?: bool,
    allow_negative_sign_placeholder?: bool,
    thousands_separator?: string,
    decimal_separator?: string,
    allow_space_after_digits?: bool
  }
  
  type validator$IsEmailOptions = {
    allow_display_name?: bool,
    require_display_name?: bool,
    allow_utf8_local_part?: bool,
    require_tld?: bool
  }
  
  type validator$IsFQDNOptions = {
    require_tld?: bool,
    allow_underscores?: bool,
    allow_trailing_dot?: bool
  }
  
  type validator$IsURLOptions = {
    protocols?: Array<string>,
    require_tld?: bool,
    require_protocol?: bool,
    require_host?: bool,
    require_valid_protocol?: bool,
    allow_underscores?: bool,
    host_whitelist?: bool,
    host_blacklist?: bool,
    allow_trailing_dot?: bool,
    allow_protocol_relative_urls?: bool
  }
  
  type validator$NormalizeEmailOptions = {
    all_lowercase?: bool,
    gmail_lowercase?: bool,
    gmail_remove_dots?: bool,
    gmail_remove_subaddress?: bool,
    gmail_convert_googlemaildotcom?: bool,
    outlookdotcom_lowercase?: bool,
    outlookdotcom_remove_subaddress?: bool,
    yahoo_lowercase?: bool,
    yahoo_remove_subaddress?: bool,
    icloud_lowercase?: bool,
    icloud_remove_subaddress?: bool,
  }
  
  type validator$IsISSNOptions = {
    case_sensitive?: bool,
    require_hyphen?: bool
  };
  
  declare module "validator/lib/blacklist" {
    declare module.exports: {
      (input: string, chars: string): string
    };
  }
  
  declare module "validator/lib/contains" {
    declare module.exports: {
      (str: string, seed?: mixed): bool
    };
  }
  
  declare module "validator/lib/equals" {
    declare module.exports: {
      (str: string, comparison: string): bool
    };
  }
  
  declare module "validator/lib/escape" {
    declare module.exports: {
      (input: string): string
    }
  }
  
  declare module "validator/lib/isAfter" {
    declare module.exports: {
      (str: string, date?: string): bool
    };
  }
  
  declare module "validator/lib/isAlpha" {
    declare module.exports: {
      (str: string, locale?: validator$IsAlphaLocale): bool
    };
  }
  
  declare module "validator/lib/isAlphanumeric" {
    declare module.exports: {
      (str: string, locale?: validator$IsAlphanumericLocale): bool
    };
  }
  
  declare module "validator/lib/isAscii" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isBase64" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isBefore" {
    declare module.exports: {
      (str: string, date?: string): bool
    };
  }
  
  declare module "validator/lib/isBoolean" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isByteLength" {
    declare module.exports: {
      (str: string, options: validator$MinMaxOptions): bool
    };
  }
  
  declare module "validator/lib/isCreditCard" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isCurrency" {
    declare module.exports: {
      (str: string, options?: validator$IsCurrencyOptions): bool
    };
  }
  
  declare module "validator/lib/isDataURI" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isDate" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isDecimal" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isDivisibleBy" {
    declare module.exports: {
      (str: string, number: string | number): bool
    };
  }
  
  declare module "validator/lib/isEmail" {
    declare module.exports: {
      (str: string, options?: validator$IsEmailOptions): bool;
    };
  }
  
  declare module "validator/lib/isEmpty" {
    declare module.exports: {
      (str: string): bool;
    };
  }
  
  declare module "validator/lib/isFloat" {
    declare module.exports: {
      (str: string, options?: validator$MinMaxOptionalOptions): bool
    };
  }
  
  declare module "validator/lib/isFQDN" {
    declare module.exports: {
      (str: string, options?: validator$IsFQDNOptions): bool
    };
  }
  
  declare module "validator/lib/isFullWidth" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isHalfWidth" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isHexadecimal" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isHexColor" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isIn" {
    declare module.exports: {
      (str: string, values: Array<string> | string): bool
    };
  }
  
  declare module "validator/lib/isInt" {
    declare module.exports: {
      (str: string, options?: validator$MinMaxOptionalOptions): bool
    };
  }
  
  declare module "validator/lib/isIP" {
    declare module.exports: {
      (str: string, version?: validator$IsIPVersions): bool
    };
  }
  
  declare module "validator/lib/isISBN" {
    declare module.exports: {
      (str: string, version?: validator$IsISBNVersions): bool
    };
  }
  
  declare module "validator/lib/isISIN" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isISO8601" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isISSN" {
    declare module.exports: {
      (str: string, options?: validator$IsISSNOptions): bool
    };
  }
  
  declare module "validator/lib/isJSON" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isLength" {
    declare module.exports: {
      (password: string, options: validator$MinMaxOptions): bool;
    }
  }
  
  declare module "validator/lib/isLowercase" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isMACAddress" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isMD5" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isMobilePhone" {
    declare module.exports: {
      (str: string, locale: validator$IsMobilePhoneLocale): bool
    };
  }
  
  declare module "validator/lib/isMongoId" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isMultibyte" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isNumeric" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isSurrogatePair" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isUppercase" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isURL" {
    declare module.exports: {
      (str: string, options?: validator$IsURLOptions): bool
    };
  }
  
  declare module "validator/lib/isUUID" {
    declare module.exports: {
      (str: string, version?: validator$IsUUIDVersions): bool
    };
  }
  
  declare module "validator/lib/isVariableWidth" {
    declare module.exports: {
      (str: string): bool
    };
  }
  
  declare module "validator/lib/isWhitelisted" {
    declare module.exports: {
      (str: string, chars: string | Array<string>): bool
    };
  }
  
  declare module "validator/lib/ltrim" {
    declare module.exports: {
      (input: string, chars?: string): string
    };
  }
  
  declare module "validator/lib/matches" {
    declare module.exports: {
      (str: string, pattern: RegExp | string, modifiers?: string): bool
    };
  }
  
  declare module "validator/lib/normalizeEmail" {
    declare module.exports: {
      (email: string, options?: validator$NormalizeEmailOptions): string
    };
  }
  
  declare module "validator/lib/rtrim" {
    declare module.exports: {
      (input: string, chars?: string): string
    };
  }
  
  declare module "validator/lib/stripLow" {
    declare module.exports: {
      (input: string, keep_new_lines?: bool): string
    };
  }
  
  declare module "validator/lib/toBoolean" {
    declare module.exports: {
      (input: string, strict?: bool): bool
    };
  }
  
  declare module "validator/lib/toDate" {
    declare module.exports: {
      (input: string): Date
    };
  }
  
  declare module "validator/lib/toFloat" {
    declare module.exports: {
      (input: string): number
    };
  }
  
  declare module "validator/lib/toInt" {
    declare module.exports: {
      (input: string, radix?: number | string): number
    };
  }
  
  declare module "validator/lib/trim" {
    declare module.exports: {
      (input: string, chars?: string): string
    };
  }
  
  declare module "validator/lib/unescape" {
    declare module.exports: {
      (input: string): string
    };
  }
  
  declare module "validator/lib/whitelist" {
    declare module.exports: {
      (input: string, chars: string): string
    };
  }
  