import { CRootNode } from '..'; import { ExportType } from '../../../const/schema'; import { CMaterials } from '../../../Material'; import { CNodeDataType } from '../../../types/node'; import { DataModelEmitterType, DataModelEventType } from '../../../util/modelEmitter'; import { CProp } from './prop'; import { CSlot } from './slot'; export declare const checkNode: (data: any) => true | undefined; export type CNodeModelDataType = Omit & { id: string; children: (CNode | string)[]; props: Record; configure: Required['configure']; }; export declare const parseNode: (data: CNodeDataType | CNodeModelDataType, self: CNode | CRootNode, materials: CMaterials) => CNodeModelDataType; type OnNodeChangeType = (params: DataModelEventType['onNodeChange']) => void; type ParentType = CNode | CRootNode | CSlot | null; export declare class CNode { nodeType: "NODE"; private rawData; private data; emitter: DataModelEmitterType; parent: ParentType; materialsModel: CMaterials; listenerHandler: (() => void)[]; onChangeCbQueue: OnNodeChangeType[]; constructor(data: CNodeDataType, options?: { parent?: ParentType; materials: CMaterials | null; }); registerListener(): void; onChange(cb: OnNodeChangeType): () => void; destroy(): void; get id(): string; get value(): CNodeModelDataType; clone(id?: string): CNode; updateWithPlainObj(val?: Partial): any; updateValue(val?: Partial): void; contains(nodeId: string): CNode | CRootNode | undefined; get props(): import('../../../types/node').CPropObjDataType & Record; get material(): import('../../../Material').CMaterial | undefined; getPlainProps(): any; getMaterialConfig(key: 'isContainer'): boolean | import('../../..').ContainerConfig | undefined; isContainer(): boolean | import('../../..').ContainerConfig | undefined; export(mode: ExportType): CNodeDataType; } export {};