export declare type BlockNodeType = 'row' | 'col' | 'markdown' | 'image' | 'layer' | 'custom'; export interface BlockNode { id: string; type: BlockNodeType; customType?: string; name: string; value?: any; backgroundColor?: string | null; color?: string | null; parentId?: string; childrenIds: Array; children?: Array; isPlaceHolder?: boolean; width: number; height: number; top?: number; left?: number; paddingLeftPercentWidth?: number; paddingTopPercentHeight?: number; borderWidth?: number; borderTopWidth?: number; borderBottomWidth?: number; borderLeftWidth?: number; borderRightWidth?: number; borderStyle?: string; display?: string; flexDirection?: string; justifyContent?: string; alignItems?: string; } export declare type ById = { [id: string]: BlockNode | undefined; }; export declare function updateNode(byId: ById, newNode: BlockNode): ById; export declare function removeNode(byId: ById, nodeId: string): ById; export declare function hasDescendent(byId: ById, nodeId: string, descendentId: string, checked?: { [id: string]: boolean; }): boolean; export declare function placeNodeInParent(byId: ById, node: BlockNode, newParentId: string, opts?: { beforeItemId?: string; afterItemId?: string; }): ById; export declare function reinsertIntoList(ids: Array, itemId: string, opts?: { beforeItemId?: string; afterItemId?: string; }): string[];