// flow-typed signature: 8572281a1e762e212615d34f9d8b0638
// flow-typed version: <<STUB>>/babel-eslint_v^7.2.1/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'babel-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 'babel-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 'babel-eslint/babylon-to-espree/attachComments' {
  declare module.exports: any;
}

declare module 'babel-eslint/babylon-to-espree/convertTemplateType' {
  declare module.exports: any;
}

declare module 'babel-eslint/babylon-to-espree/index' {
  declare module.exports: any;
}

declare module 'babel-eslint/babylon-to-espree/toAST' {
  declare module.exports: any;
}

declare module 'babel-eslint/babylon-to-espree/toToken' {
  declare module.exports: any;
}

declare module 'babel-eslint/babylon-to-espree/toTokens' {
  declare module.exports: any;
}

// Filename aliases
declare module 'babel-eslint/babylon-to-espree/attachComments.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/attachComments'>;
}
declare module 'babel-eslint/babylon-to-espree/convertTemplateType.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/convertTemplateType'>;
}
declare module 'babel-eslint/babylon-to-espree/index.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/index'>;
}
declare module 'babel-eslint/babylon-to-espree/toAST.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toAST'>;
}
declare module 'babel-eslint/babylon-to-espree/toToken.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toToken'>;
}
declare module 'babel-eslint/babylon-to-espree/toTokens.js' {
  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toTokens'>;
}
declare module 'babel-eslint/index' {
  declare module.exports: $Exports<'babel-eslint'>;
}
declare module 'babel-eslint/index.js' {
  declare module.exports: $Exports<'babel-eslint'>;
}
