import type { INode } from './node'; import { IPublicTypeNodeData, IPublicModelNodeChildren, IPublicEnumTransformStage, IPublicTypeDisposable } from '@alilc/lowcode-types'; import { NodeRemoveOptions } from '../../types'; export interface IOnChangeOptions { type: string; node: INode; } export declare class NodeChildren implements Omit, 'importSchema' | 'exportSchema' | 'isEmpty' | 'notEmpty'> { readonly owner: INode; children: INode[]; private emitter; /** * 元素个数 */ get size(): number; get isEmptyNode(): boolean; get notEmptyNode(): boolean; get length(): number; private purged; get [Symbol.toStringTag](): string; constructor(owner: INode, data: IPublicTypeNodeData | IPublicTypeNodeData[]); internalInitParent(): void; /** * 导出 schema */ export(stage?: IPublicEnumTransformStage): IPublicTypeNodeData[]; import(data?: IPublicTypeNodeData | IPublicTypeNodeData[], checkId?: boolean): void; /** * @deprecated * @param nodes */ concat(nodes: INode[]): INode[]; /** * */ isEmpty(): boolean; notEmpty(): boolean; /** * 回收销毁 */ purge(): void; unlinkChild(node: INode): boolean; /** * 删除一个节点 */ delete(node: INode): boolean; /** * 删除一个节点 */ internalDelete(node: INode, purge?: boolean, useMutator?: boolean, options?: NodeRemoveOptions): boolean; insert(node: INode, at?: number | null): void; /** * 插入一个节点,返回新长度 */ internalInsert(node: INode, at?: number | null, useMutator?: boolean): void; /** * 取得节点索引编号 */ indexOf(node: INode): number; /** * */ splice(start: number, deleteCount: number, node?: INode): INode[]; /** * 根据索引获得节点 */ get(index: number): INode | null; /** * 是否存在节点 */ has(node: INode): boolean; /** * 迭代器 */ [Symbol.iterator](): { next(): { value: INode; }; }; /** * 遍历 */ forEach(fn: (item: INode, index: number) => void): void; /** * 遍历 */ map(fn: (item: INode, index: number) => T): T[] | null; every(fn: (item: INode, index: number) => any): boolean; some(fn: (item: INode, index: number) => any): boolean; filter(fn: (item: INode, index: number) => any): any; find(fn: (item: INode, index: number) => boolean): INode | undefined; reduce(fn: (acc: any, cur: INode) => any, initialValue: any): void; reverse(): INode[]; mergeChildren(remover: (node: INode, idx: number) => boolean, adder: (children: INode[]) => IPublicTypeNodeData[] | null, sorter: (firstNode: INode, secondNode: INode) => number): any; onChange(fn: (info?: IOnChangeOptions) => void): IPublicTypeDisposable; onInsert(fn: (node: INode) => void): () => void; private reportModified; } export interface INodeChildren extends NodeChildren { }