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