// flow-typed signature: 5a371aa0242b941a1b424a58cfca1821
// flow-typed version: <<STUB>>/weex-loader_v^0.4.0/flow_v0.42.0

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

declare module 'weex-loader/lib/element' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/extract' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/json' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/legacy' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/loader' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/parser' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/script' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/style' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/template' {
  declare module.exports: any;
}

declare module 'weex-loader/lib/util' {
  declare module.exports: any;
}

// Filename aliases
declare module 'weex-loader/index' {
  declare module.exports: $Exports<'weex-loader'>;
}
declare module 'weex-loader/index.js' {
  declare module.exports: $Exports<'weex-loader'>;
}
declare module 'weex-loader/lib/config.js' {
  declare module.exports: $Exports<'weex-loader/lib/config'>;
}
declare module 'weex-loader/lib/element.js' {
  declare module.exports: $Exports<'weex-loader/lib/element'>;
}
declare module 'weex-loader/lib/extract.js' {
  declare module.exports: $Exports<'weex-loader/lib/extract'>;
}
declare module 'weex-loader/lib/json.js' {
  declare module.exports: $Exports<'weex-loader/lib/json'>;
}
declare module 'weex-loader/lib/legacy.js' {
  declare module.exports: $Exports<'weex-loader/lib/legacy'>;
}
declare module 'weex-loader/lib/loader.js' {
  declare module.exports: $Exports<'weex-loader/lib/loader'>;
}
declare module 'weex-loader/lib/parser.js' {
  declare module.exports: $Exports<'weex-loader/lib/parser'>;
}
declare module 'weex-loader/lib/script.js' {
  declare module.exports: $Exports<'weex-loader/lib/script'>;
}
declare module 'weex-loader/lib/style.js' {
  declare module.exports: $Exports<'weex-loader/lib/style'>;
}
declare module 'weex-loader/lib/template.js' {
  declare module.exports: $Exports<'weex-loader/lib/template'>;
}
declare module 'weex-loader/lib/util.js' {
  declare module.exports: $Exports<'weex-loader/lib/util'>;
}
