import { Tensor, Variable } from './tensor'; export declare enum DType { float32 = "float32", int32 = "int32", bool = "bool", } export interface ShapeMap { R0: number[]; R1: [number]; R2: [number, number]; R3: [number, number, number]; R4: [number, number, number, number]; } export interface DataTypeMap { float32: Float32Array; int32: Int32Array; bool: Uint8Array; } export declare type DataType = keyof DataTypeMap; export declare type TypedArray = DataTypeMap[DataType]; export declare enum Rank { R0 = "R0", R1 = "R1", R2 = "R2", R3 = "R3", R4 = "R4", } export declare type TensorLike = TypedArray | number | boolean | number[] | number[][] | number[][][] | number[][][][] | boolean[] | boolean[][] | boolean[][][] | boolean[][][][]; export declare type TensorLike1D = TypedArray | number[] | boolean[]; export declare type TensorLike2D = TypedArray | number[] | number[][] | boolean[] | boolean[][]; export declare type TensorLike3D = TypedArray | number[] | number[][][] | boolean[] | boolean[][][]; export declare type TensorLike4D = TypedArray | number[] | number[][][][] | boolean[] | boolean[][][][]; export declare type FlatVector = boolean[] | number[] | TypedArray; export declare type RegularArray = T[] | T[][] | T[][][] | T[][][][]; export declare type ArrayData = DataTypeMap[D] | RegularArray | RegularArray; export interface RecursiveArray { [index: number]: T | RecursiveArray; } export declare type NamedTensorMap = { [name: string]: Tensor; }; export declare type NamedVariableMap = { [name: string]: Variable; }; export declare function upcastType(typeA: DataType, typeB: DataType): DataType; export declare function sumOutType(type: DataType): "float32" | "int32" | "bool"; export declare type TensorContainerAny = void | Tensor | string | number | boolean | TensorContainerObject | TensorContainerArray; export interface TensorContainerObject { [x: string]: TensorContainer; } export interface TensorContainerArray extends Array { } export declare type TensorContainer = TensorContainerAny | Promise;