export interface Operations { clone(): T; merge(key: number | string | null, value: T): any; update(key: number | string | null, value: T): any; } export declare type TraverseCallback = (parent: any, key: number | string, remainingPath: string[], value?: any) => any; export declare abstract class State { static traverse(state: StateType, path: string[], fn?: TraverseCallback): StateType; static get(state: StateType, path: string[]): any; static assign(state: StateType, path: string[], value?: any): any; static inspect(object: K): Operations; static empty(value: any): boolean; }