// flow-typed signature: d3244e361f648af2e67f7835973cd3bb
// flow-typed version: <<STUB>>/karma-mocha_v^1.3.0/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'karma-mocha'
 *
 * 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 'karma-mocha' {
  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 'karma-mocha/gruntfile' {
  declare module.exports: any;
}

declare module 'karma-mocha/lib/adapter' {
  declare module.exports: any;
}

declare module 'karma-mocha/lib/index' {
  declare module.exports: any;
}

declare module 'karma-mocha/wallaby' {
  declare module.exports: any;
}

// Filename aliases
declare module 'karma-mocha/gruntfile.js' {
  declare module.exports: $Exports<'karma-mocha/gruntfile'>;
}
declare module 'karma-mocha/lib/adapter.js' {
  declare module.exports: $Exports<'karma-mocha/lib/adapter'>;
}
declare module 'karma-mocha/lib/index.js' {
  declare module.exports: $Exports<'karma-mocha/lib/index'>;
}
declare module 'karma-mocha/wallaby.js' {
  declare module.exports: $Exports<'karma-mocha/wallaby'>;
}
