annotate src/app/waveform/waves-ui.d.ts @ 128:576e7e0246cb

Placeholder for shapes "namespace"
author Lucas Thompson <dev@lucas.im>
date Thu, 16 Mar 2017 10:34:38 +0000
parents 2b88e4d78ec6
children 4eb3cc32f6c0
rev   line source
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 }