dev@127
|
1 import EventEmitter = NodeJS.EventEmitter;
|
dev@36
|
2 /**
|
dev@36
|
3 * Created by lucas on 01/12/2016.
|
dev@36
|
4 */
|
dev@123
|
5 declare const AmbientInstance: WavesUserInterface;
|
dev@123
|
6
|
dev@123
|
7 declare module 'waves-ui' {
|
dev@123
|
8 export default AmbientInstance;
|
dev@123
|
9 }
|
dev@123
|
10
|
dev@123
|
11 interface WavesUserInterface {
|
dev@127
|
12 core: Core;
|
dev@123
|
13 helpers: any;
|
dev@123
|
14 states: any;
|
dev@123
|
15 utils: Utilities;
|
dev@128
|
16 shapes: any;
|
dev@123
|
17 }
|
dev@123
|
18
|
dev@123
|
19 interface MatrixEntity {
|
dev@124
|
20 getColumnCount(): number;
|
dev@124
|
21 getColumnHeight(): number;
|
dev@126
|
22 getColumn(n: number): Float32Array | number[];
|
dev@124
|
23 getStepDuration(): number;
|
dev@124
|
24 getStartTime(): number;
|
dev@123
|
25 }
|
dev@123
|
26
|
dev@127
|
27 type TimeContext = any; // TODO
|
dev@127
|
28
|
dev@127
|
29 interface Area {
|
dev@127
|
30 top: number;
|
dev@127
|
31 left: number;
|
dev@127
|
32 width: number;
|
dev@127
|
33 height: number;
|
dev@127
|
34 }
|
dev@127
|
35
|
dev@127
|
36 interface Layer extends EventEmitter {
|
dev@127
|
37 destroy(): void;
|
dev@127
|
38 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
|
dev@127
|
39 start: number;
|
dev@127
|
40 offset: number;
|
dev@127
|
41 duration: number;
|
dev@127
|
42 stretchRatio: number;
|
dev@127
|
43 yDomain: number[];
|
dev@127
|
44 opacity: number;
|
dev@127
|
45 readonly timeToPixel: () => (time: number) => number;
|
dev@127
|
46 readonly valueToPixel: () => (value: number) => number;
|
dev@127
|
47 readonly items: Element[];
|
dev@127
|
48 data: ArrayLike<any> | Object;
|
dev@127
|
49 setTimeContext(context: TimeContext): void;
|
dev@127
|
50 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@127
|
51 accessors: Object,
|
dev@127
|
52 options: Object): void;
|
dev@127
|
53 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@127
|
54 accessors: Object,
|
dev@127
|
55 options: Object): void;
|
dev@127
|
56 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
|
dev@127
|
57 readonly selectedItems: Element[];
|
dev@127
|
58 select(...$items: Element[]);
|
dev@127
|
59 unselect(...$items: Element[]);
|
dev@127
|
60 toggleSelection(...$items: Element[]);
|
dev@127
|
61 edit($items: Element[], dx: number, dy: number, $target: Element): void;
|
dev@127
|
62 setContextEditable(bool: boolean): void;
|
dev@127
|
63 editContext(dx: number, dy: number, $target: Element): void;
|
dev@127
|
64 stretchContext(dx: number, dy: number, $target: Element): void;
|
dev@127
|
65 getItemFromDOMElement($el: Element): Element | null;
|
dev@127
|
66 getDatumFromItem($item: Element): Object | any[] | null;
|
dev@127
|
67 getDatumFromDOMElement($item: Element): Object | any[] | null;
|
dev@127
|
68 hasItem($item: Element): boolean;
|
dev@127
|
69 hasElement($el: Element): boolean;
|
dev@127
|
70 getItemsInArea(area: Area): Element[];
|
dev@127
|
71 render(): void;
|
dev@127
|
72 update(): void;
|
dev@127
|
73 updateContainer(): void;
|
dev@127
|
74 updateShapes(): void;
|
dev@127
|
75 }
|
dev@127
|
76
|
dev@127
|
77 interface LayerConstructor {
|
dev@127
|
78 new(dataType: "entity" | "collection",
|
dev@127
|
79 data: ArrayLike<any> | Object,
|
dev@127
|
80 options: Object): Layer;
|
dev@127
|
81 }
|
dev@127
|
82
|
dev@123
|
83 interface MatrixEntityConstructor {
|
dev@123
|
84 new(): MatrixEntity;
|
dev@123
|
85 }
|
dev@123
|
86
|
dev@123
|
87 interface PrefilledMatrixEntityConstructor {
|
dev@123
|
88 new(data: Float32Array[] | number[][],
|
dev@123
|
89 startTime: number,
|
dev@123
|
90 stepDuration: number): MatrixEntity;
|
dev@123
|
91 }
|
dev@123
|
92
|
dev@123
|
93 interface Utilities {
|
dev@123
|
94 MatrixEntity: MatrixEntityConstructor;
|
dev@123
|
95 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
|
dev@123
|
96 scales: any;
|
dev@123
|
97 }
|
dev@127
|
98
|
dev@127
|
99 interface Core {
|
dev@127
|
100 Layer: LayerConstructor;
|
dev@127
|
101 LayerTimeContext: any; // TODO
|
dev@127
|
102 Timeline: any; // TODO
|
dev@127
|
103 }
|