import { EffectModule, ActionOfEffectModule } from '@sigi/core'; import { ConstructorOf } from '@sigi/types'; export type StateSelector = { (state: S): U; }; export type StateSelectorConfig = { selector: (state: S) => U; equalFn?: (u1: U, u2: U) => boolean; dependencies?: never; }; export declare function useDispatchers, S = any>(A: ConstructorOf): ActionOfEffectModule; export declare function useModuleState>(A: ConstructorOf): M extends EffectModule ? State : never; export declare function useModuleState, U>(A: ConstructorOf, config: M extends EffectModule ? StateSelectorConfig : never): M extends EffectModule ? (typeof config)['selector'] extends StateSelector ? NewState : never : never; export declare function useModule>(A: ConstructorOf): M extends EffectModule ? [State, ActionOfEffectModule] : never; export declare function useModule, U>(A: ConstructorOf, config: M extends EffectModule ? StateSelectorConfig : never): M extends EffectModule ? (typeof config)['selector'] extends StateSelector ? [NewState, ActionOfEffectModule] : never : never; export { SSRContext } from './ssr-context'; export * from './injectable-context';