dev@360
|
1 /// <reference path="../../../node_modules/@types/node/index.d.ts"/>
|
dev@360
|
2 declare const AmbientInstance: WavesUserInterface;
|
dev@360
|
3
|
dev@360
|
4 declare module 'waves-ui-piper' {
|
dev@360
|
5 export default AmbientInstance;
|
dev@360
|
6 }
|
dev@360
|
7
|
dev@360
|
8 interface WavesUserInterface {
|
dev@360
|
9 core: Core;
|
dev@360
|
10 helpers: any;
|
dev@360
|
11 states: any;
|
dev@360
|
12 utils: Utilities;
|
dev@360
|
13 shapes: any;
|
dev@360
|
14 }
|
dev@360
|
15
|
dev@360
|
16 interface MatrixEntity {
|
dev@360
|
17 getColumnCount(): number;
|
dev@360
|
18 getColumnHeight(): number;
|
dev@360
|
19 getColumn(n: number): Float32Array | number[];
|
dev@360
|
20 getStepDuration(): number;
|
dev@360
|
21 getStartTime(): number;
|
dev@360
|
22 dispose(): void;
|
dev@360
|
23 }
|
dev@360
|
24
|
dev@360
|
25 interface Area {
|
dev@360
|
26 top: number;
|
dev@360
|
27 left: number;
|
dev@360
|
28 width: number;
|
dev@360
|
29 height: number;
|
dev@360
|
30 }
|
dev@360
|
31
|
dev@360
|
32 interface Layer extends NodeJS.EventEmitter {
|
dev@360
|
33 start: number;
|
dev@360
|
34 offset: number;
|
dev@360
|
35 duration: number;
|
dev@360
|
36 stretchRatio: number;
|
dev@360
|
37 yDomain: number[];
|
dev@360
|
38 opacity: number;
|
dev@374
|
39 timeContext: LayerTimeContext;
|
dev@360
|
40 readonly timeToPixel: () => (time: number) => number;
|
dev@360
|
41 readonly valueToPixel: () => (value: number) => number;
|
dev@360
|
42 readonly items: Element[];
|
dev@360
|
43 readonly selectedItems: Element[];
|
dev@360
|
44 data: ArrayLike<any> | Object;
|
dev@360
|
45 destroy(): void;
|
dev@360
|
46 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
|
dev@374
|
47 setTimeContext(context: LayerTimeContext): void;
|
dev@360
|
48 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@360
|
49 accessors: Object,
|
dev@360
|
50 options: Object): void;
|
dev@360
|
51 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
|
dev@360
|
52 accessors: Object,
|
dev@360
|
53 options: Object): void;
|
dev@360
|
54 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
|
dev@360
|
55 select(...$items: Element[]);
|
dev@360
|
56 unselect(...$items: Element[]);
|
dev@360
|
57 toggleSelection(...$items: Element[]);
|
dev@360
|
58 edit($items: Element[], dx: number, dy: number, $target: Element): void;
|
dev@360
|
59 setContextEditable(bool: boolean): void;
|
dev@360
|
60 editContext(dx: number, dy: number, $target: Element): void;
|
dev@360
|
61 stretchContext(dx: number, dy: number, $target: Element): void;
|
dev@360
|
62 getItemFromDOMElement($el: Element): Element | null;
|
dev@360
|
63 getDatumFromItem($item: Element): Object | any[] | null;
|
dev@360
|
64 getDatumFromDOMElement($item: Element): Object | any[] | null;
|
dev@360
|
65 hasItem($item: Element): boolean;
|
dev@360
|
66 hasElement($el: Element): boolean;
|
dev@360
|
67 getItemsInArea(area: Area): Element[];
|
dev@360
|
68 render(): void;
|
dev@360
|
69 update(): void;
|
dev@360
|
70 updateContainer(): void;
|
dev@360
|
71 updateShapes(): void;
|
dev@360
|
72 }
|
dev@360
|
73
|
dev@391
|
74 interface HighlightLayer extends Layer {
|
dev@391
|
75 currentPosition: number;
|
dev@391
|
76 }
|
dev@391
|
77
|
dev@360
|
78 interface LayerConstructor {
|
dev@360
|
79 new(dataType: 'entity' | 'collection',
|
dev@360
|
80 data: ArrayLike<any> | Object,
|
dev@360
|
81 options: Object): Layer;
|
dev@360
|
82 }
|
dev@360
|
83
|
dev@360
|
84 interface MatrixEntityConstructor {
|
dev@360
|
85 new(): MatrixEntity;
|
dev@360
|
86 }
|
dev@360
|
87
|
dev@360
|
88 interface PrefilledMatrixEntityConstructor {
|
dev@360
|
89 new(data: Float32Array[] | number[][],
|
dev@360
|
90 startTime: number,
|
dev@360
|
91 stepDuration: number): MatrixEntity;
|
dev@360
|
92 }
|
dev@360
|
93
|
dev@360
|
94 interface Utilities {
|
dev@360
|
95 MatrixEntity: MatrixEntityConstructor;
|
dev@360
|
96 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
|
dev@374
|
97 scales: {
|
dev@375
|
98 linear: () => Scale;
|
dev@374
|
99 };
|
dev@360
|
100 }
|
dev@360
|
101
|
dev@360
|
102 type Timeline = any;
|
dev@360
|
103 type Track = any; // TODO
|
dev@360
|
104
|
dev@374
|
105 interface Scale {
|
dev@374
|
106 (value: number): number;
|
dev@374
|
107 invert(): (value: number) => number;
|
dev@374
|
108 domain(arr?: [number, number]): Scale;
|
dev@374
|
109 range(arr?: [number, number]): Scale;
|
dev@374
|
110 }
|
dev@374
|
111
|
dev@374
|
112 interface LayerTimeContext {
|
dev@374
|
113 start: number;
|
dev@374
|
114 duration: number;
|
dev@374
|
115 offset: number;
|
dev@374
|
116 stretchRatio: number;
|
dev@374
|
117 parent: TimelineTimeContext;
|
dev@374
|
118 timeToPixel(): Scale;
|
dev@374
|
119 pixelToTime(px: number): number;
|
dev@374
|
120 clone(): LayerTimeContext;
|
dev@374
|
121 }
|
dev@374
|
122
|
dev@374
|
123 interface LayerTimeContextConstructor {
|
dev@374
|
124 new(parent: TimelineTimeContext): LayerTimeContext;
|
dev@374
|
125 }
|
dev@374
|
126
|
dev@360
|
127 interface Core {
|
dev@360
|
128 Layer: LayerConstructor;
|
dev@374
|
129 LayerTimeContext: LayerTimeContextConstructor;
|
dev@360
|
130 Timeline: Timeline; // TODO
|
dev@360
|
131 TimelineTimeContext: TimelineTimeContextConstructor;
|
dev@360
|
132 }
|
dev@360
|
133
|
dev@360
|
134 interface TimelineTimeContext {
|
dev@360
|
135 pixelsPerSecond: number;
|
dev@360
|
136 readonly computedPixelsPerSecond: number;
|
dev@360
|
137 offset: number;
|
dev@360
|
138 zoom: number;
|
dev@360
|
139 visibleWidth: number;
|
dev@360
|
140 readonly visibleDuration: number;
|
dev@360
|
141 maintainVisibleDuration: boolean;
|
dev@374
|
142 timeToPixel: Scale;
|
dev@360
|
143 }
|
dev@360
|
144
|
dev@360
|
145 interface TimelineTimeContextConstructor {
|
dev@360
|
146 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
|
dev@360
|
147 }
|