export interface Selectable { select(): void; unselect(): void; } interface SingleTypeSelectionAccumulatorChanges { added: T[]; deleted: T[]; previous: T[]; current: T[]; } interface Node extends Selectable { $: "node"; } interface Edge extends Selectable { $: "edge"; } export interface SelectionAccumulatorCommitSummary { nodes: SingleTypeSelectionAccumulatorChanges; edges: SingleTypeSelectionAccumulatorChanges; } export type SelectionAccumulatorCommitHandler = (summary: SelectionAccumulatorCommitSummary, ...rest: CommitArgs) => void; export declare class SelectionAccumulator { #private; constructor(commitHandler?: SelectionAccumulatorCommitHandler); get sizeNodes(): number; get sizeEdges(): number; getNodes(): Node[]; getEdges(): Edge[]; addNodes(...nodes: readonly Node[]): void; addEdges(...edges: readonly Edge[]): void; deleteNodes(node: Node): void; deleteEdges(edge: Edge): void; clear(): void; commit(...rest: CommitArgs): SelectionAccumulatorCommitSummary; } export {}; //# sourceMappingURL=selection-accumulator.d.ts.map