import { INode } from './node/node'; import { DocumentModel } from './document-model'; import { IPublicModelSelection } from '@alilc/lowcode-types'; export interface ISelection extends Omit, 'node'> { containsNode(node: INode, excludeRoot: boolean): boolean; } export declare class Selection implements ISelection { readonly doc: DocumentModel; private emitter; private _selected; constructor(doc: DocumentModel); /** * 选中的节点 id */ get selected(): string[]; /** * 选中 */ select(id: string): void; /** * 批量选中 */ selectAll(ids: string[]): void; /** * 清除选中 */ clear(): void; /** * 整理选中 */ dispose(): void; /** * 添加选中 */ add(id: string): void; /** * 是否选中 */ has(id: string): boolean; /** * 移除选中 */ remove(id: string): void; /** * 选区是否包含节点 */ containsNode(node: INode, excludeRoot?: boolean): boolean; /** * 获取选中的节点 */ getNodes(): INode[]; /** * 获取顶层选区节点,场景:拖拽时,建立蒙层,只蒙在最上层 */ getTopNodes(includeRoot?: boolean): any[]; onSelectionChange(fn: (ids: string[]) => void): () => void; }