// flow-typed signature: 0abd8b99a8e00c7edae8e51805dfb2ab
// flow-typed version: <<STUB>>/weex-components_v^0.2.0/flow_v0.42.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'weex-components'
 *
 * 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 'weex-components' {
  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.
 */


// Filename aliases
declare module 'weex-components/index' {
  declare module.exports: $Exports<'weex-components'>;
}
declare module 'weex-components/index.js' {
  declare module.exports: $Exports<'weex-components'>;
}
