Mercurial > hg > ugly-duckling
comparison src/app/visualisations/waves-ui-piper.d.ts @ 360:1ad3c86fd1f7
Move typings out of waveform folder
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Tue, 30 May 2017 15:06:37 +0100 |
parents | |
children | 2565f55f0ca7 |
comparison
equal
deleted
inserted
replaced
359:c8a585de46ac | 360:1ad3c86fd1f7 |
---|---|
1 /// <reference path="../../../node_modules/@types/node/index.d.ts"/> | |
2 declare const AmbientInstance: WavesUserInterface; | |
3 | |
4 declare module 'waves-ui-piper' { | |
5 export default AmbientInstance; | |
6 } | |
7 | |
8 interface WavesUserInterface { | |
9 core: Core; | |
10 helpers: any; | |
11 states: any; | |
12 utils: Utilities; | |
13 shapes: any; | |
14 } | |
15 | |
16 interface MatrixEntity { | |
17 getColumnCount(): number; | |
18 getColumnHeight(): number; | |
19 getColumn(n: number): Float32Array | number[]; | |
20 getStepDuration(): number; | |
21 getStartTime(): number; | |
22 dispose(): void; | |
23 } | |
24 | |
25 type TimeContext = any; // TODO | |
26 | |
27 interface Area { | |
28 top: number; | |
29 left: number; | |
30 width: number; | |
31 height: number; | |
32 } | |
33 | |
34 interface Layer extends NodeJS.EventEmitter { | |
35 start: number; | |
36 offset: number; | |
37 duration: number; | |
38 stretchRatio: number; | |
39 yDomain: number[]; | |
40 opacity: number; | |
41 timeContext: any; // TODO | |
42 readonly timeToPixel: () => (time: number) => number; | |
43 readonly valueToPixel: () => (value: number) => number; | |
44 readonly items: Element[]; | |
45 readonly selectedItems: Element[]; | |
46 data: ArrayLike<any> | Object; | |
47 destroy(): void; | |
48 configureTimeContextBehaviour(ctor: ObjectConstructor): void; | |
49 setTimeContext(context: TimeContext): void; | |
50 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/, | |
51 accessors: Object, | |
52 options: Object): void; | |
53 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/, | |
54 accessors: Object, | |
55 options: Object): void; | |
56 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void; | |
57 select(...$items: Element[]); | |
58 unselect(...$items: Element[]); | |
59 toggleSelection(...$items: Element[]); | |
60 edit($items: Element[], dx: number, dy: number, $target: Element): void; | |
61 setContextEditable(bool: boolean): void; | |
62 editContext(dx: number, dy: number, $target: Element): void; | |
63 stretchContext(dx: number, dy: number, $target: Element): void; | |
64 getItemFromDOMElement($el: Element): Element | null; | |
65 getDatumFromItem($item: Element): Object | any[] | null; | |
66 getDatumFromDOMElement($item: Element): Object | any[] | null; | |
67 hasItem($item: Element): boolean; | |
68 hasElement($el: Element): boolean; | |
69 getItemsInArea(area: Area): Element[]; | |
70 render(): void; | |
71 update(): void; | |
72 updateContainer(): void; | |
73 updateShapes(): void; | |
74 } | |
75 | |
76 interface LayerConstructor { | |
77 new(dataType: 'entity' | 'collection', | |
78 data: ArrayLike<any> | Object, | |
79 options: Object): Layer; | |
80 } | |
81 | |
82 interface MatrixEntityConstructor { | |
83 new(): MatrixEntity; | |
84 } | |
85 | |
86 interface PrefilledMatrixEntityConstructor { | |
87 new(data: Float32Array[] | number[][], | |
88 startTime: number, | |
89 stepDuration: number): MatrixEntity; | |
90 } | |
91 | |
92 interface Utilities { | |
93 MatrixEntity: MatrixEntityConstructor; | |
94 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor; | |
95 scales: any; | |
96 } | |
97 | |
98 type Timeline = any; | |
99 type Track = any; // TODO | |
100 | |
101 interface Core { | |
102 Layer: LayerConstructor; | |
103 LayerTimeContext: any; // TODO | |
104 Timeline: Timeline; // TODO | |
105 TimelineTimeContext: TimelineTimeContextConstructor; | |
106 } | |
107 | |
108 interface TimelineTimeContext { | |
109 pixelsPerSecond: number; | |
110 readonly computedPixelsPerSecond: number; | |
111 offset: number; | |
112 zoom: number; | |
113 visibleWidth: number; | |
114 readonly visibleDuration: number; | |
115 maintainVisibleDuration: boolean; | |
116 timeToPixel: (time: number) => number; | |
117 } | |
118 | |
119 interface TimelineTimeContextConstructor { | |
120 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext; | |
121 } |