import { ExtractContainerProperty } from "./container"; import { ConvertActionHelperTypeParamsObjectFromEffects } from "./effect"; import { ModelClass } from "./model"; import { ConvertActionHelperTypeParamsObjectFromReducers } from "./reducer"; import { Nyax } from "./store"; export interface AnyAction { type: string; payload?: unknown; } export interface Action { type: string; payload: TPayload; } export interface ActionHelper { (payload: TPayload): Promise; type: string; is(action: unknown): action is Action; create(payload: TPayload): Action; dispatch(payload: TPayload): Promise; } export interface ActionHelpers { [key: string]: ActionHelper | ActionHelpers; } export declare type ConvertActionHelpersFromTypeParamsObject = { [K in keyof T]: T[K] extends [any, any] ? ActionHelper : ConvertActionHelpersFromTypeParamsObject; }; export declare type ConvertActionHelpers = TReducers extends any ? TEffects extends any ? ConvertActionHelpersFromTypeParamsObject & ConvertActionHelperTypeParamsObjectFromEffects> : never : never; export declare const registerActionType = "@@nyax/register"; export declare type RegisterActionPayload = RegisterActionPayloadItem[]; export interface RegisterActionPayloadItem { namespace: string; key?: string; state?: unknown; } export declare const unregisterActionType = "@@nyax/unregister"; export declare type UnregisterActionPayload = UnregisterActionPayloadItem[]; export interface UnregisterActionPayloadItem { namespace: string; key?: string; } export declare const reloadActionType = "@@nyax/reload"; export interface ReloadActionPayload { state?: unknown; } export declare function createActionHelper(nyax: Nyax, namespace: string, key: string | undefined, actionType: string): ActionHelper; export declare function createActionHelpers(nyax: Nyax, model: InstanceType): ExtractContainerProperty;