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;
|
cannam@131
|
25 dispose(): void;
|
dev@123
|
26 }
|
dev@123
|
27
|
dev@127
|
28 type TimeContext = any; // TODO
|
dev@127
|
29
|
dev@127
|
30 interface Area {
|
dev@127
|
31 top: number;
|
dev@127
|
32 left: number;
|
dev@127
|
33 width: number;
|
dev@127
|
34 height: number;
|
dev@127
|
35 }
|
dev@127
|
36
|
dev@127
|
37 interface Layer extends EventEmitter {
|
dev@127
|
38 destroy(): void;
|
dev@127
|
39 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
|
dev@127
|
40 start: number;
|
dev@127
|
41 offset: number;
|
dev@127
|
42 duration: number;
|
dev@127
|
43 stretchRatio: number;
|
dev@127
|
44 yDomain: number[];
|
dev@127
|
45 opacity: number;
|
dev@127
|
46 readonly timeToPixel: () => (time: number) => number;
|
dev@127
|
47 readonly valueToPixel: () => (value: number) => number;
|
dev@127
|
48 readonly items: Element[];
|
dev@127
|
49 data: ArrayLike<any> | Object;
|
dev@127
|
50 setTimeContext(context: TimeContext): void;
|
dev@127
|
51 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@127
|
52 accessors: Object,
|
dev@127
|
53 options: Object): void;
|
dev@127
|
54 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@127
|
55 accessors: Object,
|
dev@127
|
56 options: Object): void;
|
dev@127
|
57 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
|
dev@127
|
58 readonly selectedItems: Element[];
|
dev@127
|
59 select(...$items: Element[]);
|
dev@127
|
60 unselect(...$items: Element[]);
|
dev@127
|
61 toggleSelection(...$items: Element[]);
|
dev@127
|
62 edit($items: Element[], dx: number, dy: number, $target: Element): void;
|
dev@127
|
63 setContextEditable(bool: boolean): void;
|
dev@127
|
64 editContext(dx: number, dy: number, $target: Element): void;
|
dev@127
|
65 stretchContext(dx: number, dy: number, $target: Element): void;
|
dev@127
|
66 getItemFromDOMElement($el: Element): Element | null;
|
dev@127
|
67 getDatumFromItem($item: Element): Object | any[] | null;
|
dev@127
|
68 getDatumFromDOMElement($item: Element): Object | any[] | null;
|
dev@127
|
69 hasItem($item: Element): boolean;
|
dev@127
|
70 hasElement($el: Element): boolean;
|
dev@127
|
71 getItemsInArea(area: Area): Element[];
|
dev@127
|
72 render(): void;
|
dev@127
|
73 update(): void;
|
dev@127
|
74 updateContainer(): void;
|
dev@127
|
75 updateShapes(): void;
|
dev@127
|
76 }
|
dev@127
|
77
|
dev@127
|
78 interface LayerConstructor {
|
dev@127
|
79 new(dataType: "entity" | "collection",
|
dev@127
|
80 data: ArrayLike<any> | Object,
|
dev@127
|
81 options: Object): Layer;
|
dev@127
|
82 }
|
dev@127
|
83
|
dev@123
|
84 interface MatrixEntityConstructor {
|
dev@123
|
85 new(): MatrixEntity;
|
dev@123
|
86 }
|
dev@123
|
87
|
dev@123
|
88 interface PrefilledMatrixEntityConstructor {
|
dev@123
|
89 new(data: Float32Array[] | number[][],
|
dev@123
|
90 startTime: number,
|
dev@123
|
91 stepDuration: number): MatrixEntity;
|
dev@123
|
92 }
|
dev@123
|
93
|
dev@123
|
94 interface Utilities {
|
dev@123
|
95 MatrixEntity: MatrixEntityConstructor;
|
dev@123
|
96 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
|
dev@123
|
97 scales: any;
|
dev@123
|
98 }
|
dev@127
|
99
|
dev@127
|
100 interface Core {
|
dev@127
|
101 Layer: LayerConstructor;
|
dev@127
|
102 LayerTimeContext: any; // TODO
|
dev@127
|
103 Timeline: any; // TODO
|
dev@177
|
104 TimelineTimeContext: TimelineTimeContextConstructor;
|
dev@127
|
105 }
|
dev@177
|
106
|
dev@177
|
107 type Timeline = any;
|
dev@177
|
108
|
dev@177
|
109 interface TimelineTimeContext {
|
dev@177
|
110 pixelsPerSecond: number;
|
dev@177
|
111 readonly computedPixelsPerSecond: number;
|
dev@177
|
112 offset: number;
|
dev@177
|
113 zoom: number;
|
dev@177
|
114 visibleWidth: number;
|
dev@177
|
115 readonly visibleDuration: number;
|
dev@177
|
116 maintainVisibleDuration: boolean;
|
dev@177
|
117 timeToPixel: (time: number) => number;
|
dev@177
|
118 }
|
dev@177
|
119
|
dev@177
|
120 interface TimelineTimeContextConstructor {
|
dev@177
|
121 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
|
dev@177
|
122 }
|