// 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 OP = OwnProps SP = StateProps DP = DispatchProps */ declare type MapStateToProps = ( state: S, ownProps: OP ) => ((state: S, ownProps: OP) => SP) | SP; declare type MapDispatchToProps = | ((dispatch: Dispatch, ownProps: OP) => DP) | DP; declare type MergeProps = ( stateProps: SP, dispatchProps: DP, ownProps: OP ) => P; declare type Context = { store: Store<*, *> }; declare type ComponentWithDefaultProps = Class< React$Component > & { 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< ConnectedComponentWithDefaultProps >; declare type ConnectedComponentClass = Class< ConnectedComponent >; 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; }