import { LSAwP, LSA } from "../types"; export declare enum ObjectCreatorKeys { ASSIGN = "ASSIGN", PATH = "PATH", PUSHED_SET = "PUSHED_SET", SET = "SET" } export declare type ObjectCreators = { assign(props: Partial): LSAwP; path(route: (string | number)[], value: V): LSAwP<{ path: (string | number)[]; value: V; }>; pushedSet: PushedSet; set(key: KeyT, value: LeafT[KeyT]): LSAwP<{ key: KeyT; value: LeafT[KeyT]; }>; }; declare type PushedSet = (arg: L[keyof L] | PushedSetCallback) => LSAwP>; declare type PushedSetCallback = (id: string) => L[keyof L]; declare type PushedSetWithValue = (val: L[keyof L]) => LSAwP; declare type PushedSetWithCallback = (cb: PushedSetCallback) => LSAwP>; export declare type ObjectActions = ReturnType[KeyT]>; export declare function isAssignAction(action: LSA): action is ObjectActions<'assign', L>; export declare function isPathAction(action: LSA): action is ObjectActions<'path', L>; export declare function isPushedSetAction(action: LSA): action is ObjectActions<'pushedSet', L>; export declare function isPushedSetValueAction(action: LSA): action is ReturnType>; export declare function isPushedSetCallbackAction(action: LSA): action is ReturnType>; export declare function isSetAction(action: LSA): action is ObjectActions<'set', L>; export {};