import { GraphAction, GraphNode, GraphOperation, NodeDefinition, NodeName, NodeProperties, NodeType, SerializedGraphOperation, SerializedNodeDefinition, SerializedNodeProperties } from '../types/graph'; import { ActionId, CachedActionId, ContextId, NodeId, OperationId, ScopeId, Store } from './store'; export { ActionId, CachedActionId, ContextId, NodeId, OperationId, ScopeId } from './store'; export declare type SerializedNodeType = { operations: Array; }; export declare type SerializedNodeTypesMap = { [nodeTypeName: string]: SerializedNodeType; }; export interface SerializedStore { subscriptions: Array; cache: { nodes: { [nodeId: string]: SerializedGraphNode; }; operations: { [operationId: string]: SerializedGraphOperation; }; actions: { [actionId: string]: SerializedActionCache; }; cache: { [cachedActionId: string]: SerializedCachedAction; }; }; nodeTypes: SerializedNodeTypesMap; } export declare type SerializedActionCache = { action: SerializedGraphAction; } & ({ cacheable: true; instance: CachedActionId; instances: undefined; } | { cacheable: false; instance: undefined; instances: Array; }); export interface SerializedGraphNode = NodeType> { id: NodeId; scope: SerializedScope; context: SerializedContext; definition: SerializedNodeDefinition; } export declare type SerializedSubscription = { action: ActionId; debug: boolean; }; export declare type SerializedScope = ScopeId; export declare type SerializedContext = ContextId; export interface SerializedGraphAction { id: ActionId; node: NodeId; operation: OperationId; } export interface SerializedCachedAction { id: CachedActionId; action: ActionId; contextDependencies: Array; dependencies: Array; dependants: Array; next: CachedActionId | undefined; value: NodeId | undefined; } export declare function inspect(store: Store): SerializedStore; export declare function serializeMetadata(value: NodeDefinition | GraphOperation | GraphNode | GraphAction): string; export declare function sanitizeMetadata(value: any): any;