import { LSAwP, LSA } from "../types"; export declare enum UniversalCreatorKeys { CLEAR = "CLEAR", DO = "DO", RESET = "RESET", UPDATE = "UPDATE" } declare type DoCallback = (leafState: L, treeState: T) => L; export declare type UniversalCreators = { clear(): LSA; do(cb: DoCallback): LSAwP>; reset(): LSA; update(newVal: LeafT): LSAwP; }; export declare type UniversalActions, LeafT = unknown, TreeT = unknown> = ReturnType[KeyT]>; export declare function isClearAction(action: LSA): action is UniversalActions<'clear', L>; export declare function isDoAction(action: LSA): action is UniversalActions<'do', L, T>; export declare function isResetAction(action: LSA): action is UniversalActions<'reset'>; export declare function isUpdateAction(action: LSA): action is UniversalActions<'update', L>; export {};