// flow-typed signature: 11bcd754a34b4417a48b5edd97591597
// flow-typed version: <<STUB>>/query-string_v^4.2.3/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'query-string'
 *
 * Fill this stub out by replacing all the `any` types.
 *
 * Once filled out, we encourage you to share your work with the 
 * community by sending a pull request to: 
 * https://github.com/flowtype/flow-typed
 */

declare module 'query-string' {
  declare module.exports: any;
}

/**
 * We include stubs for each file inside this npm package in case you need to
 * require those files directly. Feel free to delete any files that aren't
 * needed.
 */


// Filename aliases
declare module 'query-string/index' {
  declare module.exports: $Exports<'query-string'>;
}
declare module 'query-string/index.js' {
  declare module.exports: $Exports<'query-string'>;
}
