dev@347: /// dev@347: declare const AmbientInstance: WavesUserInterface; dev@347: dev@347: declare module 'waves-ui-piper' { dev@347: export default AmbientInstance; dev@347: } dev@347: dev@347: interface WavesUserInterface { dev@347: core: Core; dev@347: helpers: any; dev@347: states: any; dev@347: utils: Utilities; dev@347: shapes: any; dev@347: } dev@347: dev@347: interface MatrixEntity { dev@347: getColumnCount(): number; dev@347: getColumnHeight(): number; dev@347: getColumn(n: number): Float32Array | number[]; dev@347: getStepDuration(): number; dev@347: getStartTime(): number; dev@347: dispose(): void; dev@347: } dev@347: dev@347: type TimeContext = any; // TODO dev@347: dev@347: interface Area { dev@347: top: number; dev@347: left: number; dev@347: width: number; dev@347: height: number; dev@347: } dev@347: dev@347: interface Layer extends NodeJS.EventEmitter { dev@347: start: number; dev@347: offset: number; dev@347: duration: number; dev@347: stretchRatio: number; dev@347: yDomain: number[]; dev@347: opacity: number; dev@347: readonly timeToPixel: () => (time: number) => number; dev@347: readonly valueToPixel: () => (value: number) => number; dev@347: readonly items: Element[]; dev@347: readonly selectedItems: Element[]; dev@347: data: ArrayLike | Object; dev@347: destroy(): void; dev@347: configureTimeContextBehaviour(ctor: ObjectConstructor): void; dev@347: setTimeContext(context: TimeContext): void; dev@347: configureShape(ctor: ObjectConstructor /* TODO BaseShape*/, dev@347: accessors: Object, dev@347: options: Object): void; dev@347: configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/, dev@347: accessors: Object, dev@347: options: Object): void; dev@347: setBehaviour(behaviour: Object /* TODO BaseBehavior */): void; dev@347: select(...$items: Element[]); dev@347: unselect(...$items: Element[]); dev@347: toggleSelection(...$items: Element[]); dev@347: edit($items: Element[], dx: number, dy: number, $target: Element): void; dev@347: setContextEditable(bool: boolean): void; dev@347: editContext(dx: number, dy: number, $target: Element): void; dev@347: stretchContext(dx: number, dy: number, $target: Element): void; dev@347: getItemFromDOMElement($el: Element): Element | null; dev@347: getDatumFromItem($item: Element): Object | any[] | null; dev@347: getDatumFromDOMElement($item: Element): Object | any[] | null; dev@347: hasItem($item: Element): boolean; dev@347: hasElement($el: Element): boolean; dev@347: getItemsInArea(area: Area): Element[]; dev@347: render(): void; dev@347: update(): void; dev@347: updateContainer(): void; dev@347: updateShapes(): void; dev@347: } dev@347: dev@347: interface LayerConstructor { dev@347: new(dataType: 'entity' | 'collection', dev@347: data: ArrayLike | Object, dev@347: options: Object): Layer; dev@347: } dev@347: dev@347: interface MatrixEntityConstructor { dev@347: new(): MatrixEntity; dev@347: } dev@347: dev@347: interface PrefilledMatrixEntityConstructor { dev@347: new(data: Float32Array[] | number[][], dev@347: startTime: number, dev@347: stepDuration: number): MatrixEntity; dev@347: } dev@347: dev@347: interface Utilities { dev@347: MatrixEntity: MatrixEntityConstructor; dev@347: PrefilledMatrixEntity: PrefilledMatrixEntityConstructor; dev@347: scales: any; dev@347: } dev@347: dev@347: type Timeline = any; dev@347: dev@347: interface Core { dev@347: Layer: LayerConstructor; dev@347: LayerTimeContext: any; // TODO dev@347: Timeline: Timeline; // TODO dev@347: TimelineTimeContext: TimelineTimeContextConstructor; dev@347: } dev@347: dev@347: interface TimelineTimeContext { dev@347: pixelsPerSecond: number; dev@347: readonly computedPixelsPerSecond: number; dev@347: offset: number; dev@347: zoom: number; dev@347: visibleWidth: number; dev@347: readonly visibleDuration: number; dev@347: maintainVisibleDuration: boolean; dev@347: timeToPixel: (time: number) => number; dev@347: } dev@347: dev@347: interface TimelineTimeContextConstructor { dev@347: new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext; dev@347: }