/** * @Author: Rostislav Simonik * @Date: 2019-02-23T12:18:54+01:00 * @Email: rostislav.simonik@technologystudio.sk * @Copyright: Technology Studio **/ import type { HandlerAction, Redux, ReduxHandler, } from '@txo/redux' export type ContextActionAttributes = { context?: string, } export type ContextActionCreator< ATTRIBUTES extends Record | undefined, ADDITIONAL_ACTION_ATTRIBUTES extends ContextActionAttributes | undefined = ContextActionAttributes, > = ( attributes: ATTRIBUTES, actionAttribues?: ADDITIONAL_ACTION_ATTRIBUTES, ) => HandlerAction & ADDITIONAL_ACTION_ATTRIBUTES export type InternalContextState = { [state: string]: InternalContextState | STATE | undefined } | STATE | undefined export type ContextState = InternalContextState | STATE | Record // export type ContextHandlers = { // [ATTRIBUTE in keyof HANDLER_ATTRIBUTES]: ReduxHandler, HANDLER_ATTRIBUTES[ATTRIBUTE]> // } // export type ContextRedux = Redux, ContextHandlers> export type ContextRedux< INNER_STATE, HANDLER_KEY extends string, // eslint-disable-next-line @typescript-eslint/no-explicit-any HANDLERS extends Record> > = Redux, INNER_STATE, HANDLER_KEY, HANDLERS>