// flow-typed signature: 0ed284c5a2e97a9e3c0e87af3dedc09d // flow-typed version: bdf1e66252/react-redux_v5.x.x/flow_>=v0.30.x import type { Dispatch, Store } from 'redux' declare module 'react-redux' { /* S = State A = Action OP = OwnProps SP = StateProps DP = DispatchProps */ declare type MapStateToProps = (state: S, ownProps: OP) => SP | MapStateToProps; declare type MapDispatchToProps = ((dispatch: Dispatch, ownProps: OP) => DP) | DP; declare type MergeProps = (stateProps: SP, dispatchProps: DP, ownProps: OP) => P; declare type StatelessComponent

= (props: P) => ?React$Element; declare class ConnectedComponent extends React$Component { static WrappedComponent: Class>; getWrappedInstance(): React$Component; static defaultProps: void; props: OP; state: void; } declare type ConnectedComponentClass = Class>; declare type Connector = { (component: StatelessComponent

): ConnectedComponentClass; (component: Class>): ConnectedComponentClass; }; declare class Provider extends React$Component, children?: any }, void> { } declare type ConnectOptions = { pure?: boolean, withRef?: boolean }; declare type Null = null | void; declare function connect( ...rest: Array // <= workaround for https://github.com/facebook/flow/issues/2360 ): Connector } & OP>>; declare function connect( mapStateToProps: Null, mapDispatchToProps: Null, mergeProps: Null, options: ConnectOptions ): Connector } & OP>>; declare function connect( mapStateToProps: MapStateToProps, mapDispatchToProps: Null, mergeProps: Null, options?: ConnectOptions ): Connector } & OP>>; declare function connect( mapStateToProps: Null, mapDispatchToProps: MapDispatchToProps, mergeProps: Null, options?: ConnectOptions ): Connector>; declare function connect( mapStateToProps: MapStateToProps, mapDispatchToProps: MapDispatchToProps, mergeProps: Null, options?: ConnectOptions ): Connector>; declare function connect( mapStateToProps: MapStateToProps, mapDispatchToProps: MapDispatchToProps, mergeProps: MergeProps, options?: ConnectOptions ): Connector; }