// flow-typed signature: 370b8388d42a489c09fca7cc6a6c1dc0
// flow-typed version: <<STUB>>/karma-phantomjs-launcher_v^1.0.2/flow_v0.42.0

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

declare module 'karma-phantomjs-launcher/gruntfile' {
  declare module.exports: any;
}

declare module 'karma-phantomjs-launcher/karma.conf' {
  declare module.exports: any;
}

declare module 'karma-phantomjs-launcher/test/add.spec' {
  declare module.exports: any;
}

// Filename aliases
declare module 'karma-phantomjs-launcher/capture.template.js' {
  declare module.exports: $Exports<'karma-phantomjs-launcher/capture.template'>;
}
declare module 'karma-phantomjs-launcher/gruntfile.js' {
  declare module.exports: $Exports<'karma-phantomjs-launcher/gruntfile'>;
}
declare module 'karma-phantomjs-launcher/index' {
  declare module.exports: $Exports<'karma-phantomjs-launcher'>;
}
declare module 'karma-phantomjs-launcher/index.js' {
  declare module.exports: $Exports<'karma-phantomjs-launcher'>;
}
declare module 'karma-phantomjs-launcher/karma.conf.js' {
  declare module.exports: $Exports<'karma-phantomjs-launcher/karma.conf'>;
}
declare module 'karma-phantomjs-launcher/test/add.spec.js' {
  declare module.exports: $Exports<'karma-phantomjs-launcher/test/add.spec'>;
}
