import * as React from 'react'; import { AnyAction, Store } from 'redux'; /** * WowgoStore hook */ export declare const useWowgoStore: () => Store; /** * @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: any) => Selected, equalityFn?: (previous: Selected, next: Selected) => boolean) => Selected; /** * 創建 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;