import { TensorOrder } from '@wetron/common/ir'; export { TensorOrder } from '@wetron/common/ir'; interface TensorSliceSelection { readonly rowAxis: number; readonly colAxis: number; readonly fixed: Readonly>; } interface TensorSliceDescriptor { readonly rows: number; readonly cols: number; readonly selection: TensorSliceSelection; } interface TensorLayout { readonly shape: readonly number[]; readonly strides: readonly number[]; readonly count: number; readonly order: TensorOrder; } declare function tensorElementCount(shape: readonly number[]): number; declare function tensorStrides(shape: readonly number[], order?: TensorOrder): readonly number[]; declare function tensorLayout(shape: readonly number[], order?: TensorOrder): TensorLayout; declare function coordinateToOffsetInLayout(coordinate: readonly number[], layout: TensorLayout): number; declare function coordinateToOffset(coordinate: readonly number[], shape: readonly number[]): number; declare function offsetToCoordinateInLayout(offset: number, layout: TensorLayout): readonly number[]; declare function offsetToCoordinate(offset: number, shape: readonly number[]): readonly number[]; declare function describeTensorSlice(shape: readonly number[], selection: TensorSliceSelection): TensorSliceDescriptor; export { type TensorLayout, type TensorSliceDescriptor, type TensorSliceSelection, coordinateToOffset, coordinateToOffsetInLayout, describeTensorSlice, offsetToCoordinate, offsetToCoordinateInLayout, tensorElementCount, tensorLayout, tensorStrides };