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