import * as React from 'react';
import { Store } from 'redux';
/**
* @returns dispatch 函數
*
* @example
* const AboutPage = (props: any) => {
*
* const todo = useWowgoDispatch()
*
* return (
*
* )
*
*/
export declare const useWowgoDispatch: () => import("redux").Dispatch;
/**
*
* @param selector 篩選函數
* @param equalityFn 判斷篩選函數
* @returns 篩選過後的狀態值
*
* @example
*
* export interface S {
* todo: number
* }
*
* const AboutPage = (props: any) => {
*
* const todo = useWowgoSelector(state => state.reducer1.todo)
*
* return (
*
* {todo}
*
* )
*
* export default AboutPage
*/
export declare const useWowgoSelector: (selector: (state: Type) => TSelected, equalityFn?: (left: TSelected, right: TSelected) => boolean) => TSelected;
/**
* 創建 WowgoStore,用以傳入 WowgoProvider
* @param reducer (initialState: 初始狀態, action: 更新狀態的action)
* @example
*
* // 先創建 reducer (reducer1, reducer2...)
* function reducer1(state = { todo1: 0 }, action) {
*
* switch (action.type) {
* case "INCREMENT":
* return {
* ...state,
* todo1: state.todo1 + action.step
* };
* case "DECREMENT":
* return {
* ...state,
* todo1: state.todo1 - action.step
* };
* default:
* return state;
* }
*}
*
* const combinedReducer = combineReducers({
* reducer1,
* reducer2,
* ...
* })
*
* const Stroe = createWowgoStore(combinedReducer)
*/
export declare const createWowgoStore: (reducer: (initialState: any, action: any) => (any)) => Store;
export interface ProviderProps {
/**
* 需要使用本Context的所有子組件
*/
children?: React.ReactNode;
/**
* 透過 createWowgoStore(reducer) 創建的Store,
* 註 : reducer: (initialState: any, action: any) => (any)
*/
store: Store;
}
/**
*
* @param props
* @returns WowgoProvider
*
* @example
* const App = () => {
* return (
*
*
*
* );
* }
*
* export default App;
*
*/
export declare const WowgoProvider: React.FC;