import { ComponentData } from './ComponentData';
export declare type CDModel = {
    data: ComponentData;
    selectNode: (path: number[]) => ComponentData | null;
    insertNode: (path: number[]) => (cd: ComponentData) => CDModel;
    updateNode: (path: number[]) => (cb: (cd: ComponentData) => ComponentData) => CDModel;
    deleteNode: (path: number[]) => CDModel;
    insertBefore: (sourceNode: ComponentData) => (targetNode: ComponentData) => CDModel;
    insertAfter: (sourceNode: ComponentData) => (targetNode: ComponentData) => CDModel;
    appendNode: (sourceNode: ComponentData) => (targetNode: ComponentData) => CDModel;
    findNodePath: (node: ComponentData) => number[] | null;
    moveNode: (oldPath: number[]) => (newPath: number[], index?: number) => CDModel;
    toJSON: () => ComponentData;
};
