// flow-typed signature: 1f92e6e0e0e9d72d7fdfeeadbb190eb8
// flow-typed version: <<STUB>>/rollup-plugin-eslint_v^3.0.0/flow_v0.42.0

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

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

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