// flow-typed signature: 68c51e9216afd9798d898289d7675b5a
// flow-typed version: <<STUB>>/rollup-plugin-json_v^2.0.2/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'rollup-plugin-json'
 *
 * 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 'rollup-plugin-json' {
  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.
 */
declare module 'rollup-plugin-json/dist/rollup-plugin-json.cjs' {
  declare module.exports: any;
}

declare module 'rollup-plugin-json/dist/rollup-plugin-json.es' {
  declare module.exports: any;
}

declare module 'rollup-plugin-json/src/index' {
  declare module.exports: any;
}

// Filename aliases
declare module 'rollup-plugin-json/dist/rollup-plugin-json.cjs.js' {
  declare module.exports: $Exports<'rollup-plugin-json/dist/rollup-plugin-json.cjs'>;
}
declare module 'rollup-plugin-json/dist/rollup-plugin-json.es.js' {
  declare module.exports: $Exports<'rollup-plugin-json/dist/rollup-plugin-json.es'>;
}
declare module 'rollup-plugin-json/src/index.js' {
  declare module.exports: $Exports<'rollup-plugin-json/src/index'>;
}
