// flow-typed signature: 59b0c4be0e1408f21e2446be96c79804 // flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.54.x import type { Dispatch, Store } from 'redux'; declare module 'react-redux' { /* S = State A = Action D = Dispatch OP = OwnProps SP = StateProps DP = DispatchProps */ declare type MapStateToProps = ( state: S, ownProps: OP ) => ((state: S, ownProps: OP) => SP) | SP; declare type MapDispatchToProps = | ((dispatch: D, ownProps: OP) => DP) | DP; declare type MergeProps = ( stateProps: SP, dispatchProps: DP, ownProps: OP ) => P; declare type Context = { store: Store<*, *> }; declare type ComponentWithDefaultProps = Class> & { defaultProps: DP }; declare class ConnectedComponentWithDefaultProps< OP, DP, CP > extends React$Component { static defaultProps: DP, // <= workaround for https://github.com/facebook/flow/issues/4644 static WrappedComponent: Class>, getWrappedInstance(): React$Component, props: OP, state: void } declare class ConnectedComponent extends React$Component { static WrappedComponent: Class>, getWrappedInstance(): React$Component

, props: OP, state: void } declare type ConnectedComponentWithDefaultPropsClass = Class>; declare type ConnectedComponentClass = Class>; declare type Connector = (( component: ComponentWithDefaultProps ) => ConnectedComponentWithDefaultPropsClass) & ((component: React$ComponentType

) => ConnectedComponentClass); declare class Provider extends React$Component<{ store: Store, children?: any }> {} declare function createProvider( storeKey?: string, subKey?: string ): Provider<*, *>; 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: Null, mergeProps: MergeProps, options?: ConnectOptions ): Connector; declare function connect( mapStateToProps: MapStateToProps, mapDispatchToProps: MapDispatchToProps, mergeProps: MergeProps, options?: ConnectOptions ): Connector; }