1 | export interface Selectable {
|
2 | select(): void;
|
3 | unselect(): void;
|
4 | }
|
5 | interface SingleTypeSelectionAccumulatorChanges<T> {
|
6 | added: T[];
|
7 | deleted: T[];
|
8 | previous: T[];
|
9 | current: T[];
|
10 | }
|
11 | interface Node extends Selectable {
|
12 | $: "node";
|
13 | }
|
14 | interface Edge extends Selectable {
|
15 | $: "edge";
|
16 | }
|
17 | export interface SelectionAccumulatorCommitSummary {
|
18 | nodes: SingleTypeSelectionAccumulatorChanges<Node>;
|
19 | edges: SingleTypeSelectionAccumulatorChanges<Edge>;
|
20 | }
|
21 | export declare type SelectionAccumulatorCommitHandler<CommitArgs extends readonly any[]> = (summary: SelectionAccumulatorCommitSummary, ...rest: CommitArgs) => void;
|
22 | export declare class SelectionAccumulator<CommitArgs extends readonly any[]> {
|
23 | #private;
|
24 | constructor(commitHandler?: SelectionAccumulatorCommitHandler<CommitArgs>);
|
25 | get sizeNodes(): number;
|
26 | get sizeEdges(): number;
|
27 | getNodes(): Node[];
|
28 | getEdges(): Edge[];
|
29 | addNodes(...nodes: readonly Node[]): void;
|
30 | addEdges(...edges: readonly Edge[]): void;
|
31 | deleteNodes(node: Node): void;
|
32 | deleteEdges(edge: Edge): void;
|
33 | clear(): void;
|
34 | commit(...rest: CommitArgs): SelectionAccumulatorCommitSummary;
|
35 | }
|
36 | export {};
|
37 |
|
\ | No newline at end of file |