///
import { MergeProps, Options, ComponentClass, InferableComponentEnhancerWithProps } from "react-redux";
import { Dispatch } from "redux";
import { StatelessComponent } from "react";
export interface IConnectFactory {
(mapStateToProps: (state: TState, ownProps: TOwnProps) => TStateProps, mapDispatchToProps?: (dispatch: Dispatch, ownProps: TOwnProps) => TDispatchProps, mergeProps?: MergeProps, options?: Options): InferableComponentEnhancerWithProps;
}
/** Helper method to connect a component to redux state */
export declare function connectFactory(): IConnectFactory;
/**
* React Redux connect options for a pure component using _.isEqual to compare values
*/
export declare const underscoreEqualOptions: {
pure: boolean;
withRef: boolean;
areStatesEqual: (prev: any, next: any) => boolean;
areOwnPropsEqual: (prev: any, next: any) => boolean;
areStatePropsEqual: (prev: any, next: any) => boolean;
areMergedPropsEqual: (prev: any, next: any) => boolean;
};
/**
* Connect a component to redux state via convention (static methods stateProps and dispatchProps on the component)
* @param target The target component to connect
* @param options Connect options (defaults to underscoreEqualOptions)
*/
export declare function connectByConvention(target: ComponentClass | StatelessComponent, options?: Options): ComponentClass;