1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | import { EventEmitter } from 'events';
|
17 | export { VERSION } from './version';
|
18 | export declare type WeightFunc<T> = (a: T, b: T) => number;
|
19 | export declare type CWNode = number;
|
20 | export declare type CWEdge = [number, number, {
|
21 | weight: number;
|
22 | }];
|
23 | export declare type Cluster = number[];
|
24 | export interface ChineseWhispersOptions<T> {
|
25 | weightFunc: WeightFunc<T>;
|
26 | epochs?: number;
|
27 | threshold?: number;
|
28 | }
|
29 | export declare type CWEventName = 'edge' | 'epoch' | 'change';
|
30 | export declare class ChineseWhispers<T> extends EventEmitter {
|
31 | private weightFunc;
|
32 | private epochs;
|
33 | private threshold?;
|
34 | private graph;
|
35 | private changeCounter;
|
36 | constructor(options: ChineseWhispersOptions<T>);
|
37 | on(event: 'edge', listener: (edge: CWEdge) => void): this;
|
38 | on(event: 'change', listener: (node: CWNode, oldLabel: string, newLabel: string) => void): this;
|
39 | on(event: 'epoch', listener: (graph: any, changeCounter: number) => void): this;
|
40 | on(event: never, listener: any): this;
|
41 | emit(event: 'edge', edge?: CWEdge): boolean;
|
42 | emit(event: 'change', node: CWNode, oldLabel: string, newLabel: string): boolean;
|
43 | emit(event: 'epoch', graph: any, changeCounter: number): boolean;
|
44 | emit(event: never, ...args: any[]): boolean;
|
45 | cluster(dataList: T[]): Cluster[];
|
46 | iterate(): void;
|
47 | relabelNode(node: CWNode): void;
|
48 | recalcLabel(node: CWNode): string;
|
49 | buildClusterList(G: any): Cluster[];
|
50 | buildNetwork(dataList: T[], weightFunc: WeightFunc<T>, threshold?: number): any;
|
51 | }
|
52 | export default ChineseWhispers;
|