// flow-typed signature: 79823ba3c787ac106412b241663bcbe4
// flow-typed version: <<STUB>>/weex-styler_v0.1.9/flow_v0.42.0

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

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

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

declare module 'weex-styler/test/parse' {
  declare module.exports: any;
}

declare module 'weex-styler/test/validate' {
  declare module.exports: any;
}

// Filename aliases
declare module 'weex-styler/gulpfile.js' {
  declare module.exports: $Exports<'weex-styler/gulpfile'>;
}
declare module 'weex-styler/index' {
  declare module.exports: $Exports<'weex-styler'>;
}
declare module 'weex-styler/index.js' {
  declare module.exports: $Exports<'weex-styler'>;
}
declare module 'weex-styler/lib/util.js' {
  declare module.exports: $Exports<'weex-styler/lib/util'>;
}
declare module 'weex-styler/lib/validator.js' {
  declare module.exports: $Exports<'weex-styler/lib/validator'>;
}
declare module 'weex-styler/test/parse.js' {
  declare module.exports: $Exports<'weex-styler/test/parse'>;
}
declare module 'weex-styler/test/validate.js' {
  declare module.exports: $Exports<'weex-styler/test/validate'>;
}
