// flow-typed signature: 6855ff5926bee13f42449072f47a638d
// flow-typed version: <<STUB>>/sinon_v^1.17.4/flow_v0.42.0

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

declare module 'sinon/lib/sinon/assert' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/behavior' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/call' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/collection' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/extend' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/format' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/log_error' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/match' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/mock' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/sandbox' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/spy' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/stub' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/test_case' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/test' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/times_in_words' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/typeOf' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/core' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/event' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/fake_server_with_clock' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/fake_server' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/fake_timers' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/fake_xdomain_request' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/fake_xml_http_request' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/timers_ie' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/xdr_ie' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/util/xhr_ie' {
  declare module.exports: any;
}

declare module 'sinon/lib/sinon/walk' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon-1.17.7' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon-ie-1.17.7' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon-ie' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon-server-1.17.7' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon-server' {
  declare module.exports: any;
}

declare module 'sinon/pkg/sinon' {
  declare module.exports: any;
}

// Filename aliases
declare module 'sinon/lib/sinon.js' {
  declare module.exports: $Exports<'sinon/lib/sinon'>;
}
declare module 'sinon/lib/sinon/assert.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/assert'>;
}
declare module 'sinon/lib/sinon/behavior.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/behavior'>;
}
declare module 'sinon/lib/sinon/call.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/call'>;
}
declare module 'sinon/lib/sinon/collection.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/collection'>;
}
declare module 'sinon/lib/sinon/extend.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/extend'>;
}
declare module 'sinon/lib/sinon/format.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/format'>;
}
declare module 'sinon/lib/sinon/log_error.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/log_error'>;
}
declare module 'sinon/lib/sinon/match.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/match'>;
}
declare module 'sinon/lib/sinon/mock.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/mock'>;
}
declare module 'sinon/lib/sinon/sandbox.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/sandbox'>;
}
declare module 'sinon/lib/sinon/spy.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/spy'>;
}
declare module 'sinon/lib/sinon/stub.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/stub'>;
}
declare module 'sinon/lib/sinon/test_case.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/test_case'>;
}
declare module 'sinon/lib/sinon/test.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/test'>;
}
declare module 'sinon/lib/sinon/times_in_words.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/times_in_words'>;
}
declare module 'sinon/lib/sinon/typeOf.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/typeOf'>;
}
declare module 'sinon/lib/sinon/util/core.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/core'>;
}
declare module 'sinon/lib/sinon/util/event.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/event'>;
}
declare module 'sinon/lib/sinon/util/fake_server_with_clock.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_server_with_clock'>;
}
declare module 'sinon/lib/sinon/util/fake_server.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_server'>;
}
declare module 'sinon/lib/sinon/util/fake_timers.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_timers'>;
}
declare module 'sinon/lib/sinon/util/fake_xdomain_request.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_xdomain_request'>;
}
declare module 'sinon/lib/sinon/util/fake_xml_http_request.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_xml_http_request'>;
}
declare module 'sinon/lib/sinon/util/timers_ie.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/timers_ie'>;
}
declare module 'sinon/lib/sinon/util/xdr_ie.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/xdr_ie'>;
}
declare module 'sinon/lib/sinon/util/xhr_ie.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/util/xhr_ie'>;
}
declare module 'sinon/lib/sinon/walk.js' {
  declare module.exports: $Exports<'sinon/lib/sinon/walk'>;
}
declare module 'sinon/pkg/sinon-1.17.7.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon-1.17.7'>;
}
declare module 'sinon/pkg/sinon-ie-1.17.7.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon-ie-1.17.7'>;
}
declare module 'sinon/pkg/sinon-ie.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon-ie'>;
}
declare module 'sinon/pkg/sinon-server-1.17.7.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon-server-1.17.7'>;
}
declare module 'sinon/pkg/sinon-server.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon-server'>;
}
declare module 'sinon/pkg/sinon.js' {
  declare module.exports: $Exports<'sinon/pkg/sinon'>;
}
