// flow-typed signature: af9ebe066fe75d46a18a54b7d8b93aa0
// flow-typed version: <<STUB>>/envd_v^0.1.1/flow_v0.42.0

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

declare module 'envd/build/envd.debug' {
  declare module.exports: any;
}

declare module 'envd/build/envd' {
  declare module.exports: any;
}

declare module 'envd/Gruntfile' {
  declare module.exports: any;
}

declare module 'envd/src/app' {
  declare module.exports: any;
}

declare module 'envd/src/browser' {
  declare module.exports: any;
}

declare module 'envd/src/envd' {
  declare module.exports: any;
}

declare module 'envd/src/os' {
  declare module.exports: any;
}

declare module 'envd/src/params' {
  declare module.exports: any;
}

declare module 'envd/src/thirdapp' {
  declare module.exports: any;
}

declare module 'envd/src/version' {
  declare module.exports: any;
}

declare module 'envd/test/env-test' {
  declare module.exports: any;
}

// Filename aliases
declare module 'envd/build/envd.common.js' {
  declare module.exports: $Exports<'envd/build/envd.common'>;
}
declare module 'envd/build/envd.debug.js' {
  declare module.exports: $Exports<'envd/build/envd.debug'>;
}
declare module 'envd/build/envd.js' {
  declare module.exports: $Exports<'envd/build/envd'>;
}
declare module 'envd/Gruntfile.js' {
  declare module.exports: $Exports<'envd/Gruntfile'>;
}
declare module 'envd/src/app.js' {
  declare module.exports: $Exports<'envd/src/app'>;
}
declare module 'envd/src/browser.js' {
  declare module.exports: $Exports<'envd/src/browser'>;
}
declare module 'envd/src/envd.js' {
  declare module.exports: $Exports<'envd/src/envd'>;
}
declare module 'envd/src/os.js' {
  declare module.exports: $Exports<'envd/src/os'>;
}
declare module 'envd/src/params.js' {
  declare module.exports: $Exports<'envd/src/params'>;
}
declare module 'envd/src/thirdapp.js' {
  declare module.exports: $Exports<'envd/src/thirdapp'>;
}
declare module 'envd/src/version.js' {
  declare module.exports: $Exports<'envd/src/version'>;
}
declare module 'envd/test/env-test.js' {
  declare module.exports: $Exports<'envd/test/env-test'>;
}
