// flow-typed signature: 3d15dceba7ae8991811d8fc44cdcd354
// flow-typed version: <<STUB>>/css-loader_v^0.26.1/flow_v0.42.0

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

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

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

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

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

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

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

declare module 'css-loader/locals' {
  declare module.exports: any;
}

// Filename aliases
declare module 'css-loader/index' {
  declare module.exports: $Exports<'css-loader'>;
}
declare module 'css-loader/index.js' {
  declare module.exports: $Exports<'css-loader'>;
}
declare module 'css-loader/lib/compile-exports.js' {
  declare module.exports: $Exports<'css-loader/lib/compile-exports'>;
}
declare module 'css-loader/lib/css-base.js' {
  declare module.exports: $Exports<'css-loader/lib/css-base'>;
}
declare module 'css-loader/lib/getImportPrefix.js' {
  declare module.exports: $Exports<'css-loader/lib/getImportPrefix'>;
}
declare module 'css-loader/lib/getLocalIdent.js' {
  declare module.exports: $Exports<'css-loader/lib/getLocalIdent'>;
}
declare module 'css-loader/lib/loader.js' {
  declare module.exports: $Exports<'css-loader/lib/loader'>;
}
declare module 'css-loader/lib/localsLoader.js' {
  declare module.exports: $Exports<'css-loader/lib/localsLoader'>;
}
declare module 'css-loader/lib/processCss.js' {
  declare module.exports: $Exports<'css-loader/lib/processCss'>;
}
declare module 'css-loader/locals.js' {
  declare module.exports: $Exports<'css-loader/locals'>;
}
