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 }