/**
 * Qs module config
 */
type QueryStringConfig = {
    depth?: number
    allowPrototypes?: boolean
    plainObjects?: boolean
    parameterLimit?: number
    arrayLimit?: number
    ignoreQueryPrefix?: boolean
    delimiter?: RegExp | string
    allowDots?: boolean
    charset?: 'utf-8' | 'iso-8859-1' | undefined
    charsetSentinel?: boolean
    interpretNumericEntities?: boolean
    parseArrays?: boolean
    comma?: boolean
  }
/**
 * Base config used by all types
 */
type BodyParserBaseConfig = {
    encoding: string
    limit: string | number
    types: string[]
  }
  
  /**
   * Body parser config for parsing JSON requests
   */
  export type BodyParserJSONConfig = BodyParserBaseConfig & {
    strict: boolean
    convertEmptyStringsToNull: boolean
  }
  
  /**
   * Parser config for parsing form data
   */
  export type BodyParserFormConfig = BodyParserBaseConfig & {
    queryString: QueryStringConfig
    convertEmptyStringsToNull: boolean
  }
  
  /**
   * Parser config for parsing raw body (untouched)
   */
  export type BodyParserRawConfig = BodyParserBaseConfig
/**
 * Body parser config for all supported form types
 */
export type BodyParserConfig = {
    allowedMethods: string[]
    json: BodyParserJSONConfig
    form: BodyParserFormConfig
    raw: BodyParserRawConfig
    multipart: BodyParserMultipartConfig
  }