// flow-typed signature: 6f322a662fbecc89a3c82bde63934210
// flow-typed version: <<STUB>>/chromedriver_v^2.21.2/flow_v0.42.0

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

declare module 'chromedriver/lib/chromedriver' {
  declare module.exports: any;
}

declare module 'chromedriver/testInstall' {
  declare module.exports: any;
}

// Filename aliases
declare module 'chromedriver/install.js' {
  declare module.exports: $Exports<'chromedriver/install'>;
}
declare module 'chromedriver/lib/chromedriver.js' {
  declare module.exports: $Exports<'chromedriver/lib/chromedriver'>;
}
declare module 'chromedriver/testInstall.js' {
  declare module.exports: $Exports<'chromedriver/testInstall'>;
}
