// flow-typed signature: 88fccb37f12dc173d61cf0f761f844f4
// flow-typed version: <<STUB>>/selenium-server_v2.53.1/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'selenium-server'
 *
 * 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 'selenium-server' {
  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 'selenium-server/lib/runner/app' {
  declare module.exports: any;
}

declare module 'selenium-server/lib/selenium-server' {
  declare module.exports: any;
}

// Filename aliases
declare module 'selenium-server/lib/runner/app.js' {
  declare module.exports: $Exports<'selenium-server/lib/runner/app'>;
}
declare module 'selenium-server/lib/selenium-server.js' {
  declare module.exports: $Exports<'selenium-server/lib/selenium-server'>;
}
